@songsid/agend 2.2.0 → 2.3.0-beta.2

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.
Files changed (298) hide show
  1. package/dist/agent-cli.js +248 -2
  2. package/dist/agent-cli.js.map +1 -1
  3. package/dist/agent-endpoint.d.ts +2 -0
  4. package/dist/agent-endpoint.js +25 -0
  5. package/dist/agent-endpoint.js.map +1 -1
  6. package/dist/agent-file-read.d.ts +35 -0
  7. package/dist/agent-file-read.js +144 -0
  8. package/dist/agent-file-read.js.map +1 -0
  9. package/dist/agent-whats-new.js +8 -0
  10. package/dist/agent-whats-new.js.map +1 -1
  11. package/dist/atomic-write.js +9 -1
  12. package/dist/atomic-write.js.map +1 -1
  13. package/dist/auth-api.js +17 -0
  14. package/dist/auth-api.js.map +1 -1
  15. package/dist/backend/antigravity.js +3 -3
  16. package/dist/backend/antigravity.js.map +1 -1
  17. package/dist/backend/claude-code.js +5 -1
  18. package/dist/backend/claude-code.js.map +1 -1
  19. package/dist/backend/launch-effort.js +1 -1
  20. package/dist/backend/launch-effort.js.map +1 -1
  21. package/dist/backend/muse.js +10 -2
  22. package/dist/backend/muse.js.map +1 -1
  23. package/dist/backend/types.d.ts +8 -0
  24. package/dist/backend/types.js +10 -0
  25. package/dist/backend/types.js.map +1 -1
  26. package/dist/cache-analysis.d.ts +47 -1
  27. package/dist/cache-analysis.js +68 -8
  28. package/dist/cache-analysis.js.map +1 -1
  29. package/dist/cache-report-tool.d.ts +17 -0
  30. package/dist/cache-report-tool.js +40 -0
  31. package/dist/cache-report-tool.js.map +1 -0
  32. package/dist/cache-service.d.ts +15 -0
  33. package/dist/cache-service.js +26 -1
  34. package/dist/cache-service.js.map +1 -1
  35. package/dist/channel/adapters/discord.d.ts +2 -0
  36. package/dist/channel/adapters/discord.js +17 -2
  37. package/dist/channel/adapters/discord.js.map +1 -1
  38. package/dist/channel/adapters/telegram.d.ts +8 -1
  39. package/dist/channel/adapters/telegram.js +74 -4
  40. package/dist/channel/adapters/telegram.js.map +1 -1
  41. package/dist/channel/mcp-tools.js +36 -0
  42. package/dist/channel/mcp-tools.js.map +1 -1
  43. package/dist/channel/types.d.ts +15 -0
  44. package/dist/cli.js +7 -3
  45. package/dist/cli.js.map +1 -1
  46. package/dist/config-validator.js +22 -2
  47. package/dist/config-validator.js.map +1 -1
  48. package/dist/daemon.js +244 -20
  49. package/dist/daemon.js.map +1 -1
  50. package/dist/fleet-context.d.ts +5 -0
  51. package/dist/fleet-manager.d.ts +92 -0
  52. package/dist/fleet-manager.js +410 -29
  53. package/dist/fleet-manager.js.map +1 -1
  54. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +7 -0
  55. package/dist/general-knowledge/skills/web-appearance/SKILL.md +367 -0
  56. package/dist/instance-avatar.js +3 -0
  57. package/dist/instance-avatar.js.map +1 -1
  58. package/dist/instance-config-impact.js +3 -0
  59. package/dist/instance-config-impact.js.map +1 -1
  60. package/dist/instance-lifecycle.js +9 -4
  61. package/dist/instance-lifecycle.js.map +1 -1
  62. package/dist/needs-you-hub.d.ts +4 -0
  63. package/dist/needs-you-hub.js +31 -6
  64. package/dist/needs-you-hub.js.map +1 -1
  65. package/dist/needs-you.d.ts +1 -13
  66. package/dist/needs-you.js +3 -37
  67. package/dist/needs-you.js.map +1 -1
  68. package/dist/outbound-handlers.d.ts +7 -0
  69. package/dist/outbound-handlers.js +65 -10
  70. package/dist/outbound-handlers.js.map +1 -1
  71. package/dist/outbound-schemas.d.ts +74 -0
  72. package/dist/outbound-schemas.js +56 -0
  73. package/dist/outbound-schemas.js.map +1 -1
  74. package/dist/public-web-gateway.js +14 -0
  75. package/dist/public-web-gateway.js.map +1 -1
  76. package/dist/repo-worktree-guard.d.ts +36 -0
  77. package/dist/repo-worktree-guard.js +143 -0
  78. package/dist/repo-worktree-guard.js.map +1 -0
  79. package/dist/scheduler/scheduler.d.ts +70 -1
  80. package/dist/scheduler/scheduler.js +256 -17
  81. package/dist/scheduler/scheduler.js.map +1 -1
  82. package/dist/service-installer.d.ts +2 -1
  83. package/dist/service-installer.js +18 -3
  84. package/dist/service-installer.js.map +1 -1
  85. package/dist/settings-api.js +74 -1
  86. package/dist/settings-api.js.map +1 -1
  87. package/dist/settings-change.js +8 -0
  88. package/dist/settings-change.js.map +1 -1
  89. package/dist/settings-effect.js +16 -2
  90. package/dist/settings-effect.js.map +1 -1
  91. package/dist/settings-http-confirmation.js +5 -0
  92. package/dist/settings-http-confirmation.js.map +1 -1
  93. package/dist/tool-permissions.d.ts +5 -0
  94. package/dist/tool-permissions.js +61 -2
  95. package/dist/tool-permissions.js.map +1 -1
  96. package/dist/topic-commands.d.ts +10 -6
  97. package/dist/topic-commands.js +21 -17
  98. package/dist/topic-commands.js.map +1 -1
  99. package/dist/topic-link.d.ts +128 -0
  100. package/dist/topic-link.js +269 -0
  101. package/dist/topic-link.js.map +1 -0
  102. package/dist/types.d.ts +13 -0
  103. package/dist/ui/app-effects.js +187 -0
  104. package/dist/ui/chat-effect-posters.js +42 -0
  105. package/dist/ui/chat-effects.js +72 -0
  106. package/dist/ui/chat-live-replies.js +58 -0
  107. package/dist/ui/chat-render.js +4 -4
  108. package/dist/ui/chat-store.js +9 -3
  109. package/dist/ui/chat-strings.js +15 -0
  110. package/dist/ui/chat-thread.js +47 -21
  111. package/dist/ui/chat-tour.js +1 -1
  112. package/dist/ui/effect-trial-controller.js +119 -0
  113. package/dist/ui/effect-trial-offer.js +31 -0
  114. package/dist/ui/effect-trial-panel.js +37 -0
  115. package/dist/ui/fleet-cache.js +23 -1
  116. package/dist/ui/image-lightbox.js +1 -1
  117. package/dist/ui/panel-chat.js +85 -17
  118. package/dist/ui/panel-details.js +18 -5
  119. package/dist/ui/panel-fleet.js +3 -3
  120. package/dist/ui/panel-log.js +6 -6
  121. package/dist/ui/panel-needs.js +3 -3
  122. package/dist/ui/panel-settings.js +8 -5
  123. package/dist/ui/preview-panel.js +25 -9
  124. package/dist/ui/settings-appearance.js +325 -0
  125. package/dist/ui/settings-effects.js +201 -0
  126. package/dist/ui/settings-mods.js +257 -0
  127. package/dist/ui/settings-owner-effects.js +80 -0
  128. package/dist/ui/settings-strings.js +245 -0
  129. package/dist/ui/shared/agend-auth.js +27 -3
  130. package/dist/ui/shared/agent-widget.js +248 -0
  131. package/dist/ui/shared/app-i18n.js +2 -0
  132. package/dist/ui/shared/app-prefs.js +30 -10
  133. package/dist/ui/shared/app-route.js +23 -1
  134. package/dist/ui/shared/app-session.js +1 -1
  135. package/dist/ui/shared/app-shell.js +29 -16
  136. package/dist/ui/shared/app-store.js +2 -0
  137. package/dist/ui/shared/app-stream.js +12 -7
  138. package/dist/ui/shared/app-themes.js +188 -0
  139. package/dist/ui/shared/app.css +225 -3
  140. package/dist/ui/shared/app.js +6 -0
  141. package/dist/ui/shared/card-strings.js +28 -0
  142. package/dist/ui/shared/effect-app-runtime.js +248 -0
  143. package/dist/ui/shared/effect-baseline.js +64 -0
  144. package/dist/ui/shared/effect-chat-runtime.js +154 -0
  145. package/dist/ui/shared/effect-cursor.js +125 -0
  146. package/dist/ui/shared/effect-frame.js +127 -0
  147. package/dist/ui/shared/effect-geometry.js +122 -0
  148. package/dist/ui/shared/effect-host-style.js +10 -0
  149. package/dist/ui/shared/effect-owner-regions.js +74 -0
  150. package/dist/ui/shared/effect-owner-source.js +115 -0
  151. package/dist/ui/shared/effect-policy.js +137 -0
  152. package/dist/ui/shared/effect-poster-reader.js +98 -0
  153. package/dist/ui/shared/effect-posters.js +117 -0
  154. package/dist/ui/shared/effect-profiler.js +162 -0
  155. package/dist/ui/shared/effect-profiles.js +65 -0
  156. package/dist/ui/shared/effect-registry.js +496 -0
  157. package/dist/ui/shared/effect-runtime-loader.js +234 -0
  158. package/dist/ui/shared/effect-safety.js +153 -0
  159. package/dist/ui/shared/effect-stock-snapshot.js +34 -0
  160. package/dist/ui/shared/effect-stock-trust.js +165 -0
  161. package/dist/ui/shared/effect-trial-source.js +103 -0
  162. package/dist/ui/shared/effect-trial-stage.js +147 -0
  163. package/dist/ui/shared/header-tools.js +1 -1
  164. package/dist/ui/shared/identity-card.js +202 -0
  165. package/dist/ui/shared/identity-color.js +261 -0
  166. package/dist/ui/shared/instance-nav.js +37 -19
  167. package/dist/ui/shared/owner-css.js +221 -0
  168. package/dist/ui/shared/owner-effect-prefs.js +117 -0
  169. package/dist/ui/shared/panel-view.js +81 -8
  170. package/dist/ui/shared/signin.js +2 -0
  171. package/dist/ui/shared/ui-dialog.js +1 -1
  172. package/dist/ui/shared/ui-icons.js +2 -0
  173. package/dist/ui/shared/ui-menu.js +1 -1
  174. package/dist/ui/shared/ui-toast.js +1 -1
  175. package/dist/ui/shared/usage-dialog.js +14 -2
  176. package/dist/ui/shared/view-strings.js +36 -2
  177. package/dist/ui/signin.html +1 -0
  178. package/dist/usage/providers.d.ts +3 -0
  179. package/dist/usage/providers.js +4 -3
  180. package/dist/usage/providers.js.map +1 -1
  181. package/dist/view-api.d.ts +29 -0
  182. package/dist/view-api.js +188 -8
  183. package/dist/view-api.js.map +1 -1
  184. package/dist/web-api.d.ts +42 -0
  185. package/dist/web-api.js +898 -36
  186. package/dist/web-api.js.map +1 -1
  187. package/dist/web-appearance-limits.d.ts +82 -0
  188. package/dist/web-appearance-limits.js +83 -0
  189. package/dist/web-appearance-limits.js.map +1 -0
  190. package/dist/web-appearance-policy.d.ts +66 -0
  191. package/dist/web-appearance-policy.js +94 -0
  192. package/dist/web-appearance-policy.js.map +1 -0
  193. package/dist/web-appearance-tools.d.ts +50 -0
  194. package/dist/web-appearance-tools.js +105 -0
  195. package/dist/web-appearance-tools.js.map +1 -0
  196. package/dist/web-appearance-view.d.ts +99 -0
  197. package/dist/web-appearance-view.js +163 -0
  198. package/dist/web-appearance-view.js.map +1 -0
  199. package/dist/web-appearance.d.ts +79 -0
  200. package/dist/web-appearance.js +298 -0
  201. package/dist/web-appearance.js.map +1 -0
  202. package/dist/web-asset-parts.d.ts +93 -0
  203. package/dist/web-asset-parts.js +133 -0
  204. package/dist/web-asset-parts.js.map +1 -0
  205. package/dist/web-auth.js +17 -1
  206. package/dist/web-auth.js.map +1 -1
  207. package/dist/web-card.d.ts +96 -0
  208. package/dist/web-card.js +232 -0
  209. package/dist/web-card.js.map +1 -0
  210. package/dist/web-chat-history.d.ts +13 -0
  211. package/dist/web-chat-history.js +23 -2
  212. package/dist/web-chat-history.js.map +1 -1
  213. package/dist/web-effect-bundle.d.ts +28 -0
  214. package/dist/web-effect-bundle.js +126 -0
  215. package/dist/web-effect-bundle.js.map +1 -0
  216. package/dist/web-effect-canonical.d.ts +8 -0
  217. package/dist/web-effect-canonical.js +27 -0
  218. package/dist/web-effect-canonical.js.map +1 -0
  219. package/dist/web-effect-library.d.ts +114 -0
  220. package/dist/web-effect-library.js +530 -0
  221. package/dist/web-effect-library.js.map +1 -0
  222. package/dist/web-effect-poster.d.ts +8 -0
  223. package/dist/web-effect-poster.js +52 -0
  224. package/dist/web-effect-poster.js.map +1 -0
  225. package/dist/web-effect-profiles.d.ts +118 -0
  226. package/dist/web-effect-profiles.js +180 -0
  227. package/dist/web-effect-profiles.js.map +1 -0
  228. package/dist/web-effect-service.d.ts +86 -0
  229. package/dist/web-effect-service.js +314 -0
  230. package/dist/web-effect-service.js.map +1 -0
  231. package/dist/web-effect-tools.d.ts +47 -0
  232. package/dist/web-effect-tools.js +129 -0
  233. package/dist/web-effect-tools.js.map +1 -0
  234. package/dist/web-effect-trials.d.ts +86 -0
  235. package/dist/web-effect-trials.js +204 -0
  236. package/dist/web-effect-trials.js.map +1 -0
  237. package/dist/web-effect-upload.d.ts +27 -0
  238. package/dist/web-effect-upload.js +185 -0
  239. package/dist/web-effect-upload.js.map +1 -0
  240. package/dist/web-effect-worker.d.ts +8 -0
  241. package/dist/web-effect-worker.js +170 -0
  242. package/dist/web-effect-worker.js.map +1 -0
  243. package/dist/web-effect.d.ts +103 -0
  244. package/dist/web-effect.js +153 -0
  245. package/dist/web-effect.js.map +1 -0
  246. package/dist/web-identity-color.d.ts +87 -0
  247. package/dist/web-identity-color.js +209 -0
  248. package/dist/web-identity-color.js.map +1 -0
  249. package/dist/web-identity-palette.d.ts +113 -0
  250. package/dist/web-identity-palette.js +84 -0
  251. package/dist/web-identity-palette.js.map +1 -0
  252. package/dist/web-image-meta.d.ts +25 -0
  253. package/dist/web-image-meta.js +200 -0
  254. package/dist/web-image-meta.js.map +1 -0
  255. package/dist/web-mod-agent.d.ts +50 -0
  256. package/dist/web-mod-agent.js +205 -0
  257. package/dist/web-mod-agent.js.map +1 -0
  258. package/dist/web-mod-bundle.d.ts +149 -0
  259. package/dist/web-mod-bundle.js +470 -0
  260. package/dist/web-mod-bundle.js.map +1 -0
  261. package/dist/web-mod-export.d.ts +59 -0
  262. package/dist/web-mod-export.js +79 -0
  263. package/dist/web-mod-export.js.map +1 -0
  264. package/dist/web-mod-store.d.ts +283 -0
  265. package/dist/web-mod-store.js +625 -0
  266. package/dist/web-mod-store.js.map +1 -0
  267. package/dist/web-org.d.ts +3 -3
  268. package/dist/web-org.js +11 -17
  269. package/dist/web-org.js.map +1 -1
  270. package/dist/web-owner-css-store.d.ts +180 -0
  271. package/dist/web-owner-css-store.js +384 -0
  272. package/dist/web-owner-css-store.js.map +1 -0
  273. package/dist/web-owner-css.d.ts +58 -0
  274. package/dist/web-owner-css.js +552 -0
  275. package/dist/web-owner-css.js.map +1 -0
  276. package/dist/web-prefs.d.ts +48 -0
  277. package/dist/web-prefs.js +209 -33
  278. package/dist/web-prefs.js.map +1 -1
  279. package/dist/web-preview.d.ts +9 -1
  280. package/dist/web-preview.js +24 -7
  281. package/dist/web-preview.js.map +1 -1
  282. package/dist/web-settings-patch.d.ts +18 -0
  283. package/dist/web-settings-patch.js +51 -0
  284. package/dist/web-settings-patch.js.map +1 -1
  285. package/dist/web-shell-routes.d.ts +1 -1
  286. package/dist/web-shell-routes.js +1 -1
  287. package/dist/web-shell-routes.js.map +1 -1
  288. package/dist/web-theme-store.d.ts +218 -0
  289. package/dist/web-theme-store.js +516 -0
  290. package/dist/web-theme-store.js.map +1 -0
  291. package/dist/web-theme.d.ts +121 -0
  292. package/dist/web-theme.js +407 -0
  293. package/dist/web-theme.js.map +1 -0
  294. package/dist/web-widget.d.ts +72 -0
  295. package/dist/web-widget.js +245 -0
  296. package/dist/web-widget.js.map +1 -0
  297. package/package.json +1 -1
  298. package/templates/systemd.service.ejs +8 -0
@@ -1,5 +1,5 @@
1
1
  import { validPublicLinkPatch } from "./public-web-link.js";
2
- import { validateProvider } from "./backend/types.js";
2
+ import { PROMPT_CACHE_TTLS, validateProvider } from "./backend/types.js";
3
3
  import { DELIVERY_WORKER_MODES } from "./types.js";
4
4
  import { credentialHomeSpec, resolveCredentialProfile } from "./backend/credential-profile.js";
5
5
  import { STATUS_EMOJI_CONFIG_KEYS, statusEmojiProblem } from "./status-emojis.js";
@@ -7,13 +7,14 @@ import { hostnameOf } from "./web-host-guard.js";
7
7
  import { mbText, PUBLIC_LINK_MAX_FILE_BYTES, UPLOAD_LIMITS, UPLOAD_MB_RANGE } from "./web-upload.js";
8
8
  import { previewOriginProblem } from "./web-preview.js";
9
9
  import { DEFAULT_SESSION_POLICY, LOCAL_SESSION_HOURS } from "./web-session.js";
10
+ import { effectiveAppearanceLimits } from "./web-appearance-limits.js";
10
11
  import { existsSync } from "node:fs";
11
12
  import { isUnsupportedHomeRef, resolveFileRefPath, systemPromptParts } from "./prompt-file-ref.js";
12
13
  import { isRemovedBackend, removedBackendMessage } from "./backend/removed.js";
13
14
  import { CROSS_INSTANCE_VISIBILITY_MODES, isCrossInstanceVisibility } from "./cross-instance-notice.js";
14
15
  /** Every key `web:` takes (WebConfig, checked both ways at compile time): anything else is a typo or a guess, ignored. */
15
16
  const WEB_KEYS = ["public_link", "echo_to_channel", "usage_panel", "log_tab", "provider_secrets", "allowed_hosts", "view_access",
16
- "notify_login", "session", "preview", "preview_port", "preview_origin", "preview_on_public_link", "upload_max_file_mb", "upload_max_total_mb"];
17
+ "notify_login", "session", "preview", "preview_port", "preview_origin", "preview_on_public_link", "themes", "appearance", "upload_max_file_mb", "upload_max_total_mb"];
17
18
  const WEB_KEYS_COMPLETE = true;
18
19
  void WEB_KEYS_COMPLETE;
19
20
  /** Backends the factory can instantiate (keep in sync with backend/factory.ts). */
@@ -186,6 +187,10 @@ export function validateFleetConfig(config) {
186
187
  }
187
188
  }
188
189
  }
190
+ // #2010: opt-in Claude prompt-cache TTL ("1h" | "5m"); unset leaves the CLI's own choice.
191
+ if (backendName === "claude-code" && settings.prompt_cache_ttl !== undefined && !PROMPT_CACHE_TTLS.includes(settings.prompt_cache_ttl)) {
192
+ err(`${optionPath}.prompt_cache_ttl`, `must be one of: ${PROMPT_CACHE_TTLS.join(", ")}`);
193
+ }
189
194
  if (backendName === "codex" && settings.provider !== undefined) {
190
195
  if (typeof settings.provider !== "string") {
191
196
  err(`${optionPath}.provider`, "must be a string");
@@ -399,6 +404,21 @@ export function validateFleetConfig(config) {
399
404
  ? "web.access is not a setting; fleet admins come from channel(s).access.allowed_users — ignored"
400
405
  : `unknown key (known: ${WEB_KEYS.join(", ")}) — ignored`);
401
406
  }
407
+ if (config.web.themes !== undefined) {
408
+ if (!isObj(config.web.themes))
409
+ err("web.themes", "must be a mapping");
410
+ else {
411
+ for (const k of Object.keys(config.web.themes))
412
+ if (k !== "agent_edit")
413
+ warn(`web.themes.${k}`, "unknown key (known: agent_edit) — ignored");
414
+ if (config.web.themes.agent_edit !== undefined && typeof config.web.themes.agent_edit !== "boolean")
415
+ err("web.themes.agent_edit", "must be a boolean");
416
+ }
417
+ }
418
+ // #1629 r4.1 Q3 (b): never an error — a value out of its bound is clamped, a wrong one falls back to its default.
419
+ if (config.web.appearance !== undefined)
420
+ for (const w of effectiveAppearanceLimits(config.web.appearance).warnings)
421
+ warn(w.path, w.message);
402
422
  if (config.web.public_link !== undefined && !validPublicLinkPatch(config.web.public_link))
403
423
  err("web.public_link", "expected allow_public boolean, ttl_minutes integer 1..480, protocol http2/quic/auto");
404
424
  if (config.web.echo_to_channel !== undefined && typeof config.web.echo_to_channel !== "boolean") {
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"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"}
package/dist/daemon.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { AGENT_WHATS_NEW, agendVersion, planWhatsNew, readWhatsNewRecord, recordWhatsNew, whatsNewNotice } from "./agent-whats-new.js";
2
- import { join, dirname, basename, resolve } from "node:path";
2
+ import { join, dirname, resolve } from "node:path";
3
+ import { checkoutTarget, readCheckouts, releaseCandidate, reposRoot, verifyWorktree, writeCheckouts } from "./repo-worktree-guard.js";
3
4
  import { mkdirSync, writeFileSync, readFileSync, readdirSync, existsSync, unlinkSync, rmSync, appendFileSync, statSync, renameSync } from "node:fs";
4
5
  import { COMPACT_WATCH_TIMEOUT_MS, launchIdentity } from "./compact-watch.js";
5
6
  import { KIRO_COMPACT_PANE_LINES, KiroCompactPaneFollower } from "./kiro-compact-pane.js";
@@ -19,6 +20,9 @@ import { TranscriptTurnLedger } from "./transcript-turns.js";
19
20
  import { credentialProfileStoreHome, resolveCredentialProfile } from "./backend/credential-profile.js";
20
21
  import { resolveToolSet } from "./tool-permissions.js";
21
22
  import { getAgendHome } from "./paths.js";
23
+ import { readAgentEffect, sendEffectInParts } from "./web-effect-upload.js";
24
+ import { readAgentFile } from "./agent-file-read.js";
25
+ import { ASSET_UPLOAD_MAX_BYTES, MOD_FILE, MOD_MAX_PARTS, MOD_UPLOAD_MAX_BYTES, receiveFiles, receivePreview, sendAssetInParts, writeModFile, writePreview } from "./web-asset-parts.js";
22
26
  import { LOGIN_FLOWS } from "./login-flows.js";
23
27
  import { ProgressAccumulator, summarizeProgress } from "./tool-progress.js";
24
28
  import { assembleSystemPrompt, resolveWorkflowText } from "./prompt-file-ref.js";
@@ -55,6 +59,26 @@ import { unrecognisedPromptShape } from "./unrecognised-prompt.js";
55
59
  const __filename = fileURLToPath(import.meta.url);
56
60
  const __dirname = dirname(__filename);
57
61
  // Tool routing sets — module-level to avoid re-creation on every handleToolCall
62
+ /** #1629: the caller's own web theme tools, each its own typed IPC message (one tool per type, for the permission check). */
63
+ const WEB_THEME_IPC = Object.freeze({
64
+ get_web_theme: "fleet_get_web_theme", set_web_theme: "fleet_set_web_theme",
65
+ set_web_theme_asset: "fleet_set_web_theme_asset", reset_web_theme: "fleet_reset_web_theme",
66
+ // r4 §1: how it appears — read-only; a preview's files are written here, on the agent's side.
67
+ get_web_appearance: "fleet_get_web_appearance", preview_web_appearance: "fleet_preview_web_appearance",
68
+ // r4-4: its own declarative widgets.
69
+ set_web_widget: "fleet_set_web_widget", remove_web_widget: "fleet_remove_web_widget",
70
+ // r4-5b: mods — an export's file is written here, a proposal's file read here (on the agent's side).
71
+ export_web_mod: "fleet_export_web_mod", propose_web_mod: "fleet_propose_web_mod",
72
+ upload_web_effect: "fleet_upload_web_effect",
73
+ list_web_effects: "fleet_list_web_effects",
74
+ preview_web_effect: "fleet_preview_web_effect",
75
+ profile_web_effect: "fleet_profile_web_effect",
76
+ apply_web_effect: "fleet_apply_web_effect",
77
+ remove_web_effect: "fleet_remove_web_effect",
78
+ delete_web_effect: "fleet_delete_web_effect",
79
+ });
80
+ /** The largest picture any slot may take (a card slot's ceiling; the fleet checks the limit in force): read no more. */
81
+ const WEB_THEME_ASSET_MAX_BYTES = ASSET_UPLOAD_MAX_BYTES;
58
82
  const CROSS_INSTANCE_TOOLS = new Set(["send_to_instance", "broadcast", "list_instances", "start_instance", "restart_instance", "create_instance", "delete_instance", "replace_instance", "request_information", "delegate_task", "report_result", "delivery_status", "describe_instance"]);
59
83
  const SCHEDULE_TOOLS = new Set(["create_schedule", "list_schedules", "update_schedule", "delete_schedule"]);
60
84
  const DECISION_TOOLS = new Set(["post_decision", "list_decisions", "update_decision"]);
@@ -1073,7 +1097,7 @@ export class BlockingProcessDetector {
1073
1097
  /** Response types the fleet sends back for tool calls the daemon forwarded. */
1074
1098
  const FLEET_RESPONSE_TYPES = new Set([
1075
1099
  "fleet_schedule_response", "fleet_outbound_response", "fleet_decision_response", "fleet_task_response",
1076
- "fleet_display_name_response", "fleet_description_response", "fleet_persona_emoji_response",
1100
+ "fleet_display_name_response", "fleet_description_response", "fleet_persona_emoji_response", "fleet_web_theme_response",
1077
1101
  ]);
1078
1102
  export class Daemon extends EventEmitter {
1079
1103
  name;
@@ -9945,6 +9969,169 @@ export class Daemon extends EventEmitter {
9945
9969
  });
9946
9970
  return;
9947
9971
  }
9972
+ // #1629: the caller's own web theme. set_web_theme_asset's file is read HERE, on the agent's side (in its working
9973
+ // directory, no symlink, size-capped): the fleet receives bytes, never a workspace path.
9974
+ if (Object.hasOwn(WEB_THEME_IPC, tool)) {
9975
+ // Answered exactly once, whatever happens on the way (#1887 review: a throw here once left the call unanswered).
9976
+ let answered = false;
9977
+ const reply = (result, error) => { if (answered)
9978
+ return; answered = true; respond(result, error); };
9979
+ // One fleet request; resolves with its answer, or an error string (never rejects).
9980
+ const ask = (payload) => new Promise((resolve) => {
9981
+ const fleetReqId = `theme_${++this.fleetRequestSeq}_${requestId}`;
9982
+ const timeout = setTimeout(() => {
9983
+ this.pendingIpcRequests.delete(fleetReqId);
9984
+ resolve({ result: null, error: `${tool} timed out` });
9985
+ }, daemonBudgetMs(tool));
9986
+ this.pendingIpcRequests.set(fleetReqId, (respMsg) => {
9987
+ clearTimeout(timeout);
9988
+ resolve({ result: respMsg.result, error: respMsg.error });
9989
+ });
9990
+ this.ipcServer?.broadcast({ type: WEB_THEME_IPC[tool], payload, meta: { instance_name: this.name }, fleetRequestId: fleetReqId });
9991
+ });
9992
+ void (async () => {
9993
+ if (tool === "preview_web_appearance") {
9994
+ // The fleet builds the SVGs (whole, or in parts); they are written here, in the working directory.
9995
+ const first = await ask({ ...(args.modes !== undefined ? { modes: args.modes } : {}) });
9996
+ if (first.error) {
9997
+ reply(null, first.error);
9998
+ return;
9999
+ }
10000
+ let failed;
10001
+ const got = await receivePreview((first.result && typeof first.result === "object" ? first.result : {}), async (payload) => {
10002
+ const r = await ask(payload);
10003
+ if (r.error) {
10004
+ failed = r.error;
10005
+ return { error: r.error };
10006
+ }
10007
+ return (r.result && typeof r.result === "object" ? r.result : {});
10008
+ });
10009
+ if (failed) {
10010
+ reply(null, failed);
10011
+ return;
10012
+ }
10013
+ if ("error" in got) {
10014
+ reply(got, undefined);
10015
+ return;
10016
+ }
10017
+ const written = await writePreview(got.files, { workspace: this.config.working_directory, stateDir: getAgendHome(), instance: this.name });
10018
+ if ("error" in written) {
10019
+ reply(null, `preview_web_appearance: ${written.error}`);
10020
+ return;
10021
+ }
10022
+ reply(written, undefined);
10023
+ return;
10024
+ }
10025
+ if (tool === "export_web_mod") {
10026
+ // The fleet builds the file (whole, or in parts); it is written here, in the working directory.
10027
+ const first = await ask(args);
10028
+ if (first.error) {
10029
+ reply(null, first.error);
10030
+ return;
10031
+ }
10032
+ let failed;
10033
+ const firstResult = (first.result && typeof first.result === "object" ? first.result : {});
10034
+ const got = await receiveFiles(firstResult, async (payload) => {
10035
+ const r = await ask(payload);
10036
+ if (r.error) {
10037
+ failed = r.error;
10038
+ return { error: r.error };
10039
+ }
10040
+ return (r.result && typeof r.result === "object" ? r.result : {});
10041
+ }, { name: MOD_FILE, idKey: "transfer", what: "export", maxParts: MOD_MAX_PARTS });
10042
+ if (failed) {
10043
+ reply(null, failed);
10044
+ return;
10045
+ }
10046
+ if ("error" in got) {
10047
+ reply(got, undefined);
10048
+ return;
10049
+ }
10050
+ const written = await writeModFile(got.files, { workspace: this.config.working_directory, stateDir: getAgendHome(), instance: this.name });
10051
+ if ("error" in written) {
10052
+ reply(null, `export_web_mod: ${written.error}`);
10053
+ return;
10054
+ }
10055
+ reply({ ...written, ...(firstResult.effects_omitted ? { effects_omitted: firstResult.effects_omitted } : {}) }, undefined);
10056
+ return;
10057
+ }
10058
+ if (tool === "propose_web_mod") {
10059
+ const read = await readAgentFile(args.file, { workspace: this.config.working_directory, stateDir: getAgendHome(), instance: this.name, maxBytes: MOD_UPLOAD_MAX_BYTES });
10060
+ const named = typeof args.file === "string" ? args.file.slice(0, 200) : "the file argument";
10061
+ if (!read.ok) {
10062
+ reply(null, `propose_web_mod: ${named} — ${read.reason}`);
10063
+ return;
10064
+ }
10065
+ let failed;
10066
+ const answer = await sendAssetInParts("mod", read.bytes, async (payload) => {
10067
+ const r = await ask(payload);
10068
+ if (r.error) {
10069
+ failed = r.error;
10070
+ return { error: r.error };
10071
+ }
10072
+ return (r.result && typeof r.result === "object" ? r.result : {});
10073
+ });
10074
+ reply(failed ? null : answer, failed);
10075
+ return;
10076
+ }
10077
+ if (tool === "upload_web_effect") {
10078
+ const owner = { fence: this.launchFenceEpoch, spawn: this.spawnGeneration, boot: this.bootId, ipc: this.ipcServer };
10079
+ const current = () => !!owner.ipc && owner.ipc === this.ipcServer && owner.fence === this.launchFenceEpoch && owner.spawn === this.spawnGeneration && owner.boot === this.bootId && !this.deliveryWritesStopping && !this.startupAborted;
10080
+ if (!current()) {
10081
+ reply(null, "upload_web_effect: launch no longer current");
10082
+ return;
10083
+ }
10084
+ const read = await readAgentEffect(args.dir, { workspace: this.config.working_directory, stateDir: getAgendHome(), instance: this.name });
10085
+ if (!current()) {
10086
+ reply(null, "upload_web_effect: launch no longer current");
10087
+ return;
10088
+ }
10089
+ if (!read.ok) {
10090
+ reply(null, `upload_web_effect: ${read.reason}`);
10091
+ return;
10092
+ }
10093
+ let failed;
10094
+ const answer = await sendEffectInParts(read.files, async (payload) => {
10095
+ if (!current()) {
10096
+ failed = "upload_web_effect: launch no longer current";
10097
+ return { error: failed };
10098
+ }
10099
+ const r = await ask(payload);
10100
+ if (r.error) {
10101
+ failed = r.error;
10102
+ return { error: r.error };
10103
+ }
10104
+ return (r.result && typeof r.result === "object" ? r.result : {});
10105
+ });
10106
+ reply(failed ? null : answer, failed);
10107
+ return;
10108
+ }
10109
+ if (tool !== "set_web_theme_asset") {
10110
+ const r = await ask(args);
10111
+ reply(r.result, r.error);
10112
+ return;
10113
+ }
10114
+ const read = await readAgentFile(args.file, { workspace: this.config.working_directory, stateDir: getAgendHome(), instance: this.name, maxBytes: WEB_THEME_ASSET_MAX_BYTES });
10115
+ // The path as the agent gave it — only a string is shown (an object from raw JSON args is never coerced).
10116
+ const named = typeof args.file === "string" ? args.file.slice(0, 200) : "the file argument";
10117
+ if (!read.ok) {
10118
+ reply(null, `set_web_theme_asset: ${named} — ${read.reason}`);
10119
+ return;
10120
+ }
10121
+ // A picture larger than one IPC message goes up in parts (r4 §1: a card portrait may be megabytes).
10122
+ let failed;
10123
+ const answer = await sendAssetInParts(args.slot, read.bytes, async (payload) => {
10124
+ const r = await ask(payload);
10125
+ if (r.error) {
10126
+ failed = r.error;
10127
+ return { error: r.error };
10128
+ }
10129
+ return (r.result && typeof r.result === "object" ? r.result : {});
10130
+ });
10131
+ reply(failed ? null : answer, failed);
10132
+ })().catch((err) => reply(null, `${tool} failed: ${err instanceof Error ? err.message : "error"}`));
10133
+ return;
10134
+ }
9948
10135
  if (tool === TASK_TOOL) {
9949
10136
  const fleetReqId = `task_${++this.fleetRequestSeq}_${requestId}`;
9950
10137
  const timeout = setTimeout(() => {
@@ -12055,16 +12242,29 @@ export class Daemon extends EventEmitter {
12055
12242
  respond(null, `Not a git repository: ${source}`);
12056
12243
  return;
12057
12244
  }
12058
- const repoDir = join(this.instanceDir, "repos");
12059
- mkdirSync(repoDir, { recursive: true });
12060
- const safeName = `${basename(source)}-${branch.replace(/\//g, "-")}`;
12061
- const worktreePath = join(repoDir, safeName);
12245
+ mkdirSync(join(this.instanceDir, "repos"), { recursive: true });
12246
+ // Only a fresh direct child of a real repos/ directory (never through a symlinked repos/, never an existing path).
12247
+ const target = checkoutTarget(this.instanceDir, source, branch);
12248
+ if (!target.ok) {
12249
+ respond(null, `checkout_repo: ${target.reason}`);
12250
+ return;
12251
+ }
12252
+ const worktreePath = target.path;
12062
12253
  try {
12063
- // Resolve branch/ref to verify it exists. Use `--` so git never treats
12064
- // branch as an option flag (defense in depth on top of the regex above).
12065
- await execFileAsync("git", ["rev-parse", "--verify", "--", branch], { cwd: source });
12066
- await execFileAsync("git", ["worktree", "add", "--detach", worktreePath, branch], { cwd: source });
12254
+ // Resolve branch/ref to verify it exists. `--end-of-options` keeps git from ever reading branch as an option
12255
+ // flag (defense in depth on top of the regex above). Not `--`: rev-parse then reads branch as a path, and
12256
+ // `--verify` fails for every ref ("Needed a single revision"), which broke checkout_repo entirely.
12257
+ await execFileAsync("git", ["rev-parse", "--verify", "--end-of-options", `${branch}^{commit}`], { cwd: source });
12258
+ await execFileAsync("git", ["worktree", "add", "--detach", worktreePath, "--end-of-options", branch], { cwd: source });
12067
12259
  const { stdout: commitHash } = await execFileAsync("git", ["rev-parse", "--short", "HEAD"], { cwd: worktreePath });
12260
+ // Recorded so release_repo can tell this instance's checkout of this repository from anything else.
12261
+ try {
12262
+ const { stdout: common } = await execFileAsync("git", ["rev-parse", "--path-format=absolute", "--git-common-dir"], { cwd: worktreePath });
12263
+ const root = reposRoot(this.instanceDir);
12264
+ if (root.ok)
12265
+ writeCheckouts(root.path, { ...readCheckouts(root.path), [worktreePath]: common.trim() });
12266
+ }
12267
+ catch { /* unrecorded: release still requires a listed linked worktree */ }
12068
12268
  respond({ path: worktreePath, branch, source, commit: commitHash.trim() });
12069
12269
  }
12070
12270
  catch (err) {
@@ -12072,26 +12272,50 @@ export class Daemon extends EventEmitter {
12072
12272
  }
12073
12273
  }
12074
12274
  async handleReleaseRepo(args, respond) {
12075
- const repoPath = args.path;
12076
- const reposDir = join(this.instanceDir, "repos");
12077
- // Safety: only allow releasing paths under our repos/ directory
12078
- if (!repoPath.startsWith(reposDir)) {
12079
- respond(null, `Cannot release path outside instance repos directory`);
12275
+ // Containment first (real paths, strictly inside this instance's repos/), then proof it is a git worktree.
12276
+ // Nothing that fails either check is ever removed.
12277
+ const candidate = releaseCandidate(this.instanceDir, args.path);
12278
+ if (!candidate.ok) {
12279
+ respond(null, `Cannot release: ${candidate.reason}`);
12080
12280
  return;
12081
12281
  }
12282
+ const root = reposRoot(this.instanceDir);
12283
+ if (!root.ok) {
12284
+ respond(null, `Cannot release: ${root.reason}`);
12285
+ return;
12286
+ }
12287
+ const { execFile: execFileCb } = await import("node:child_process");
12288
+ const { promisify } = await import("node:util");
12289
+ const execFileAsync = promisify(execFileCb);
12290
+ const git = async (gitArgs, cwd) => (await execFileAsync("git", gitArgs, { cwd })).stdout;
12291
+ const worktree = await verifyWorktree(root.path, candidate.path, git);
12292
+ if (!worktree.ok) {
12293
+ respond(null, `Cannot release: ${worktree.reason}`);
12294
+ return;
12295
+ }
12296
+ const repoPath = candidate.path;
12082
12297
  try {
12083
- const { execFile: execFileCb } = await import("node:child_process");
12084
- const { promisify } = await import("node:util");
12085
- const execFileAsync = promisify(execFileCb);
12086
- await execFileAsync("git", ["worktree", "remove", "--force", repoPath]);
12298
+ await git(["--git-dir", worktree.commonDir, "worktree", "remove", "--force", repoPath], worktree.commonDir);
12087
12299
  }
12088
12300
  catch {
12089
- // Fallback: rm directly if git worktree remove fails
12301
+ // Fallback for a verified worktree only: remove it, then let its repository forget it.
12090
12302
  try {
12091
12303
  rmSync(repoPath, { recursive: true, force: true });
12092
12304
  }
12093
12305
  catch { /* best effort */ }
12306
+ try {
12307
+ await git(["--git-dir", worktree.commonDir, "worktree", "prune"], worktree.commonDir);
12308
+ }
12309
+ catch { /* best effort */ }
12310
+ }
12311
+ try {
12312
+ const records = readCheckouts(root.path);
12313
+ if (repoPath in records) {
12314
+ delete records[repoPath];
12315
+ writeCheckouts(root.path, records);
12316
+ }
12094
12317
  }
12318
+ catch { /* the worktree is gone; a stale record only refuses a later, different repo at this path */ }
12095
12319
  respond({ released: true, path: repoPath });
12096
12320
  }
12097
12321
  buildSnapshotPrompt() {