@lazyingart/agintiflow 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +6 -3
- package/README.md +68 -15
- package/docker/sandbox.Dockerfile +8 -0
- package/package.json +11 -3
- package/public/app.js +644 -11
- package/public/index.html +165 -20
- package/public/styles.css +586 -13
- package/scripts/setup-agent-toolchain-docker.sh +51 -0
- package/scripts/smoke-coding-tools.js +138 -0
- package/scripts/smoke-toolchain-docker.js +185 -0
- package/scripts/smoke-web-api.js +217 -0
- package/src/agent-runner.js +286 -21
- package/src/artifact-tunnel.js +401 -0
- package/src/cli.js +47 -3
- package/src/command-policy.js +21 -0
- package/src/config.js +9 -2
- package/src/docker-sandbox.js +38 -8
- package/src/guardrails.js +31 -0
- package/src/model-client.js +300 -6
- package/src/model-routing.js +40 -0
- package/src/session-store.js +4 -0
- package/src/tool-wrappers.js +6 -0
- package/src/web-db.js +48 -5
- package/src/workspace-tools.js +438 -0
- package/web.js +265 -14
package/public/index.html
CHANGED
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
<select id="provider" name="provider">
|
|
55
55
|
<option value="deepseek">DeepSeek</option>
|
|
56
56
|
<option value="openai">OpenAI</option>
|
|
57
|
+
<option value="mock" data-i18n="mockProviderOption">Mock local</option>
|
|
57
58
|
</select>
|
|
58
59
|
</label>
|
|
59
60
|
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
</div>
|
|
65
66
|
|
|
66
67
|
<p id="routing-hint" class="subtle route-hint"></p>
|
|
68
|
+
<p id="model-route-status" class="subtle route-hint"></p>
|
|
67
69
|
|
|
68
70
|
<label>
|
|
69
71
|
<span data-i18n="goalLabel">Goal</span>
|
|
@@ -96,6 +98,7 @@
|
|
|
96
98
|
<input id="maxSteps" name="maxSteps" type="number" min="1" max="50" value="15" />
|
|
97
99
|
</label>
|
|
98
100
|
</div>
|
|
101
|
+
<p id="package-warning" class="subtle package-warning"></p>
|
|
99
102
|
|
|
100
103
|
<div class="grid">
|
|
101
104
|
<label>
|
|
@@ -117,11 +120,49 @@
|
|
|
117
120
|
</div>
|
|
118
121
|
|
|
119
122
|
<div class="checks">
|
|
120
|
-
<label
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
<label class="switch-label">
|
|
124
|
+
<input id="headless" name="headless" type="checkbox" checked />
|
|
125
|
+
<span class="switch" aria-hidden="true"></span>
|
|
126
|
+
<span data-i18n="headlessLabel">Headless browser</span>
|
|
127
|
+
</label>
|
|
128
|
+
<label class="switch-label">
|
|
129
|
+
<input id="allowShellTool" name="allowShellTool" type="checkbox" checked />
|
|
130
|
+
<span class="switch" aria-hidden="true"></span>
|
|
131
|
+
<span data-i18n="shellToolLabel">Enable shell tool</span>
|
|
132
|
+
</label>
|
|
133
|
+
<label class="switch-label">
|
|
134
|
+
<input id="allowFileTools" name="allowFileTools" type="checkbox" checked />
|
|
135
|
+
<span class="switch" aria-hidden="true"></span>
|
|
136
|
+
<span data-i18n="fileToolLabel">Enable file tools</span>
|
|
137
|
+
</label>
|
|
138
|
+
<label class="switch-label">
|
|
139
|
+
<input id="allowPasswords" name="allowPasswords" type="checkbox" />
|
|
140
|
+
<span class="switch" aria-hidden="true"></span>
|
|
141
|
+
<span data-i18n="allowPasswordsLabel">Allow password typing</span>
|
|
142
|
+
</label>
|
|
143
|
+
<label class="switch-label">
|
|
144
|
+
<input id="allowDestructive" name="allowDestructive" type="checkbox" />
|
|
145
|
+
<span class="switch" aria-hidden="true"></span>
|
|
146
|
+
<span data-i18n="allowDestructiveLabel">Allow destructive actions</span>
|
|
147
|
+
</label>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<div class="grid wrapper-controls">
|
|
151
|
+
<label class="switch-label switch-card">
|
|
152
|
+
<input id="allowWrapperTools" name="allowWrapperTools" type="checkbox" />
|
|
153
|
+
<span class="switch" aria-hidden="true"></span>
|
|
154
|
+
<span data-i18n="wrapperToolLabel">Enable agent wrappers</span>
|
|
155
|
+
</label>
|
|
156
|
+
<label>
|
|
157
|
+
<span data-i18n="preferredWrapperLabel">Preferred wrapper</span>
|
|
158
|
+
<select id="preferredWrapper" name="preferredWrapper">
|
|
159
|
+
<option value="codex">Codex</option>
|
|
160
|
+
<option value="claude">Claude Code</option>
|
|
161
|
+
<option value="gemini">Gemini CLI</option>
|
|
162
|
+
<option value="copilot">GitHub Copilot CLI</option>
|
|
163
|
+
<option value="qwen">Qwen Code</option>
|
|
164
|
+
</select>
|
|
165
|
+
</label>
|
|
125
166
|
</div>
|
|
126
167
|
|
|
127
168
|
<label>
|
|
@@ -140,7 +181,23 @@
|
|
|
140
181
|
<button type="submit" data-i18n="startRunButton">Start run</button>
|
|
141
182
|
<span id="key-status" class="subtle"></span>
|
|
142
183
|
</div>
|
|
143
|
-
|
|
184
|
+
|
|
185
|
+
<section class="capability-card">
|
|
186
|
+
<div>
|
|
187
|
+
<h2 data-i18n="wrapperCapabilityTitle">Agent wrappers</h2>
|
|
188
|
+
<p id="wrapper-status" class="subtle wrapper-status"></p>
|
|
189
|
+
</div>
|
|
190
|
+
<div id="wrapper-grid" class="capability-grid"></div>
|
|
191
|
+
</section>
|
|
192
|
+
|
|
193
|
+
<section class="capability-card workspace-card">
|
|
194
|
+
<div>
|
|
195
|
+
<h2 data-i18n="workspaceCapabilityTitle">Workspace files</h2>
|
|
196
|
+
<p id="workspace-status" class="subtle wrapper-status"></p>
|
|
197
|
+
</div>
|
|
198
|
+
<div id="workspace-tools" class="capability-grid"></div>
|
|
199
|
+
<div id="workspace-changes" class="workspace-changes"></div>
|
|
200
|
+
</section>
|
|
144
201
|
|
|
145
202
|
<section class="sandbox-card">
|
|
146
203
|
<div class="header-row">
|
|
@@ -159,23 +216,33 @@
|
|
|
159
216
|
</section>
|
|
160
217
|
|
|
161
218
|
<section class="stack">
|
|
162
|
-
<section class="panel output-panel">
|
|
163
|
-
<div class="header-row">
|
|
164
|
-
<h2 data-i18n="runOutputTitle">Run output</h2>
|
|
165
|
-
<div id="run-meta" class="subtle"></div>
|
|
166
|
-
</div>
|
|
167
|
-
<pre id="logs" class="logs" data-i18n="noRunStarted">No run started.</pre>
|
|
168
|
-
</section>
|
|
169
|
-
|
|
170
219
|
<section class="panel chat-panel">
|
|
171
220
|
<div class="header-row">
|
|
172
221
|
<h2 data-i18n="conversationTitle">Conversation</h2>
|
|
173
|
-
<
|
|
174
|
-
<
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
222
|
+
<div class="session-tools">
|
|
223
|
+
<select id="session-select" class="session-select">
|
|
224
|
+
<option value="" data-i18n="noSessionSelected">No session selected</option>
|
|
225
|
+
</select>
|
|
226
|
+
<button
|
|
227
|
+
id="open-artifacts"
|
|
228
|
+
class="icon-button artifact-button"
|
|
229
|
+
type="button"
|
|
230
|
+
data-i18n-aria-label="artifactTunnelLabel"
|
|
231
|
+
aria-label="Open canvas and artifacts"
|
|
232
|
+
>
|
|
233
|
+
Canvas
|
|
234
|
+
<span id="artifact-badge" class="artifact-badge" hidden>0</span>
|
|
235
|
+
</button>
|
|
236
|
+
<button
|
|
237
|
+
id="manage-sessions"
|
|
238
|
+
class="icon-button"
|
|
239
|
+
type="button"
|
|
240
|
+
data-i18n-aria-label="conversationMenuLabel"
|
|
241
|
+
aria-label="Manage conversations"
|
|
242
|
+
>
|
|
243
|
+
...
|
|
244
|
+
</button>
|
|
245
|
+
</div>
|
|
179
246
|
</div>
|
|
180
247
|
<form id="chat-form" class="chat-form">
|
|
181
248
|
<textarea
|
|
@@ -189,10 +256,88 @@
|
|
|
189
256
|
<span id="chat-status" class="subtle"></span>
|
|
190
257
|
</div>
|
|
191
258
|
</form>
|
|
259
|
+
<div id="chat-thread" class="chat-thread">
|
|
260
|
+
<div class="subtle" data-i18n="noConversationLoaded">No conversation loaded.</div>
|
|
261
|
+
</div>
|
|
262
|
+
</section>
|
|
263
|
+
|
|
264
|
+
<section class="panel output-panel">
|
|
265
|
+
<div class="header-row">
|
|
266
|
+
<h2 data-i18n="runOutputTitle">Run output</h2>
|
|
267
|
+
<div id="run-meta" class="subtle"></div>
|
|
268
|
+
</div>
|
|
269
|
+
<pre id="logs" class="logs" data-i18n="noRunStarted">No run started.</pre>
|
|
192
270
|
</section>
|
|
193
271
|
</section>
|
|
194
272
|
</main>
|
|
195
273
|
|
|
274
|
+
<dialog id="session-manager" class="modal">
|
|
275
|
+
<section class="modal-card" aria-labelledby="session-manager-title">
|
|
276
|
+
<div class="modal-header">
|
|
277
|
+
<div>
|
|
278
|
+
<h2 id="session-manager-title" data-i18n="manageConversationsTitle">Manage conversations</h2>
|
|
279
|
+
<p class="subtle" data-i18n="manageConversationsHelp">Rename, auto-rename, or delete saved chat history.</p>
|
|
280
|
+
</div>
|
|
281
|
+
<button id="close-session-manager" class="icon-button" type="button" data-i18n-aria-label="cancelButton" aria-label="Cancel">x</button>
|
|
282
|
+
</div>
|
|
283
|
+
<div id="session-manager-list" class="session-manager-list"></div>
|
|
284
|
+
<label>
|
|
285
|
+
<span data-i18n="conversationTitleLabel">Conversation title</span>
|
|
286
|
+
<input id="session-title-input" type="text" maxlength="90" data-i18n-placeholder="conversationTitlePlaceholder" placeholder="Short title for this conversation" />
|
|
287
|
+
</label>
|
|
288
|
+
<div class="modal-actions">
|
|
289
|
+
<button id="auto-rename-session" type="button" class="secondary" data-i18n="autoRenameButton">Auto rename</button>
|
|
290
|
+
<button id="rename-session" type="button" data-i18n="renameButton">Rename</button>
|
|
291
|
+
<button id="delete-session" type="button" class="danger" data-i18n="deleteButton">Delete</button>
|
|
292
|
+
<button id="cancel-session-manager" type="button" class="secondary" data-i18n="cancelButton">Cancel</button>
|
|
293
|
+
</div>
|
|
294
|
+
<p id="session-manager-status" class="subtle modal-status"></p>
|
|
295
|
+
</section>
|
|
296
|
+
</dialog>
|
|
297
|
+
|
|
298
|
+
<dialog id="artifact-tunnel" class="modal artifact-modal">
|
|
299
|
+
<section class="modal-card artifact-modal-card" aria-labelledby="artifact-tunnel-title">
|
|
300
|
+
<div class="modal-header">
|
|
301
|
+
<div>
|
|
302
|
+
<h2 id="artifact-tunnel-title" data-i18n="artifactTunnelTitle">Canvas & artifacts</h2>
|
|
303
|
+
<p class="subtle" data-i18n="artifactTunnelHelp">
|
|
304
|
+
Agent-selected canvas items, generated files, screenshots, diffs, and final answers.
|
|
305
|
+
</p>
|
|
306
|
+
</div>
|
|
307
|
+
<button id="close-artifact-tunnel" class="icon-button" type="button" data-i18n-aria-label="cancelButton" aria-label="Cancel">x</button>
|
|
308
|
+
</div>
|
|
309
|
+
<div class="artifact-tabs" role="tablist" aria-label="Artifact tunnel tabs">
|
|
310
|
+
<button id="artifact-tab-canvas" class="artifact-tab" type="button" data-artifact-tab="canvas" data-selected="true" data-i18n="artifactCanvasTab">Canvas</button>
|
|
311
|
+
<button id="artifact-tab-explorer" class="artifact-tab" type="button" data-artifact-tab="explorer" data-i18n="artifactExplorerTab">Explorer</button>
|
|
312
|
+
<button id="artifact-tab-notifications" class="artifact-tab" type="button" data-artifact-tab="notifications" data-i18n="artifactNotificationsTab">Notifications</button>
|
|
313
|
+
</div>
|
|
314
|
+
<div class="artifact-layout">
|
|
315
|
+
<aside class="artifact-list-panel">
|
|
316
|
+
<div class="artifact-list-header">
|
|
317
|
+
<strong data-i18n="artifactListTitle">Artifacts</strong>
|
|
318
|
+
<button id="mark-artifacts-seen" type="button" class="secondary compact-button" data-i18n="artifactMarkSeenButton">Mark seen</button>
|
|
319
|
+
</div>
|
|
320
|
+
<div id="artifact-list" class="artifact-list">
|
|
321
|
+
<p class="subtle" data-i18n="artifactEmpty">No artifacts yet.</p>
|
|
322
|
+
</div>
|
|
323
|
+
</aside>
|
|
324
|
+
<section class="artifact-viewer">
|
|
325
|
+
<div class="artifact-viewer-header">
|
|
326
|
+
<div>
|
|
327
|
+
<h3 id="artifact-viewer-title" data-i18n="artifactViewerEmptyTitle">Nothing selected</h3>
|
|
328
|
+
<p id="artifact-viewer-meta" class="subtle"></p>
|
|
329
|
+
</div>
|
|
330
|
+
<span id="artifact-viewer-kind" class="artifact-kind-pill"></span>
|
|
331
|
+
</div>
|
|
332
|
+
<div id="artifact-viewer-body" class="artifact-viewer-body">
|
|
333
|
+
<p class="subtle" data-i18n="artifactViewerEmpty">Select an artifact to preview it here.</p>
|
|
334
|
+
</div>
|
|
335
|
+
<p id="artifact-status" class="subtle modal-status"></p>
|
|
336
|
+
</section>
|
|
337
|
+
</div>
|
|
338
|
+
</section>
|
|
339
|
+
</dialog>
|
|
340
|
+
|
|
196
341
|
<script src="/app.js" type="module"></script>
|
|
197
342
|
</body>
|
|
198
343
|
</html>
|