zidane 7.0.15 → 7.0.17

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 (123) hide show
  1. package/README.md +21 -14
  2. package/dist/{acp-Bw2b_kka.js → acp-DTnq3bda.js} +4 -4
  3. package/dist/{acp-Bw2b_kka.js.map → acp-DTnq3bda.js.map} +1 -1
  4. package/dist/acp-cli.js +5 -5
  5. package/dist/acp.d.ts +1 -1
  6. package/dist/acp.js +1 -1
  7. package/dist/{agent-B_uQo4f1.js → agent-C5xr7lqh.js} +170 -22
  8. package/dist/agent-C5xr7lqh.js.map +1 -0
  9. package/dist/agent.d.ts +1 -1
  10. package/dist/agent.js +1 -1
  11. package/dist/{anthropic-QbHqqTkV.js → anthropic-D_aMBEj8.js} +88 -5
  12. package/dist/anthropic-D_aMBEj8.js.map +1 -0
  13. package/dist/{approvals-B9aIQJRQ.js → approvals-D3P3Wz58.js} +48 -72
  14. package/dist/approvals-D3P3Wz58.js.map +1 -0
  15. package/dist/{auth-plw6npda.js → auth-893jSFew.js} +5 -5
  16. package/dist/auth-893jSFew.js.map +1 -0
  17. package/dist/chat/pure.d.ts +4 -4
  18. package/dist/chat/pure.js +2 -2
  19. package/dist/chat.d.ts +6 -6
  20. package/dist/chat.js +5 -5
  21. package/dist/contexts/daytona.d.ts +1 -1
  22. package/dist/contexts/e2b.d.ts +1 -1
  23. package/dist/daemon-cli.js +1 -1
  24. package/dist/eval.d.ts +1 -1
  25. package/dist/eval.js +1 -1
  26. package/dist/extensions.d.ts +1 -1
  27. package/dist/extensions.js +1 -1
  28. package/dist/headless.d.ts +1 -1
  29. package/dist/headless.js +3 -3
  30. package/dist/{index-Df2CH6bn.d.ts → index-CyOGLSQN.d.ts} +27 -16
  31. package/dist/index-CyOGLSQN.d.ts.map +1 -0
  32. package/dist/{index-Dc_zYpEu.d.ts → index-D7H81_kd.d.ts} +125 -4
  33. package/dist/index-D7H81_kd.d.ts.map +1 -0
  34. package/dist/index.d.ts +2 -2
  35. package/dist/index.js +6 -6
  36. package/dist/{ipc-T_pPnHkp.js → ipc-DY40IbcP.js} +2 -2
  37. package/dist/{ipc-T_pPnHkp.js.map → ipc-DY40IbcP.js.map} +1 -1
  38. package/dist/ipc.d.ts +5 -5
  39. package/dist/ipc.js +3 -3
  40. package/dist/mcp.d.ts +1 -1
  41. package/dist/{messages-21XfHxyF.js → messages-aORUmIKe.js} +2 -2
  42. package/dist/{messages-21XfHxyF.js.map → messages-aORUmIKe.js.map} +1 -1
  43. package/dist/{openai-compat-DY-AKxCg.js → openai-compat-cIeLSED_.js} +23 -25
  44. package/dist/openai-compat-cIeLSED_.js.map +1 -0
  45. package/dist/output/stream-json.d.ts +1 -1
  46. package/dist/output/terminal.d.ts +1 -1
  47. package/dist/plugins.d.ts +1 -1
  48. package/dist/presets.d.ts +1 -1
  49. package/dist/presets.js +1 -1
  50. package/dist/providers/anthropic.d.ts +2 -2
  51. package/dist/providers/anthropic.js +2 -2
  52. package/dist/providers/arcee.d.ts +1 -1
  53. package/dist/providers/arcee.js +1 -1
  54. package/dist/providers/baseten.d.ts +1 -1
  55. package/dist/providers/baseten.js +1 -1
  56. package/dist/providers/cerebras.d.ts +1 -1
  57. package/dist/providers/cerebras.js +1 -1
  58. package/dist/providers/local.d.ts +1 -1
  59. package/dist/providers/local.js +1 -1
  60. package/dist/providers/openai-compat.d.ts +1 -1
  61. package/dist/providers/openai-compat.js +1 -1
  62. package/dist/providers/openai.d.ts +1 -1
  63. package/dist/providers/openai.js +2 -2
  64. package/dist/providers/openrouter.d.ts +1 -1
  65. package/dist/providers/openrouter.js +1 -1
  66. package/dist/providers/xai.d.ts +1 -1
  67. package/dist/providers/xai.js +1 -1
  68. package/dist/{providers-CoK1rZ1p.js → providers-CTkZSxvp.js} +2 -2
  69. package/dist/{providers-CoK1rZ1p.js.map → providers-CTkZSxvp.js.map} +1 -1
  70. package/dist/providers.d.ts +1 -1
  71. package/dist/providers.js +3 -3
  72. package/dist/restate.d.ts +1 -1
  73. package/dist/restate.js +2 -2
  74. package/dist/{server-DXM8ZbGi.js → server-DaZqNd61.js} +5 -5
  75. package/dist/{server-DXM8ZbGi.js.map → server-DaZqNd61.js.map} +1 -1
  76. package/dist/session/sqlite.d.ts +1 -1
  77. package/dist/{session-DPZnncaQ.js → session-23Stp71-.js} +2 -2
  78. package/dist/{session-DPZnncaQ.js.map → session-23Stp71-.js.map} +1 -1
  79. package/dist/session.d.ts +1 -1
  80. package/dist/session.js +2 -2
  81. package/dist/skills.d.ts +1 -1
  82. package/dist/{tool-formatters-BgdOYAy9.d.ts → tool-formatters-9_ABHXRG.d.ts} +2 -2
  83. package/dist/{tool-formatters-BgdOYAy9.d.ts.map → tool-formatters-9_ABHXRG.d.ts.map} +1 -1
  84. package/dist/tools/fetch-url.d.ts +1 -1
  85. package/dist/tools/web-search.d.ts +1 -1
  86. package/dist/tools.d.ts +1 -1
  87. package/dist/tools.js +1 -1
  88. package/dist/{transcript-anchors-CtnwuQJM.d.ts → transcript-anchors-CbZkEMIN.d.ts} +11 -5
  89. package/dist/transcript-anchors-CbZkEMIN.d.ts.map +1 -0
  90. package/dist/tui.d.ts +67 -11
  91. package/dist/tui.d.ts.map +1 -1
  92. package/dist/tui.js +2930 -2596
  93. package/dist/tui.js.map +1 -1
  94. package/dist/{turn-operations-khAvr7KJ.d.ts → turn-operations-DsVjoO3S.d.ts} +30 -4
  95. package/dist/{turn-operations-khAvr7KJ.d.ts.map → turn-operations-DsVjoO3S.d.ts.map} +1 -1
  96. package/dist/{turn-operations-DkJ1R0p8.js → turn-operations-Dt5L8smX.js} +31 -2
  97. package/dist/{turn-operations-DkJ1R0p8.js.map → turn-operations-Dt5L8smX.js.map} +1 -1
  98. package/dist/types-CWgENVLY.js.map +1 -1
  99. package/dist/types.d.ts +1 -1
  100. package/docs/ACP.md +6 -0
  101. package/docs/ARCHITECTURE.md +179 -356
  102. package/docs/ARTIFACTS.md +145 -0
  103. package/docs/CHAT.md +426 -1312
  104. package/docs/EXECUTION_CONTEXT.md +46 -19
  105. package/docs/EXTENSIONS.md +215 -623
  106. package/docs/HEADLESS.md +5 -0
  107. package/docs/INTERACTIONS.md +21 -22
  108. package/docs/IPC.md +319 -344
  109. package/docs/PLUGINS.md +2 -0
  110. package/docs/README.md +57 -0
  111. package/docs/RESTATE.md +199 -491
  112. package/docs/RUN_IN_BACKGROUND.md +107 -558
  113. package/docs/SKILL.md +172 -238
  114. package/docs/TUI.md +216 -591
  115. package/package.json +1 -1
  116. package/dist/agent-B_uQo4f1.js.map +0 -1
  117. package/dist/anthropic-QbHqqTkV.js.map +0 -1
  118. package/dist/approvals-B9aIQJRQ.js.map +0 -1
  119. package/dist/auth-plw6npda.js.map +0 -1
  120. package/dist/index-Dc_zYpEu.d.ts.map +0 -1
  121. package/dist/index-Df2CH6bn.d.ts.map +0 -1
  122. package/dist/openai-compat-DY-AKxCg.js.map +0 -1
  123. package/dist/transcript-anchors-CtnwuQJM.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { n as __require } from "./rolldown-runtime-BhDjJH2R.js";
2
2
  import { n as THINKING_LEVELS, u as toolResultToText } from "./types-CWgENVLY.js";
3
- import { A as selectFilesFromSession, Cn as createDebugLog, D as resolveTasksDir, Dt as isSpawnTool, Et as createSpawnTool, G as summaryToTurn, Gt as glob, Ht as listFiles, It as readFile$1, Jn as OUTPUT_RESERVE_TOKENS, Jt as artifacts_default, Kt as edit, M as compactConversation, Mt as shellKill, O as buildPostCompactAttachments, Pt as shell, Rn as artifactKindLabel, Rt as multiEdit, St as writeFile$1, T as resolvePersistDir, Wn as renderArtifactRow, Wt as grep, Y as EMPTY_EXTENSION_REGISTRY, Yn as effectiveContextWindow, b as migrateSessionArtifactDirs, f as applyCompactSummaryCutoff, ft as filterRegistryPlugins, ln as readKeybindingsRaw, lt as composeExtensionPreset, on as mergeKeybindings, st as buildExtensionPreset, t as createAgent, un as resolveExtensionKeybindings, vt as composePresets, w as resolveMcpWarningsDir, wt as waitTask, yt as definePreset } from "./agent-B_uQo4f1.js";
3
+ import { A as selectFilesFromSession, Cn as createDebugLog, D as resolveTasksDir, Dt as isSpawnTool, Et as createSpawnTool, G as summaryToTurn, Gt as glob, Ht as listFiles, It as readFile$1, Jn as OUTPUT_RESERVE_TOKENS, Jt as artifacts_default, Kt as edit, M as compactConversation, Mt as shellKill, O as buildPostCompactAttachments, Pt as shell, Rn as artifactKindLabel, Rt as multiEdit, St as writeFile$1, T as resolvePersistDir, Wn as renderArtifactRow, Wt as grep, Y as EMPTY_EXTENSION_REGISTRY, Yn as effectiveContextWindow, b as migrateSessionArtifactDirs, f as applyCompactSummaryCutoff, ft as filterRegistryPlugins, ln as readKeybindingsRaw, lt as composeExtensionPreset, on as mergeKeybindings, st as buildExtensionPreset, t as createAgent, un as resolveExtensionKeybindings, vt as composePresets, w as resolveMcpWarningsDir, wt as waitTask, yt as definePreset } from "./agent-C5xr7lqh.js";
4
4
  import { F as parseCommandInvocation, M as commandBlocksToContent, P as executeCommand, c as SKILL_EDIT_METADATA_KEY, g as readSkillEditMarker, j as commandBlockToEvent, l as ZIDANE_EXTENSION_SKILL_NAME, m as extensionDirForCwd, s as EXTENSION_EDIT_METADATA_KEY, u as ZIDANE_SKILL_EDIT_SKILL_NAME, v as withZidaneExtensionSkill, w as generateStructuredData, y as withZidaneSkillEditSkill } from "./src-DzzhE2YO.js";
5
5
  import { a as formatDuration, c as previewLine, i as fmtTokens, l as shortId, s as formatTaskSummary, t as ageString } from "./format-BF745pLL.js";
6
6
  import { r as createProcessContext } from "./contexts-BSFQVclW.js";
@@ -11,14 +11,14 @@ import { n as defaultPluginDataRoot, p as resolveStorageDirs, r as loadAgentPlug
11
11
  import { r as createLogger, t as consoleSink } from "./logger--C1VQjwJ.js";
12
12
  import { h as McpOAuthProvider, l as normalizeMcpServers, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-BIWa57eY.js";
13
13
  import { appendDynamicSection, joinSystemPrompt, splitSystemPrompt } from "./prompt.js";
14
- import { o as loadSession, t as createSession } from "./session-DPZnncaQ.js";
14
+ import { o as loadSession, t as createSession } from "./session-23Stp71-.js";
15
15
  import { n as flattenTurns, r as formatTokenUsage } from "./stats-DAKBEKjc.js";
16
16
  import { i as installCacheBreakLogger } from "./cache-telemetry-ehVdWsg2.js";
17
17
  import { i as findActiveTriggers, n as collectReferences, o as mergeSuggestions, t as applyInsert } from "./completion-core-BRo86R_L.js";
18
18
  import { r as fetchUrl } from "./fetch-url-ma-5_p0p.js";
19
19
  import { webSearch } from "./tools/web-search.js";
20
- import { $t as hasRunReceipt, A as chunkMarkdownForRender, Dt as MAIN_PLAYBOOK_FRAGMENT, Ft as orchestratedBy, It as parseSessionEventXml, K as filterChainFallbacks, Lt as renderProjectsBriefing, Mt as WORKER_REPORT_FRAGMENT, Nt as artifactsFromTurns, Ot as MAIN_SESSION_TITLE, Pt as isMainSession, Q as restoreChainFallbacks, Rt as renderSessionEventXml, Sn as chatReferenceTokensFromText, V as buildRunModel, Vt as sessionEventLabel, Xt as formatRunReceiptLine, _n as resolveApprovalForPayload, bt as promptTurnRefs, en as runReceiptFromRun, gn as parseEditOutcomesFromResult, hn as mergeApprovalAndBodyOutcomes, jt as SESSION_ROLE_KEY, kt as ORCHESTRATED_BY_KEY, ln as previewEditPayload, m as ownerOf, pn as buildEditOutcomesAnnotation, sn as extractEditPayload, u as capTranscriptEvents, vn as rewriteMultiEditHeader, yn as stripEditOutcomesAnnotation } from "./turn-operations-DkJ1R0p8.js";
21
- import { T as restoreModelOptions, b as modelSupportsReasoning, d as BUILTIN_PROVIDERS, f as anthropicDescriptor, g as getContextWindow, h as enabledModelOptions, i as readCredentials, m as credKeyOf, n as applyApiKeyEnv, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-plw6npda.js";
20
+ import { A as chunkMarkdownForRender, At as MAIN_SESSION_TITLE, Bt as renderSessionEventXml, Ft as artifactsFromTurns, It as isMainSession, J as filterChainFallbacks, Lt as orchestratedBy, Nt as SESSION_ROLE_KEY, Pt as WORKER_REPORT_FRAGMENT, Qt as formatRunReceiptLine, Rt as parseSessionEventXml, St as promptTurnRefs, U as buildRunModel, Ut as sessionEventLabel, _n as mergeApprovalAndBodyOutcomes, bn as rewriteMultiEditHeader, dn as previewEditPayload, et as restoreChainFallbacks, hn as buildEditOutcomesAnnotation, jt as ORCHESTRATED_BY_KEY, kt as MAIN_PLAYBOOK_FRAGMENT, ln as extractEditPayload, m as ownerOf, nn as runReceiptFromRun, tn as hasRunReceipt, u as capTranscriptEvents, vn as parseEditOutcomesFromResult, wn as chatReferenceTokensFromText, xn as stripEditOutcomesAnnotation, yn as resolveApprovalForPayload, zt as renderProjectsBriefing } from "./turn-operations-Dt5L8smX.js";
21
+ import { T as restoreModelOptions, b as modelSupportsReasoning, d as BUILTIN_PROVIDERS, f as anthropicDescriptor, g as getContextWindow, h as enabledModelOptions, i as readCredentials, m as credKeyOf, n as applyApiKeyEnv, r as credentialsPath, t as detectAuth, x as modelsForDescriptor } from "./auth-893jSFew.js";
22
22
  import { basename, delimiter, dirname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
23
23
  import { Buffer } from "node:buffer";
24
24
  import { chmodSync, closeSync, cpSync, createReadStream, createWriteStream, existsSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, readdirSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -2772,27 +2772,6 @@ function pluralizeKind(label, count) {
2772
2772
  if (count === 1) return lower;
2773
2773
  return /(?:s|x|ch|sh)$/.test(lower) ? `${lower}es` : `${lower}s`;
2774
2774
  }
2775
- /**
2776
- * Markdown for a `/artifacts` transcript note. `title` is the scope line
2777
- * (`this session`, `project /repo`); rows link when they have an `href`.
2778
- */
2779
- function formatArtifactsMarkdown(artifacts, opts) {
2780
- const where = opts.scope === "project" ? `project ${opts.projectRoot ?? "(none)"}` : "this session";
2781
- if (artifacts.length === 0) return `### Artifacts · ${where}\n\n_No artifacts yet. Pull requests, branches, commits and created files appear here as the agent produces them._`;
2782
- return `### Artifacts · ${where}\n\n${groupArtifacts(artifacts, opts.registry).map((group) => {
2783
- const lines = group.rows.map(({ artifact, row }) => {
2784
- const parts = [row.href ? `[${row.title}](${row.href})` : `**${row.title}**`];
2785
- if (row.status) parts.push(`\`${row.status}\``);
2786
- if (row.subtitle && row.subtitle !== row.title) parts.push(row.subtitle);
2787
- if (opts.scope === "project") {
2788
- const title = opts.sessionTitle?.(artifact.sessionId);
2789
- parts.push(`_${title ?? artifact.sessionId.slice(0, 8)}_`);
2790
- }
2791
- return `- ${parts.join(" · ")}`;
2792
- });
2793
- return `**${group.label}${group.rows.length === 1 ? "" : "s"}**\n${lines.join("\n")}`;
2794
- }).join("\n\n")}`;
2795
- }
2796
2775
  //#endregion
2797
2776
  //#region src/chat/auto-compact.ts
2798
2777
  /**
@@ -5804,7 +5783,7 @@ function resolveConfig(options) {
5804
5783
  model: options.launch?.model,
5805
5784
  thinking: options.launch?.thinking
5806
5785
  }) : resumeProvider ? pickInitial(resumeProvider, providers, initialState) : null;
5807
- const initialAgentId = resolveAgentId(agents, initialState.lastAgent, options.defaultAgent ?? "build");
5786
+ const initialAgentId = resolveAgentId(agents, void 0, options.defaultAgent ?? "build");
5808
5787
  if (!initialAgentId) throw new Error("resolveConfig: failed to resolve an initial agent id from a non-empty registry.");
5809
5788
  const rawKeybindings = readKeybindingsRaw(paths.userDir);
5810
5789
  const keybindings = mergeKeybindings(rawKeybindings);
@@ -7450,6 +7429,7 @@ const DEFAULT_SETTINGS = {
7450
7429
  showTodoIndicator: true,
7451
7430
  showUsageIndicator: true,
7452
7431
  showThrobber: false,
7432
+ artifacts: true,
7453
7433
  checkForUpdates: true,
7454
7434
  subscriptionUsage: true,
7455
7435
  uiMode: "full",
@@ -7711,6 +7691,12 @@ const SETTINGS_TOGGLES = [
7711
7691
  label: "Streaming throbber",
7712
7692
  description: "animated glyphs under the last message while the agent works"
7713
7693
  },
7694
+ {
7695
+ category: "ui",
7696
+ key: "artifacts",
7697
+ label: "Artifacts",
7698
+ description: "track what a session produces (pull requests, branches, commits, recorded files) — rail, sessions badge, #pr completion, record_artifact tool (off = nothing detected, recorded or shown)"
7699
+ },
7714
7700
  {
7715
7701
  category: "ui",
7716
7702
  key: "fileLogging",
@@ -9026,7 +9012,7 @@ async function createSessionInStore(store, params) {
9026
9012
  id,
9027
9013
  store,
9028
9014
  ...projectRoot ? { projectRoot } : {},
9029
- ...params.agentId ? { agentId: params.agentId } : {}
9015
+ agentId: params.agentId ?? "build"
9030
9016
  });
9031
9017
  session.setMeta("cwd", params.cwd);
9032
9018
  if (params.title) session.setMeta("title", params.title);
@@ -9069,7 +9055,7 @@ function createBuiltinCommands(opts) {
9069
9055
  description: "List the available / commands",
9070
9056
  run: (ctx) => {
9071
9057
  const all = [...opts.getCommands()].sort((a, b) => a.name.localeCompare(b.name));
9072
- const body = all.length === 0 ? "_No commands are registered._" : all.map((c) => `- **/${c.name}**: ${c.description}`).join("\n");
9058
+ const body = all.length === 0 ? "_No commands are registered._" : all.map((c) => `- **/${c.name}** — ${c.description}`).join("\n");
9073
9059
  ctx.emit({ text: `### Commands\n\n${body}` });
9074
9060
  }
9075
9061
  }];
@@ -9084,26 +9070,7 @@ function createBuiltinCommands(opts) {
9084
9070
  detail: { label: "reloading extensions…" }
9085
9071
  });
9086
9072
  const { active, inactive } = await reload();
9087
- ctx.emit({ text: `Reloaded: **${active}** active${inactive > 0 ? `, ${inactive} inactive` : ""}. Agent tools apply on the next run.` });
9088
- }
9089
- });
9090
- }
9091
- if (opts.artifacts) {
9092
- const artifacts = opts.artifacts;
9093
- commands.push({
9094
- name: "artifacts",
9095
- description: "List what this session produced (pull requests, branches, commits, files). `/artifacts project` covers every session in this project",
9096
- completeArgs: (prefix) => ["project", "session"].filter((v) => v.startsWith(prefix.trim())).map((value) => ({ value })),
9097
- run: async (ctx) => {
9098
- const scope = ctx.argv[0]?.toLowerCase() === "project" ? "project" : "session";
9099
- if (artifacts.open?.(scope)) return;
9100
- const rows = await artifacts.list(scope);
9101
- ctx.emit({ text: formatArtifactsMarkdown(rows, {
9102
- scope,
9103
- ...artifacts.projectRoot ? { projectRoot: artifacts.projectRoot() } : {},
9104
- ...artifacts.registry ? { registry: artifacts.registry() } : {},
9105
- ...artifacts.sessionTitle ? { sessionTitle: artifacts.sessionTitle } : {}
9106
- }) });
9073
+ ctx.emit({ text: `Reloaded — **${active}** active${inactive > 0 ? `, ${inactive} inactive` : ""}. Agent-side contributions apply on the next run.` });
9107
9074
  }
9108
9075
  });
9109
9076
  }
@@ -9259,11 +9226,24 @@ function sessionHostRuntime(run, env, deps) {
9259
9226
  },
9260
9227
  workspaceAvailable: () => true,
9261
9228
  artifacts: () => {
9229
+ if (env.readSettings().artifacts === false) return null;
9262
9230
  const session = run.agent.session;
9263
9231
  return {
9264
9232
  store: env.store,
9265
9233
  ...session ? { sessionId: session.id } : {},
9266
- ...session?.projectRoot ? { projectRoot: session.projectRoot } : {}
9234
+ ...session?.projectRoot ? { projectRoot: session.projectRoot } : {},
9235
+ record: async (artifact) => {
9236
+ if (!env.store.upsertArtifact) return null;
9237
+ const stored = await env.store.upsertArtifact(artifact);
9238
+ if (stored) env.broadcast({
9239
+ kind: "artifact:changed",
9240
+ sessionId: stored.sessionId,
9241
+ op: "upsert",
9242
+ artifactId: stored.id,
9243
+ artifact: stored
9244
+ });
9245
+ return stored;
9246
+ }
9267
9247
  };
9268
9248
  }
9269
9249
  };
@@ -9308,23 +9288,9 @@ function createCommandModule(deps) {
9308
9288
  * a window attached to the daemon and one running locally resolve the same
9309
9289
  * name to the same command.
9310
9290
  */
9311
- function mergedCommands(extensionCommands, scope) {
9291
+ function mergedCommands(extensionCommands) {
9312
9292
  const merged = [];
9313
- const builtins = createBuiltinCommands({
9314
- getCommands: () => merged,
9315
- artifacts: {
9316
- list: async (mode) => {
9317
- if (!env.store.listArtifacts || !scope) return [];
9318
- if (mode === "project") {
9319
- const root = scope.session.projectRoot;
9320
- return root ? env.store.listArtifacts({ projectRoot: root }) : [];
9321
- }
9322
- return env.store.listArtifacts({ sessionId: scope.session.id });
9323
- },
9324
- projectRoot: () => scope?.session.projectRoot,
9325
- registry: () => scope?.registry
9326
- }
9327
- });
9293
+ const builtins = createBuiltinCommands({ getCommands: () => merged });
9328
9294
  const seen = /* @__PURE__ */ new Set();
9329
9295
  for (const command of [...extensionCommands, ...builtins]) {
9330
9296
  const key = command.name.toLowerCase();
@@ -9416,10 +9382,7 @@ function createCommandModule(deps) {
9416
9382
  if (!prompt.startsWith("/")) return { ran: false };
9417
9383
  const run = await ensureAgent(opts.sessionId);
9418
9384
  const runtimeConfig = await env.runtimeConfig(run.cwd);
9419
- const commands = mergedCommands(runtimeConfig.extensions.commands, run.agent.session ? {
9420
- session: run.agent.session,
9421
- registry: runtimeConfig.extensions
9422
- } : void 0);
9385
+ const commands = mergedCommands(runtimeConfig.extensions.commands);
9423
9386
  const invocation = parseCommandInvocation(prompt, commands);
9424
9387
  if (!invocation) return { ran: false };
9425
9388
  const command = commands.find((c) => c.name === invocation.name);
@@ -11108,7 +11071,8 @@ function createChatHost(env) {
11108
11071
  if (!profile) throw new Error("No agent profiles are registered.");
11109
11072
  const pluginCatalog = await pluginsForCwd(cwd, runtimeConfig.prefix, runtimeConfig.pluginScanPaths ?? []);
11110
11073
  const liveExtensions = filterRegistryPlugins(runtimeConfig.extensions, settings.enabledPlugins, new Set(pluginCatalog.map((p) => p.name)));
11111
- const composedPreset = composeExtensionPreset(liveExtensions, composePresets(artifacts_default, profile.preset));
11074
+ const artifactsEnabled = settings.artifacts !== false;
11075
+ const composedPreset = composeExtensionPreset(liveExtensions, artifactsEnabled ? composePresets(artifacts_default, profile.preset) : profile.preset);
11112
11076
  const session = await loadSession(store, sessionId) ?? await createSession({
11113
11077
  id: sessionId,
11114
11078
  agentId: profile.id,
@@ -11232,6 +11196,7 @@ function createChatHost(env) {
11232
11196
  name: profile.label,
11233
11197
  ...system ? { system } : {},
11234
11198
  session,
11199
+ artifacts: artifactsEnabled,
11235
11200
  execution: createProcessContext({ cwd }),
11236
11201
  skills: finalSkills,
11237
11202
  mcpServers: dedupByName([
@@ -11956,6 +11921,17 @@ function createChatHost(env) {
11956
11921
  refs
11957
11922
  });
11958
11923
  });
11924
+ agent.hooks.hook("stream:progress", ({ turnId, outputTokens, estimated, elapsedMs, estCostUsd }) => {
11925
+ broadcast({
11926
+ kind: "stream:progress",
11927
+ sessionId,
11928
+ turnId,
11929
+ outputTokens,
11930
+ estimated,
11931
+ elapsedMs,
11932
+ ...estCostUsd !== void 0 ? { estCostUsd } : {}
11933
+ });
11934
+ });
11959
11935
  agent.hooks.hook("turn:after", (ctx) => {
11960
11936
  broadcast({
11961
11937
  kind: "turn:end",
@@ -16467,6 +16443,6 @@ function createApprovalHub(options) {
16467
16443
  };
16468
16444
  }
16469
16445
  //#endregion
16470
- export { supportsOAuth as $, tryOpenBrowser as $n, INTERACTION_GUIDANCE_NO_PROMPTS as $r, runCompaction as $t, useSafeModeQueue as A, createDiscoverySlot as An, DEFAULT_MAX_TODO_ITEMS as Ar, makeRequestInteraction as At, USAGE_CACHE_TTL_MS as B, scoreArtifacts as Bn, isTodoTool as Br, readFileSafe as Bt, resolveSessionExportTarget as C, sumRunCosts as Ci, GRUVBOX_LIGHT as Cn, DEFAULT_AGENT_ID as Cr, InteractionsProvider as Ct, scopeCwd as D, updateToolEventOutcomes as Di, CATPPUCCIN_MOCHA as Dn, accentColor as Dr, createInteractionTools as Dt, resolveSessionCwd as E, toolResultText as Ei, CATPPUCCIN_MACCHIATO as En, PLAN_AGENT as Er, createAutomaticInteractionResponse as Et, matchesSafelistEntry as F, useConfig as Fn, TODO_WRITE_COUNTS_METADATA_KEY as Fr, STALE_RUN_MARKER_MS as Ft, usageChecksOptedOut as G, mcpsWritePath as Gn, setTodosForRun as Gr, modelChainMetadata as Gt, fetchAllProviderUsage as H, countClaudeSessionFiles as Hn, pruneTodosByRun as Hr, serializePreview as Ht, projectsFilePath as I, resolveConfig as In, applyTodosSnapshot as Ir, createChatHost as It, fetchOAuthRedirect as J, buildMcpServers as Jn, ACTIONS_WITH_CARE_DOCTRINE as Jr, buildPluginContributions as Jt, usageSourceFor as K, removeMcpServer as Kn, todoProgressLabel as Kr, sessionModelFallbacks as Kt, readProjects as L, resolveStoragePaths as Ln, createTodoTools as Lr, toTodosSnapshot as Lt, addToSafelist as M, useDiscovery as Mn, TODOS_METADATA_KEY as Mr, serializeInteractionResponse as Mt, getSafelist as N, useDiscoveryOptional as Nn, TODOWRITE_TOOL as Nr, useInteractionsActions as Nt, SafeModeProvider as O, usageByModel as Oi, parseEditorCommand as On, resolveAgentId as Or, isInteractionTool as Ot, isOnSafelist as P, ConfigProvider as Pn, TODO_STATUS_GLYPHS as Pr, useInteractionsQueue as Pt, runOAuthLogin as Q, parseMcpsFile as Qn, INTERACTION_GUIDANCE as Qr, EditOutcomeLedger as Qt, suggestSafelistEntries as R, ARTIFACTS_COMPLETION_PROVIDER_ID as Rn, getArchivedTodosForRun as Rr, createInteractionHub as Rt, renderSession as S, stripSpawnTokensLine as Si, GRUVBOX_DARK as Sn, BUILTIN_AGENTS as Sr, HOST_INTERACTION_ID_PREFIX as St, folderlessCwd as T, toolCallPreview as Ti, CATPPUCCIN_LATTE as Tn, DEFAULT_PERSIST_EXCLUDE_TOOLS as Tr, buildResumedToolResultsTurn as Tt, fetchProviderUsage as U, hasClaudeCodeSetup as Un, sanitizeTodoItems as Ur, createBuiltinCommands as Ut, clearProviderUsageCache as V, useCompletion as Vn, pickActiveRunId as Vr, resolveCwdPath as Vt, providerUsageSupported as W, importFromClaudeCode as Wn, selectActiveTodos as Wr, createMainSession as Wt, redirectUriFromAuthUrl as X, defaultMcpsConfigPaths as Xn, DOING_TASKS_DOCTRINE as Xr, parsePluginScanPathEnv as Xt, normalizeRedirectPaste as Y, dedupMcpServersByName as Yn, COMMUNICATION_DOCTRINE as Yr, discoverProjectPlugins as Yt, oauthUsesManualCodePaste as Z, discoverProjectMcps as Zn, IDENTITY_PREFIX as Zr, attachMcpWarnLog as Zt, buildSpawnEndEvent as _, loadState as _i, BUILTIN_THEMES as _n, groupArtifacts as _r, useMcpAuthState as _t, renderActiveTodoAnchor as a, buildPlanSystem as ai, shortChord as an, findInstalledCompanion as ar, subscribeMcpToolsCache as at, defaultSkillScanPaths as b, saveState as bi, resolveTheme as bn, renderAgentsMdBlock as br, ASK_USER_TOOL as bt, useSelectStyle as c, createChatTurnsReadTool as ci, DEFAULT_SETTINGS as cn, compareSemver as cr, useMcpToolToggleSet as ct, useTheme as d, createStateStore as di, SETTINGS_INPUTS as dn, parseSemver as dr, parentServerName as dt, PLAN_MODE_DOCTRINE as ei, EMPTY_HINTS as en, bootProfileEnabled as er, clearMcpToolsCache as et, discoverSystemMd as f, deriveSessionTitle as fi, SETTINGS_TOGGLES as fn, performInPlaceSelfUpdate as fr, createFileMcpCredentialStore as ft, useStreamBuffer as g, listSessionMeta as gi, useSettings as gn, formatArtifactsMarkdown as gr, useMcpAuthDispatch as gt, userSystemMdPath as h, lastContextSizeFromTurns as hi, enforceSettingsInvariants as hn, chatAutoCompactBehavior as hr, McpAuthProvider as ht, createActiveTodoAnchorHooks as i, buildBuildSystem as ii, buildHints as in, runUpdateCommand as ir, saveMcpToolsCache as it, IMPLICITLY_SAFE_TOOLS as j, DiscoveryProvider as jn, TODOREAD_TOOL as jr, pendingInteractionsFromTurns as jt, useSafeModeActions as k, quoteForShell as kn, singleAgentRegistry as kr, isModelInteraction as kt, useSurfaces as l, DEFAULT_SESSION_TITLE as li, SETTINGS_CATEGORIES as ln, detectLibc as lr, buildVisibleMcpRows as lt, userScopeOverridesLoad as m, getSessionMeta as mi, clampFps as mn, resolvePlatformPackage as mr, patchMcpCredential as mt, createMemoryApprovalsStore as n, SUBAGENT_GUIDANCE as ni, hintsLength as nn, buildUpdateHint as nr, mcpToolsCachePath as nt, ThemeProvider as o, envSection as oi, listProjectFiles as on, checkForUpdate as or, buildToolToggle as ot, renderSystemMdSeed as p, eventsFromTurns as pi, SettingsProvider as pn, performSelfUpdate as pr, mcpCredentialsPath as pt, formatPathForCwd as q, upsertMcpServer as qn, useActiveTodos as qr, runEndNotice as qt, computeTurnAnchors as r, TOKEN_DISCIPLINE_DOCTRINE as ri, truncateTrailing as rn, useUpdateCheck as rr, refreshMcpToolsCatalog as rt, useColors as s, chatReferenceTokensForPrompt as si, useEnabledToggleSet as sn, checkTarballAvailable as sr, useMcpToolToggleMap as st, createApprovalHub as t, PLAN_MODE_DOCTRINE_NO_PROMPTS as ti, clipHintsToWidth as tn, bootTick as tr, loadMcpToolsCache as tt, useSyntaxStyles as u, compactSummaryEvent as ui, SETTINGS_CHOICES as un, detectPackageManager as ur, indexOfServerRow as ut, buildSpawnStartEvent as v, marginTopFor as vi, DEFAULT_THEME as vn, summarizeArtifactCounts as vr, getMcpAuthStatus as vt, writeSessionExport as w, titleFromTurns as wi, CATPPUCCIN_FRAPPE as wn, DEFAULT_BUDGET_EXCLUDE_TOOLS as wr, PRESENT_PLAN_TOOL as wt, discoverProjectSkills as x, serverToolResultSummary as xi, VAPORWAVE_THEME as xn, BUILD_AGENT as xr, AUTOMATIC_INTERACTION_INSTRUCTION as xt, buildSkillsConfig as y, noticeTurnContent as yi, resolveChipColor as yn, discoverAgentsMd as yr, reduceMcpAuth as yt, writeProjects as z, createArtifactsCompletionProvider as zn, getTodosForRun as zr, extractEditPayloadForGate as zt };
16446
+ export { supportsOAuth as $, tryOpenBrowser as $n, PLAN_MODE_DOCTRINE as $r, runCompaction as $t, useSafeModeQueue as A, createDiscoverySlot as An, TODOREAD_TOOL as Ar, makeRequestInteraction as At, USAGE_CACHE_TTL_MS as B, scoreArtifacts as Bn, pickActiveRunId as Br, readFileSafe as Bt, resolveSessionExportTarget as C, titleFromTurns as Ci, GRUVBOX_LIGHT as Cn, DEFAULT_BUDGET_EXCLUDE_TOOLS as Cr, InteractionsProvider as Ct, scopeCwd as D, usageByModel as Di, CATPPUCCIN_MOCHA as Dn, resolveAgentId as Dr, createInteractionTools as Dt, resolveSessionCwd as E, updateToolEventOutcomes as Ei, CATPPUCCIN_MACCHIATO as En, accentColor as Er, createAutomaticInteractionResponse as Et, matchesSafelistEntry as F, useConfig as Fn, applyTodosSnapshot as Fr, STALE_RUN_MARKER_MS as Ft, usageChecksOptedOut as G, mcpsWritePath as Gn, todoProgressLabel as Gr, modelChainMetadata as Gt, fetchAllProviderUsage as H, countClaudeSessionFiles as Hn, sanitizeTodoItems as Hr, serializePreview as Ht, projectsFilePath as I, resolveConfig as In, createTodoTools as Ir, createChatHost as It, fetchOAuthRedirect as J, buildMcpServers as Jn, COMMUNICATION_DOCTRINE as Jr, buildPluginContributions as Jt, usageSourceFor as K, removeMcpServer as Kn, useActiveTodos as Kr, sessionModelFallbacks as Kt, readProjects as L, resolveStoragePaths as Ln, getArchivedTodosForRun as Lr, toTodosSnapshot as Lt, addToSafelist as M, useDiscovery as Mn, TODOWRITE_TOOL as Mr, serializeInteractionResponse as Mt, getSafelist as N, useDiscoveryOptional as Nn, TODO_STATUS_GLYPHS as Nr, useInteractionsActions as Nt, SafeModeProvider as O, parseEditorCommand as On, singleAgentRegistry as Or, isInteractionTool as Ot, isOnSafelist as P, ConfigProvider as Pn, TODO_WRITE_COUNTS_METADATA_KEY as Pr, useInteractionsQueue as Pt, runOAuthLogin as Q, parseMcpsFile as Qn, INTERACTION_GUIDANCE_NO_PROMPTS as Qr, EditOutcomeLedger as Qt, suggestSafelistEntries as R, ARTIFACTS_COMPLETION_PROVIDER_ID as Rn, getTodosForRun as Rr, createInteractionHub as Rt, renderSession as S, sumRunCosts as Si, GRUVBOX_DARK as Sn, DEFAULT_AGENT_ID as Sr, HOST_INTERACTION_ID_PREFIX as St, folderlessCwd as T, toolResultText as Ti, CATPPUCCIN_LATTE as Tn, PLAN_AGENT as Tr, buildResumedToolResultsTurn as Tt, fetchProviderUsage as U, hasClaudeCodeSetup as Un, selectActiveTodos as Ur, createBuiltinCommands as Ut, clearProviderUsageCache as V, useCompletion as Vn, pruneTodosByRun as Vr, resolveCwdPath as Vt, providerUsageSupported as W, importFromClaudeCode as Wn, setTodosForRun as Wr, createMainSession as Wt, redirectUriFromAuthUrl as X, defaultMcpsConfigPaths as Xn, IDENTITY_PREFIX as Xr, parsePluginScanPathEnv as Xt, normalizeRedirectPaste as Y, dedupMcpServersByName as Yn, DOING_TASKS_DOCTRINE as Yr, discoverProjectPlugins as Yt, oauthUsesManualCodePaste as Z, discoverProjectMcps as Zn, INTERACTION_GUIDANCE as Zr, attachMcpWarnLog as Zt, buildSpawnEndEvent as _, marginTopFor as _i, BUILTIN_THEMES as _n, summarizeArtifactCounts as _r, useMcpAuthState as _t, renderActiveTodoAnchor as a, envSection as ai, shortChord as an, findInstalledCompanion as ar, subscribeMcpToolsCache as at, defaultSkillScanPaths as b, serverToolResultSummary as bi, resolveTheme as bn, BUILD_AGENT as br, ASK_USER_TOOL as bt, useSelectStyle as c, DEFAULT_SESSION_TITLE as ci, DEFAULT_SETTINGS as cn, compareSemver as cr, useMcpToolToggleSet as ct, useTheme as d, deriveSessionTitle as di, SETTINGS_INPUTS as dn, parseSemver as dr, parentServerName as dt, PLAN_MODE_DOCTRINE_NO_PROMPTS as ei, EMPTY_HINTS as en, bootProfileEnabled as er, clearMcpToolsCache as et, discoverSystemMd as f, eventsFromTurns as fi, SETTINGS_TOGGLES as fn, performInPlaceSelfUpdate as fr, createFileMcpCredentialStore as ft, useStreamBuffer as g, loadState as gi, useSettings as gn, groupArtifacts as gr, useMcpAuthDispatch as gt, userSystemMdPath as h, listSessionMeta as hi, enforceSettingsInvariants as hn, chatAutoCompactBehavior as hr, McpAuthProvider as ht, createActiveTodoAnchorHooks as i, buildPlanSystem as ii, buildHints as in, runUpdateCommand as ir, saveMcpToolsCache as it, IMPLICITLY_SAFE_TOOLS as j, DiscoveryProvider as jn, TODOS_METADATA_KEY as jr, pendingInteractionsFromTurns as jt, useSafeModeActions as k, quoteForShell as kn, DEFAULT_MAX_TODO_ITEMS as kr, isModelInteraction as kt, useSurfaces as l, compactSummaryEvent as li, SETTINGS_CATEGORIES as ln, detectLibc as lr, buildVisibleMcpRows as lt, userScopeOverridesLoad as m, lastContextSizeFromTurns as mi, clampFps as mn, resolvePlatformPackage as mr, patchMcpCredential as mt, createMemoryApprovalsStore as n, TOKEN_DISCIPLINE_DOCTRINE as ni, hintsLength as nn, buildUpdateHint as nr, mcpToolsCachePath as nt, ThemeProvider as o, chatReferenceTokensForPrompt as oi, listProjectFiles as on, checkForUpdate as or, buildToolToggle as ot, renderSystemMdSeed as p, getSessionMeta as pi, SettingsProvider as pn, performSelfUpdate as pr, mcpCredentialsPath as pt, formatPathForCwd as q, upsertMcpServer as qn, ACTIONS_WITH_CARE_DOCTRINE as qr, runEndNotice as qt, computeTurnAnchors as r, buildBuildSystem as ri, truncateTrailing as rn, useUpdateCheck as rr, refreshMcpToolsCatalog as rt, useColors as s, createChatTurnsReadTool as si, useEnabledToggleSet as sn, checkTarballAvailable as sr, useMcpToolToggleMap as st, createApprovalHub as t, SUBAGENT_GUIDANCE as ti, clipHintsToWidth as tn, bootTick as tr, loadMcpToolsCache as tt, useSyntaxStyles as u, createStateStore as ui, SETTINGS_CHOICES as un, detectPackageManager as ur, indexOfServerRow as ut, buildSpawnStartEvent as v, noticeTurnContent as vi, DEFAULT_THEME as vn, discoverAgentsMd as vr, getMcpAuthStatus as vt, writeSessionExport as w, toolCallPreview as wi, CATPPUCCIN_FRAPPE as wn, DEFAULT_PERSIST_EXCLUDE_TOOLS as wr, PRESENT_PLAN_TOOL as wt, discoverProjectSkills as x, stripSpawnTokensLine as xi, VAPORWAVE_THEME as xn, BUILTIN_AGENTS as xr, AUTOMATIC_INTERACTION_INSTRUCTION as xt, buildSkillsConfig as y, saveState as yi, resolveChipColor as yn, renderAgentsMdBlock as yr, reduceMcpAuth as yt, writeProjects as z, createArtifactsCompletionProvider as zn, isTodoTool as zr, extractEditPayloadForGate as zt };
16471
16447
 
16472
- //# sourceMappingURL=approvals-B9aIQJRQ.js.map
16448
+ //# sourceMappingURL=approvals-D3P3Wz58.js.map