Skip to content

Commit e31a949

Browse files
committed
Create tool template from AI Assistant baseline and deprecate old template folder - PR_26152_276-tool-template-baseline-copy
1 parent 42e74c0 commit e31a949

36 files changed

Lines changed: 219 additions & 111 deletions
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Tool Template Baseline Copy
2+
3+
Task: PR_26152_276-tool-template-baseline-copy
4+
5+
## Scope Completed
6+
7+
- Renamed `tools/_templates-v2` to `tools/_templates-v2_deprecated`.
8+
- Copied `tools/ai-assistant.html` to `tools/_templates-v2/index.html`.
9+
- Copied no directly required companion files.
10+
- Preserved the copied AI Assistant layout, left column, center panel, right column, and `toolDisplayMode` behavior.
11+
- Did not add or modify CSS.
12+
- Did not rebuild Storage Inspector.
13+
14+
## Baseline Source And Target
15+
16+
- Source page: `tools/ai-assistant.html`
17+
- New template baseline: `tools/_templates-v2/index.html`
18+
- Deprecated previous template package: `tools/_templates-v2_deprecated`
19+
20+
## Companion File Decision
21+
22+
No companion files were copied. The copied page only references shared GameFoundryStudio CSS, JavaScript, partials, and image assets, and those continue to resolve through the updated `<base>` path in `tools/_templates-v2/index.html`.
23+
24+
## Validation
25+
26+
- Required validation: `git diff --check`
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Tool Template Path Adjustments
2+
3+
Task: PR_26152_276-tool-template-baseline-copy
4+
5+
## Adjustments
6+
7+
| File | Reference | Original | Updated | Reason |
8+
| --- | --- | --- | --- | --- |
9+
| `tools/_templates-v2/index.html` | `<base href>` | `../GameFoundryStudio/` | `../../GameFoundryStudio/` | The copied page moved from `tools/ai-assistant.html` to `tools/_templates-v2/index.html`, one directory deeper than the original source page. |
10+
11+
## Unchanged References
12+
13+
- CSS references remain `assets/css/styles.css` and `assets/css/theme/v2/theme.css`.
14+
- JS references remain `assets/js/gamefoundry-partials.js` and `assets/js/tool-display-mode.js`.
15+
- Asset references remain under `assets/images`.
16+
- Partial references remain `header-nav` and `footer`.
17+
18+
These references are intentionally unchanged because they resolve relative to the corrected `<base href="../../GameFoundryStudio/">`.

tools/_templates-v2/index.html

Lines changed: 54 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,64 @@
1-
<!doctype html>
1+
<!doctype html>
22
<html lang="en">
3-
<head>
3+
4+
<head>
45
<meta charset="utf-8">
6+
<base href="../../GameFoundryStudio/">
57
<meta name="viewport" content="width=device-width, initial-scale=1">
6-
<title>First-Class Tool Starter V2</title>
7-
<link rel="stylesheet" href="../../src/engine/theme/main.css">
8-
<link rel="stylesheet" href="../../src/engine/ui/hubCommon.css">
9-
<link rel="stylesheet" href="../../src/engine/theme/accordionV2/accordionV2.css">
10-
<link rel="stylesheet" href="./styles/toolStarter.css">
11-
<script type="module" src="./js/bootstrap.js"></script>
12-
</head>
13-
<body class="tools-platform-tool-page tools-platform-surface hub-page-tools" data-tool-id="tool-template-v2">
14-
<details class="is-collapsible" open>
15-
<summary class="is-collapsible__summary" data-tool-starter-summary>Hide Header and Details</summary>
16-
<div class="is-collapsible__content">
17-
<div id="shared-theme-header"></div>
18-
<div class="tool-starter__header" data-tool-starter-header>
19-
<section class="tools-platform-frame tool-starter__local-shell-frame">
20-
<div class="tools-platform-frame__accordion-content">
21-
<div class="tools-platform-frame__accordion-summary">
22-
<div class="tools-platform-frame__summary-copy">
23-
<h1 class="tools-platform-frame__title" data-tool-id="tool-template-v2">First-Class Tool Starter V2</h1>
24-
<h2 class="tools-platform-frame__eyebrow">First-Class Tools Surface V2</h2>
25-
</div>
26-
<div class="tools-platform-frame__summary-meta">
27-
<div class="tools-platform-frame__meta">Self-contained First-Class Tool V2 starter with no tools/shared dependency.</div>
28-
</div>
29-
</div>
30-
<div class="tools-platform-frame__topline">
31-
<p class="tools-platform-frame__description">Replace this Tool Template V2 shell with the new First-Class Tool V2 name and purpose.</p>
32-
</div>
33-
</div>
34-
</section>
35-
</div>
36-
</div>
37-
</details>
8+
<title>AI Assistant — Game Foundry Studio</title>
9+
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
10+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
11+
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
13+
</head>
3814

39-
<nav class="tool-starter__menu tool-starter__tool__menu" aria-label="Tool actions" data-launch-mode-nav="tool">
40-
<button id="toolExportButton" type="button">Export</button>
41-
<button id="toolCopyJsonButton" type="button">Copy JSON</button>
42-
<button id="toolExportToolStateButton" type="button">Export toolState</button>
43-
</nav>
44-
45-
<nav class="tool-starter__menu tool-starter__workspace__menu" aria-label="Workspace actions" data-launch-mode-nav="workspace" hidden>
46-
<button id="workspaceImportManifestButton" type="button">Import manifest</button>
47-
<button id="workspaceCopyManifestButton" type="button">Copy manifest</button>
48-
<button id="workspaceExportManifestButton" type="button">Export manifest</button>
49-
<button id="returnToWorkspaceButton" type="button" hidden>Return to Workspace</button>
50-
</nav>
51-
52-
<main class="tool-starter app-shell" data-tool-id="tool-template-v2">
53-
<aside class="tool-starter__panel tool-starter__panel--left" aria-label="Tool inputs">
54-
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
55-
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="sourceInputContent">
56-
<span>Input Source</span>
57-
<span class="accordion-v2__icon" aria-hidden="true">+</span>
58-
</button>
59-
<div id="sourceInputContent" class="accordion-v2__content">
60-
<label class="tool-starter__field" for="sourceInput">
61-
<span>Source value</span>
62-
<input id="sourceInput" type="text" autocomplete="off" placeholder="Enter a value to process">
63-
</label>
64-
<div class="tool-starter__field-patterns" aria-label="Editable and non-editable field patterns">
65-
<label class="tool-starter__field tool-starter__field--compact tool-starter__field--not-editable" for="notEditableField">
66-
<span>Not Editable</span>
67-
<input id="notEditableField" type="text" autocomplete="off" value="Read-only display value" readonly>
68-
</label>
69-
<label class="tool-starter__field tool-starter__field--compact tool-starter__field--editable" for="editableField">
70-
<span>Editable</span>
71-
<input id="editableField" class="tool-starter__editable-tags-box" type="text" autocomplete="off" value="No tags.">
72-
</label>
15+
<body class="meaning-molten-orange">
16+
<div data-partial="header-nav"></div>
17+
<main>
18+
<section class="page-title">
19+
<div class="container">
20+
<div class="kicker">Foundry Bot</div>
21+
<h1>AI Assistant</h1>
22+
<p class="lede">Get AI help with code, assets, logic and design.</p>
7323
</div>
74-
<p id="sourceValidationMessage" class="tool-starter__hint">Input is required before Export can process.</p>
75-
</div>
7624
</section>
77-
78-
</aside>
79-
80-
<section class="tool-starter__panel tool-starter__panel--center" aria-label="Tool preview">
81-
<section class="accordion-v2 tool-starter__accordion tool-starter__accordion--fill is-open" data-accordion-v2-open="true">
82-
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="previewPanelContent">
83-
<span>Preview</span>
84-
<span class="accordion-v2__icon" aria-hidden="true">+</span>
85-
</button>
86-
<div id="previewPanelContent" class="accordion-v2__content">
87-
<div id="previewOutput" class="tool-starter__preview" role="img" aria-label="Tool preview output">
88-
<p>No preview rendered yet.</p>
89-
</div>
90-
</div>
91-
</section>
92-
</section>
93-
94-
<aside class="tool-starter__panel tool-starter__panel--right" aria-label="Tool output">
95-
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
96-
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="inspectorContent">
97-
<span>Output Summary</span>
98-
<span class="accordion-v2__icon" aria-hidden="true">+</span>
99-
</button>
100-
<div id="inspectorContent" class="accordion-v2__content">
101-
<pre id="inspectorOutput" class="tool-starter__output">{}</pre>
102-
</div>
103-
</section>
104-
105-
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
106-
<div class="accordion-v2__header tool-starter__status-accordion-header" aria-expanded="true" aria-controls="statusLogContent">
107-
<span>Status</span>
108-
<div class="tool-starter__status-header-actions">
109-
<button id="clearStatusButton" class="tool-starter__status-clear-button" type="button">Clear</button>
110-
<span class="accordion-v2__icon" aria-hidden="true">+</span>
25+
<section class="section">
26+
<div class="container">
27+
<div class="tool-workspace">
28+
<aside class="tool-column tool-group-ai-learning">
29+
<div class="tool-column-header molten-orange">
30+
<h2>Toolbox</h2>
31+
</div>
32+
<div class="accordion-stack">
33+
<details class="vertical-accordion" open>
34+
<summary>Setup</summary>
35+
<div class="accordion-body">AI Assistant setup wireframe.</div>
36+
</details>
37+
</div>
38+
</aside>
39+
<div data-tool-display-mode data-asset-root="assets/images" data-tool-slug="ai-assistant" data-tool-icon-src="assets/images/badges/ai-assistant.png"></div>
40+
<section class="tool-center-panel"><img src="assets/images/forge-bot-single.png" alt="ForgeBot">
41+
<h2>Workspace</h2>
42+
<p>AI Assistant: Get AI help with code, assets, logic and design.</p>
43+
</section>
44+
<aside class="tool-column tool-group-ai-learning">
45+
<div class="tool-column-header forge-gold">
46+
<h2>Inspector</h2>
47+
</div>
48+
<div class="accordion-stack">
49+
<details class="vertical-accordion" open>
50+
<summary>Output</summary>
51+
<div class="accordion-body">AI Assistant output wireframe.</div>
52+
</details>
53+
</div>
54+
</aside>
55+
</div>
11156
</div>
112-
</div>
113-
<div id="statusLogContent" class="accordion-v2__content">
114-
<textarea id="statusLog" readonly rows="10" aria-label="Status log"></textarea>
115-
</div>
11657
</section>
117-
</aside>
11858
</main>
119-
<script type="module" src="../../src/engine/theme/mount-shared-header.js"></script>
120-
</body>
59+
<div data-partial="footer"></div>
60+
<script src="assets/js/gamefoundry-partials.js" defer></script>
61+
<script src="assets/js/tool-display-mode.js" defer></script>
62+
</body>
63+
12164
</html>
File renamed without changes.

tools/_templates-v2/docs/BATCH_GUARDRAIL_CONTRACT.md renamed to tools/_templates-v2_deprecated/docs/BATCH_GUARDRAIL_CONTRACT.md

File renamed without changes.

tools/_templates-v2/docs/CONTROL_SERVICE_CONTRACTS.md renamed to tools/_templates-v2_deprecated/docs/CONTROL_SERVICE_CONTRACTS.md

File renamed without changes.
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<title>First-Class Tool Starter V2</title>
7+
<link rel="stylesheet" href="../../src/engine/theme/main.css">
8+
<link rel="stylesheet" href="../../src/engine/ui/hubCommon.css">
9+
<link rel="stylesheet" href="../../src/engine/theme/accordionV2/accordionV2.css">
10+
<link rel="stylesheet" href="./styles/toolStarter.css">
11+
<script type="module" src="./js/bootstrap.js"></script>
12+
</head>
13+
<body class="tools-platform-tool-page tools-platform-surface hub-page-tools" data-tool-id="tool-template-v2">
14+
<details class="is-collapsible" open>
15+
<summary class="is-collapsible__summary" data-tool-starter-summary>Hide Header and Details</summary>
16+
<div class="is-collapsible__content">
17+
<div id="shared-theme-header"></div>
18+
<div class="tool-starter__header" data-tool-starter-header>
19+
<section class="tools-platform-frame tool-starter__local-shell-frame">
20+
<div class="tools-platform-frame__accordion-content">
21+
<div class="tools-platform-frame__accordion-summary">
22+
<div class="tools-platform-frame__summary-copy">
23+
<h1 class="tools-platform-frame__title" data-tool-id="tool-template-v2">First-Class Tool Starter V2</h1>
24+
<h2 class="tools-platform-frame__eyebrow">First-Class Tools Surface V2</h2>
25+
</div>
26+
<div class="tools-platform-frame__summary-meta">
27+
<div class="tools-platform-frame__meta">Self-contained First-Class Tool V2 starter with no tools/shared dependency.</div>
28+
</div>
29+
</div>
30+
<div class="tools-platform-frame__topline">
31+
<p class="tools-platform-frame__description">Replace this Tool Template V2 shell with the new First-Class Tool V2 name and purpose.</p>
32+
</div>
33+
</div>
34+
</section>
35+
</div>
36+
</div>
37+
</details>
38+
39+
<nav class="tool-starter__menu tool-starter__tool__menu" aria-label="Tool actions" data-launch-mode-nav="tool">
40+
<button id="toolExportButton" type="button">Export</button>
41+
<button id="toolCopyJsonButton" type="button">Copy JSON</button>
42+
<button id="toolExportToolStateButton" type="button">Export toolState</button>
43+
</nav>
44+
45+
<nav class="tool-starter__menu tool-starter__workspace__menu" aria-label="Workspace actions" data-launch-mode-nav="workspace" hidden>
46+
<button id="workspaceImportManifestButton" type="button">Import manifest</button>
47+
<button id="workspaceCopyManifestButton" type="button">Copy manifest</button>
48+
<button id="workspaceExportManifestButton" type="button">Export manifest</button>
49+
<button id="returnToWorkspaceButton" type="button" hidden>Return to Workspace</button>
50+
</nav>
51+
52+
<main class="tool-starter app-shell" data-tool-id="tool-template-v2">
53+
<aside class="tool-starter__panel tool-starter__panel--left" aria-label="Tool inputs">
54+
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
55+
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="sourceInputContent">
56+
<span>Input Source</span>
57+
<span class="accordion-v2__icon" aria-hidden="true">+</span>
58+
</button>
59+
<div id="sourceInputContent" class="accordion-v2__content">
60+
<label class="tool-starter__field" for="sourceInput">
61+
<span>Source value</span>
62+
<input id="sourceInput" type="text" autocomplete="off" placeholder="Enter a value to process">
63+
</label>
64+
<div class="tool-starter__field-patterns" aria-label="Editable and non-editable field patterns">
65+
<label class="tool-starter__field tool-starter__field--compact tool-starter__field--not-editable" for="notEditableField">
66+
<span>Not Editable</span>
67+
<input id="notEditableField" type="text" autocomplete="off" value="Read-only display value" readonly>
68+
</label>
69+
<label class="tool-starter__field tool-starter__field--compact tool-starter__field--editable" for="editableField">
70+
<span>Editable</span>
71+
<input id="editableField" class="tool-starter__editable-tags-box" type="text" autocomplete="off" value="No tags.">
72+
</label>
73+
</div>
74+
<p id="sourceValidationMessage" class="tool-starter__hint">Input is required before Export can process.</p>
75+
</div>
76+
</section>
77+
78+
</aside>
79+
80+
<section class="tool-starter__panel tool-starter__panel--center" aria-label="Tool preview">
81+
<section class="accordion-v2 tool-starter__accordion tool-starter__accordion--fill is-open" data-accordion-v2-open="true">
82+
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="previewPanelContent">
83+
<span>Preview</span>
84+
<span class="accordion-v2__icon" aria-hidden="true">+</span>
85+
</button>
86+
<div id="previewPanelContent" class="accordion-v2__content">
87+
<div id="previewOutput" class="tool-starter__preview" role="img" aria-label="Tool preview output">
88+
<p>No preview rendered yet.</p>
89+
</div>
90+
</div>
91+
</section>
92+
</section>
93+
94+
<aside class="tool-starter__panel tool-starter__panel--right" aria-label="Tool output">
95+
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
96+
<button class="accordion-v2__header" type="button" aria-expanded="true" aria-controls="inspectorContent">
97+
<span>Output Summary</span>
98+
<span class="accordion-v2__icon" aria-hidden="true">+</span>
99+
</button>
100+
<div id="inspectorContent" class="accordion-v2__content">
101+
<pre id="inspectorOutput" class="tool-starter__output">{}</pre>
102+
</div>
103+
</section>
104+
105+
<section class="accordion-v2 tool-starter__accordion is-open" data-accordion-v2-open="true">
106+
<div class="accordion-v2__header tool-starter__status-accordion-header" aria-expanded="true" aria-controls="statusLogContent">
107+
<span>Status</span>
108+
<div class="tool-starter__status-header-actions">
109+
<button id="clearStatusButton" class="tool-starter__status-clear-button" type="button">Clear</button>
110+
<span class="accordion-v2__icon" aria-hidden="true">+</span>
111+
</div>
112+
</div>
113+
<div id="statusLogContent" class="accordion-v2__content">
114+
<textarea id="statusLog" readonly rows="10" aria-label="Status log"></textarea>
115+
</div>
116+
</section>
117+
</aside>
118+
</main>
119+
<script type="module" src="../../src/engine/theme/mount-shared-header.js"></script>
120+
</body>
121+
</html>
File renamed without changes.
File renamed without changes.

tools/_templates-v2/js/controls/AccordionSection.js renamed to tools/_templates-v2_deprecated/js/controls/AccordionSection.js

File renamed without changes.

0 commit comments

Comments
 (0)