@namzu/cli 16.1.0 → 17.0.1

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 (75) hide show
  1. package/README.md +27 -5
  2. package/dist/commands/drain.d.ts.map +1 -1
  3. package/dist/commands/drain.js +23 -1
  4. package/dist/commands/drain.js.map +1 -1
  5. package/dist/commands/run-stream.d.ts +3 -2
  6. package/dist/commands/run-stream.d.ts.map +1 -1
  7. package/dist/commands/run-stream.js +32 -37
  8. package/dist/commands/run-stream.js.map +1 -1
  9. package/dist/commands/run.d.ts.map +1 -1
  10. package/dist/commands/run.js +26 -24
  11. package/dist/commands/run.js.map +1 -1
  12. package/dist/config/load.d.ts +1 -1
  13. package/dist/config/load.d.ts.map +1 -1
  14. package/dist/config/load.js +3 -4
  15. package/dist/config/load.js.map +1 -1
  16. package/dist/doctor/checks/chain.d.ts +1 -1
  17. package/dist/doctor/checks/chain.d.ts.map +1 -1
  18. package/dist/doctor/checks/chain.js +2 -4
  19. package/dist/doctor/checks/chain.js.map +1 -1
  20. package/dist/integrations/files/attachment-store.d.ts.map +1 -1
  21. package/dist/integrations/files/attachment-store.js +3 -3
  22. package/dist/integrations/files/attachment-store.js.map +1 -1
  23. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  24. package/dist/integrations/plugins/runtime.js +4 -2
  25. package/dist/integrations/plugins/runtime.js.map +1 -1
  26. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  27. package/dist/integrations/providers/credential-store.js +13 -12
  28. package/dist/integrations/providers/credential-store.js.map +1 -1
  29. package/dist/integrations/providers/preferences.d.ts.map +1 -1
  30. package/dist/integrations/providers/preferences.js +5 -5
  31. package/dist/integrations/providers/preferences.js.map +1 -1
  32. package/dist/integrations/sessions/store.d.ts +31 -9
  33. package/dist/integrations/sessions/store.d.ts.map +1 -1
  34. package/dist/integrations/sessions/store.js +291 -69
  35. package/dist/integrations/sessions/store.js.map +1 -1
  36. package/dist/integrations/state/home.d.ts +25 -0
  37. package/dist/integrations/state/home.d.ts.map +1 -0
  38. package/dist/integrations/state/home.js +53 -0
  39. package/dist/integrations/state/home.js.map +1 -0
  40. package/dist/integrations/state/report.d.ts +8 -4
  41. package/dist/integrations/state/report.d.ts.map +1 -1
  42. package/dist/integrations/state/report.js +54 -7
  43. package/dist/integrations/state/report.js.map +1 -1
  44. package/dist/integrations/subagents/runtime.d.ts +3 -1
  45. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  46. package/dist/integrations/subagents/runtime.js +1 -0
  47. package/dist/integrations/subagents/runtime.js.map +1 -1
  48. package/dist/integrations/trust/store.d.ts.map +1 -1
  49. package/dist/integrations/trust/store.js +6 -6
  50. package/dist/integrations/trust/store.js.map +1 -1
  51. package/dist/memory/store.d.ts.map +1 -1
  52. package/dist/memory/store.js +7 -7
  53. package/dist/memory/store.js.map +1 -1
  54. package/dist/skills/store.d.ts +2 -1
  55. package/dist/skills/store.d.ts.map +1 -1
  56. package/dist/skills/store.js +11 -4
  57. package/dist/skills/store.js.map +1 -1
  58. package/dist/tui/App.d.ts.map +1 -1
  59. package/dist/tui/App.js +69 -51
  60. package/dist/tui/App.js.map +1 -1
  61. package/dist/tui/LiveActivity.js +1 -1
  62. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  63. package/dist/tui/PermissionOverlay.js +4 -2
  64. package/dist/tui/PermissionOverlay.js.map +1 -1
  65. package/dist/tui/agent.d.ts +10 -2
  66. package/dist/tui/agent.d.ts.map +1 -1
  67. package/dist/tui/agent.js +76 -26
  68. package/dist/tui/agent.js.map +1 -1
  69. package/dist/tui/permission-review.d.ts.map +1 -1
  70. package/dist/tui/permission-review.js +47 -10
  71. package/dist/tui/permission-review.js.map +1 -1
  72. package/dist/user-commands/store.d.ts.map +1 -1
  73. package/dist/user-commands/store.js +4 -3
  74. package/dist/user-commands/store.js.map +1 -1
  75. package/package.json +3 -3
@@ -28,7 +28,7 @@ export function LiveActivity({ activeTools, working, agentCount = 0, interruptib
28
28
  const visibleTools = activeTools.slice(0, MAX_VISIBLE_TOOLS);
29
29
  const hiddenTools = activeTools.length - visibleTools.length;
30
30
  return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: theme.accent.assistant, children: "\u2022 " }), _jsx(ShimmerText, { text: "Working", tick: tick, animate: animate }), _jsxs(Text, { color: theme.text.muted, children: [' (', elapsed, agentCount > 0
31
- ? ` · ${agentCount} agent${agentCount === 1 ? '' : 's'} · /agent to view`
31
+ ? ` · ${agentCount} agent${agentCount === 1 ? '' : 's'} · ctrl+t to view`
32
32
  : '', interruptible ? ' · esc to interrupt' : '', ")"] })] }), visibleTools.map((t, index) => {
33
33
  const percent = t.fraction === undefined ? '' : `${Math.round(t.fraction * 100)}% · `;
34
34
  return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.tool, children: index === visibleTools.length - 1 && hiddenTools === 0 ? '└' : '├' }) }), _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [_jsxs(Text, { color: theme.accent.tool, children: [spinner, " "] }), terminalDisplayText(t.label), _jsxs(Text, { color: theme.text.muted, children: [" \u00B7 ", formatElapsed(now - t.startedAt)] })] })] }), t.progress !== undefined ? (_jsx(Box, { flexDirection: "row", paddingLeft: 2, children: _jsxs(Text, { color: theme.text.muted, wrap: "truncate-end", children: [percent, terminalDisplayText(t.progress)] }) })) : null] }, t.id));
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverlay.d.ts","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"AAAA,4EAA4E;AAI5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAEN,KAAK,uBAAuB,EAE5B,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAA;IACzC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAgB,EAChB,OAAO,GACP,EAAE,sBAAsB,2CAwExB"}
1
+ {"version":3,"file":"PermissionOverlay.d.ts","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"AAAA,4EAA4E;AAI5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAEN,KAAK,uBAAuB,EAE5B,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACjD,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAA;IACzC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAgB,EAChB,OAAO,GACP,EAAE,sBAAsB,2CA0ExB"}
@@ -1,4 +1,4 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /** Readable, source-preserving tool consent surface. App owns every key. */
3
3
  import { Box, Text } from 'ink';
4
4
  import { PERMISSION_REVIEW_PAGE_ROWS, permissionReviewRows, } from './permission-review.js';
@@ -12,6 +12,8 @@ export function PermissionOverlay({ toolCalls, review, summary, detailsOpen, rev
12
12
  const first = rows.length === 0 ? 0 : offset + 1;
13
13
  const last = Math.min(rows.length, offset + PERMISSION_REVIEW_PAGE_ROWS);
14
14
  const noun = toolCalls.length === 1 ? 'this tool' : `these ${toolCalls.length} tools`;
15
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderTop: true, borderBottom: true, borderLeft: false, borderRight: false, borderColor: theme.status.warn, paddingX: 1, marginTop: 1, children: [_jsxs(Text, { color: theme.status.warn, bold: true, children: ["namzu wants to run ", noun] }), _jsxs(Text, { color: theme.text.muted, children: [detailsOpen ? 'Exact prepared input' : 'Prepared operation', " \u00B7 rows ", first, "-", last, "/", rows.length] }), _jsx(Box, { flexDirection: "column", paddingTop: 1, height: PERMISSION_REVIEW_PAGE_ROWS + 1, children: visibleRows.map((row) => (_jsxs(Box, { width: "100%", children: [_jsx(Text, { color: theme.text.muted, children: row.continuation ? '↳ ' : '› ' }), _jsx(Text, { color: theme.text.secondary, children: row.text })] }, row.index))) }), rows.length > PERMISSION_REVIEW_PAGE_ROWS ? (_jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 row \u00B7 PgUp/PgDn page \u00B7 Home/End boundary" })) : null, _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.ok, bold: true, children: "y" }), ' ', "run once \u00B7", ' ', _jsx(Text, { color: theme.accent.user, bold: true, children: "a" }), ' ', "approve all for this session \u00B7", ' ', _jsx(Text, { color: theme.text.primary, bold: true, children: "d" }), ' ', detailsOpen ? 'readable view' : 'exact input'] }), _jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.error, bold: true, children: "n / esc" }), ' ', "decline, and the agent tries something else \u00B7", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "ctrl+c" }), ' ', "decline and stop the turn"] })] })] }));
15
+ const agentBatch = toolCalls.length > 0 && toolCalls.every((call) => call.name === 'Agent');
16
+ const agentNoun = `${toolCalls.length} agent${toolCalls.length === 1 ? '' : 's'}`;
17
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderTop: true, borderBottom: true, borderLeft: false, borderRight: false, borderColor: theme.status.warn, paddingX: 1, marginTop: 1, children: [_jsx(Text, { color: theme.status.warn, bold: true, children: agentBatch ? `namzu wants to start ${agentNoun}` : `namzu wants to run ${noun}` }), _jsxs(Text, { color: theme.text.muted, children: [detailsOpen ? 'Exact prepared input' : agentBatch ? 'Delegated work' : 'Prepared operation', " \u00B7 rows ", first, "-", last, "/", rows.length] }), _jsx(Box, { flexDirection: "column", paddingTop: 1, height: PERMISSION_REVIEW_PAGE_ROWS + 1, children: visibleRows.map((row) => (_jsxs(Box, { width: "100%", children: [_jsx(Text, { color: theme.text.muted, children: row.continuation ? '↳ ' : '› ' }), _jsx(Text, { color: theme.text.secondary, children: row.text })] }, row.index))) }), rows.length > PERMISSION_REVIEW_PAGE_ROWS ? (_jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 row \u00B7 PgUp/PgDn page \u00B7 Home/End boundary" })) : null, _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.ok, bold: true, children: "y" }), ' ', agentBatch ? `start ${agentNoun}` : 'run once', " \u00B7", ' ', _jsx(Text, { color: theme.accent.user, bold: true, children: "a" }), ' ', agentBatch ? 'allow all tools this session' : 'approve all for this session', " \u00B7", ' ', _jsx(Text, { color: theme.text.primary, bold: true, children: "d" }), ' ', detailsOpen ? 'readable view' : 'exact input'] }), _jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.error, bold: true, children: "n / esc" }), ' ', agentBatch ? "don't start; revise the plan" : 'decline, and the agent tries something else', " \u00B7", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "ctrl+c" }), ' ', "decline and stop the turn"] })] })] }));
16
18
  }
17
19
  //# sourceMappingURL=PermissionOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverlay.js","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":";AAAA,4EAA4E;AAE5E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,EACN,2BAA2B,EAE3B,oBAAoB,GACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAgBlC,MAAM,UAAU,iBAAiB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,GAAG,CAAC,EAChB,OAAO,GACiB;IACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;IAClD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,2BAA2B,CAAC,CAAA;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,QAAQ,CAAA;IAErF,OAAO,CACN,MAAC,GAAG,IACH,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,QAAQ,EACpB,SAAS,QACT,YAAY,QACZ,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAC9B,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,aAEZ,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,0CACf,IAAI,IAClB,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC3B,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,mBAAU,KAAK,OAAG,IAAI,OACjF,IAAI,CAAC,MAAM,IACN,EACP,KAAC,GAAG,IACH,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,2BAA2B,GAAG,CAAC,YAEtC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACzB,MAAC,GAAG,IAAiB,KAAK,EAAC,MAAM,aAChC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,YAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAQ,EACtE,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,YAAG,GAAG,CAAC,IAAI,GAAQ,KAF3C,GAAG,CAAC,KAAK,CAGb,CACN,CAAC,GACG,EACL,IAAI,CAAC,MAAM,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAC5C,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,gFAAoD,CACjF,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACxC,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,wBAE3B,EAAC,GAAG,qBACA,GAAG,EACd,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,wBAE7B,EAAC,GAAG,yCACoB,GAAG,EAClC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,wBAE9B,EAAC,GAAG,EACV,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,IACxC,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,8BAE9B,EAAC,GAAG,wDACmC,GAAG,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,6BAE9B,EAAC,GAAG,iCAEL,IACF,IACD,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"PermissionOverlay.js","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"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"}
@@ -65,6 +65,8 @@ export type AgentEvent = {
65
65
  readonly toolName: string;
66
66
  readonly isError: boolean;
67
67
  readonly summary: string;
68
+ /** Kernel-measured execution time; independent of host event buffering. */
69
+ readonly durationMs?: number;
68
70
  /** A successful result intentionally adds no second transcript row. */
69
71
  readonly hidden?: boolean;
70
72
  /** Output lines shown (collapsible) under the result. */
@@ -546,8 +548,8 @@ export interface AgentSessionOptions {
546
548
  readonly scope?: RunScope;
547
549
  /**
548
550
  * The directory the agent works in: what every filesystem tool resolves a
549
- * relative path against, where sub-agents run, and where the task and
550
- * memory stores put `.namzu`. Defaults to the process's own directory.
551
+ * relative path against and where sub-agents run. Generated task and memory
552
+ * state follows {@link stateRoot}. Defaults to the process's own directory.
551
553
  *
552
554
  * Taken as an argument rather than read from `process.cwd()` at each of
553
555
  * those four points, which is what let `--cwd` reach the session store and
@@ -556,6 +558,12 @@ export interface AgentSessionOptions {
556
558
  * having looked in the wrong place.
557
559
  */
558
560
  readonly cwd?: string;
561
+ /**
562
+ * Injected SDK hierarchy root for this host session. When present, runs use
563
+ * this exact path builder and generated memory/tasks live inside the scoped
564
+ * Project. Absent preserves the embedded API's historical cwd-local layout.
565
+ */
566
+ readonly stateRoot?: string;
559
567
  /**
560
568
  * Operator-authored tool rules, already compiled to the kernel's vocabulary.
561
569
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tui/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tui/agent.ts"],"names":[],"mappings":"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"}
package/dist/tui/agent.js CHANGED
@@ -20,7 +20,7 @@
20
20
  * `emptySession()` whose `send()` yields a single error event so the UI
21
21
  * renders an actionable hint rather than crashing.
22
22
  */
23
- import { BOOT_EVENT_NAMES, DiskMemoryStore, DiskTaskStore, EVENT_NAME_ATTRIBUTE, ProviderRegistry, SESSION_GOAL_TOOL_NAMES, SearchToolsTool, ToolRegistry, asProjectId, asRunId, asSessionId, asTenantId, asTopicId, buildMemoryTools, buildSessionGoalTools, compactNow, createComputerUseTool, createMemoryPromoter, createToolPresenter, generateRunId, getBuiltinTools, isTrustedReadOnly, query, resumeRun, withProviderFallback, } from '@namzu/sdk';
23
+ import { BOOT_EVENT_NAMES, DefaultPathBuilder, DiskMemoryStore, DiskTaskStore, EVENT_NAME_ATTRIBUTE, ProviderRegistry, SESSION_GOAL_TOOL_NAMES, SearchToolsTool, ToolRegistry, asProjectId, asRunId, asSessionId, asTenantId, asTopicId, buildMemoryTools, buildSessionGoalTools, compactNow, createComputerUseTool, createMemoryPromoter, createToolPresenter, generateRunId, getBuiltinTools, isTrustedReadOnly, query, resumeRun, withProviderFallback, } from '@namzu/sdk';
24
24
  import { SubprocessComputerUseHost } from '@namzu/computer-use';
25
25
  import { realpath, stat } from 'node:fs/promises';
26
26
  import { join, parse, resolve } from 'node:path';
@@ -315,22 +315,57 @@ const NAMZU_IDENTITY = [
315
315
  'CRITICAL — never fabricate. Only claim to have done something if you actually did it through a tool call in THIS turn:',
316
316
  '- Never say you ran a command, wrote/edited a file, delegated to a sub-agent, or researched something unless the corresponding tool call actually ran and returned.',
317
317
  '- Never invent file paths, command output, URLs, research findings, or results. If you announce an action ("running…", "delegating…"), you MUST immediately make the tool call — do not narrate an action and then skip it.',
318
+ '- Bash calls are serialized because they may mutate the same workspace. Never claim two Bash calls ran in parallel unless one command itself produced timestamped proof of overlap. Delegate genuinely independent work through the Agent tool instead.',
318
319
  '- If a capability or tool is unavailable (e.g. no web access, a tool is missing, a sub-agent failed), say so plainly and stop — do not improvise a fake result.',
319
320
  '- When you delegate with the `Agent` tool, report only what the sub-agent actually returned in its tool result; if it wrote files, verify with a tool before claiming paths.',
320
321
  '- A reply from a tool that delegates to ANOTHER agent (a connector that runs another agent, an A2A `tasks/send`, a remote peer) is that agent\'s unverified CLAIM, not fact — another model can hallucinate. If it says it ran a command, wrote a file, or "here is the output", treat that as narrative and confirm it yourself with a deterministic tool (a real shell like `bash.run`, a file read) before reporting it as done. Distinguish such conversational agent calls from deterministic tools, and never present another agent\'s prose as your own verified result.',
321
322
  ].join('\n');
322
- function buildToolRegistry(cwd) {
323
+ function foregroundOnlyBash(tool) {
324
+ const fullSchema = tool.inputSchema;
325
+ return {
326
+ ...tool,
327
+ description: 'Executes one bash command in the foreground and returns stdout/stderr. Calls are serialized because shell commands may mutate the same workspace. Use the Agent tool for genuinely independent parallel work.',
328
+ inputSchema: fullSchema.omit({ run_in_background: true }),
329
+ modelInputSchema: {
330
+ type: 'object',
331
+ properties: {
332
+ command: {
333
+ type: 'string',
334
+ minLength: 1,
335
+ description: 'The non-empty bash command to execute in the foreground.',
336
+ },
337
+ timeout: {
338
+ type: 'number',
339
+ exclusiveMinimum: 0,
340
+ description: 'Command timeout in milliseconds. Use a larger foreground timeout for long builds; background jobs are unavailable inside this sandbox.',
341
+ },
342
+ },
343
+ required: ['command'],
344
+ additionalProperties: false,
345
+ },
346
+ };
347
+ }
348
+ function builtinTools(backgroundJobs) {
349
+ return getBuiltinTools().flatMap((tool) => {
350
+ if (EXCLUDED_BUILTINS.has(tool.name))
351
+ return [];
352
+ if (backgroundJobs)
353
+ return [tool];
354
+ if (tool.name === 'job')
355
+ return [];
356
+ return [tool.name === 'bash' ? foregroundOnlyBash(tool) : tool];
357
+ });
358
+ }
359
+ function buildToolRegistry(cwd, projectStateRoot = join(cwd, '.namzu'), backgroundJobs = true) {
323
360
  const registry = new ToolRegistry();
324
- registry.register(getBuiltinTools().filter((t) => !EXCLUDED_BUILTINS.has(t.name)));
361
+ registry.register(builtinTools(backgroundJobs));
325
362
  // SDK memory: the agent gets search_memory / read_memory / save_memory over
326
- // a structured store at `<cwd>/.namzu/memory` — the WORKING DIRECTORY, not
327
- // the home directory. Two comments here used to say `~/.namzu`, which made
328
- // `save_memory` look like it touched only namzu's own state and was part of
329
- // why it sat on the no-prompt list; it writes into the user's project.
363
+ // a structured store in this Project's generated-state directory. CLI
364
+ // surfaces inject the central application-home hierarchy; embedded callers
365
+ // that omit it retain the historical `<cwd>/.namzu` layout.
330
366
  // Separate from the user-curated MEMORY.md that is injected into the prompt.
331
- const stateRoot = join(cwd, '.namzu');
332
- ensurePrivateStateDirectory(stateRoot, 'memory');
333
- const memoryStore = new DiskMemoryStore({ baseDir: stateRoot });
367
+ ensurePrivateStateDirectory(projectStateRoot, 'memory');
368
+ const memoryStore = new DiskMemoryStore({ baseDir: projectStateRoot });
334
369
  // Search through the store's async boundary. Its concrete index is lazy:
335
370
  // handing `getIndex()` to the synchronous overload before the first store
336
371
  // read makes a new process report every persisted memory as absent.
@@ -372,13 +407,20 @@ export async function createAgentSession(prefs, detected, options = {}) {
372
407
  cwd === parse(cwd).root) {
373
408
  return emptySession(`Working-directory sandboxing refuses filesystem root ${cwd}; choose a project directory so confinement has a boundary, or explicitly select an ephemeral workspace.`, 'invocation');
374
409
  }
410
+ const hierarchyRoot = resolve(options.stateRoot ?? join(cwd, '.namzu'));
411
+ const pathBuilder = new DefaultPathBuilder(hierarchyRoot);
412
+ let projectStateRoot = hierarchyRoot;
375
413
  try {
414
+ if (options.stateRoot) {
415
+ const projectsRoot = ensurePrivateStateDirectory(hierarchyRoot, 'projects');
416
+ projectStateRoot = ensurePrivateStateDirectory(projectsRoot, scope.projectId);
417
+ }
376
418
  // Refuse an aliased or otherwise unsafe generated-state root before any
377
419
  // provider, sandbox or plugin runtime is constructed. Project-authored
378
420
  // `.namzu` content may coexist here, but generated memory must never be
379
421
  // redirected outside the trusted working directory through an ancestor
380
422
  // symlink.
381
- ensurePrivateStateDirectory(join(cwd, '.namzu'), 'memory');
423
+ ensurePrivateStateDirectory(projectStateRoot, 'memory');
382
424
  }
383
425
  catch (error) {
384
426
  return emptySession(`Project state is unavailable: ${describeError(error)}`, 'environment');
@@ -668,7 +710,8 @@ export async function createAgentSession(prefs, detected, options = {}) {
668
710
  [EVENT_NAME_ATTRIBUTE]: BOOT_EVENT_NAMES.SANDBOX_RESOLVED,
669
711
  'namzu.sandbox.unconfined': sandbox.unconfined,
670
712
  });
671
- const { registry, memoryStore } = buildToolRegistry(cwd);
713
+ const backgroundJobs = sandbox.provider === undefined;
714
+ const { registry, memoryStore } = buildToolRegistry(cwd, projectStateRoot, backgroundJobs);
672
715
  // Package presence is not tool reachability. The CLI used to probe and
673
716
  // report @namzu/computer-use without ever constructing its host or mounting
674
717
  // SDK's computer_use definition, so even an installed, healthy package was
@@ -759,6 +802,7 @@ export async function createAgentSession(prefs, detected, options = {}) {
759
802
  const sub = await createSubagentRuntime({
760
803
  cwd,
761
804
  model,
805
+ pathBuilder: new DefaultPathBuilder(join(projectStateRoot, 'subagents')),
762
806
  sandboxWorkspace,
763
807
  resolveResumeHandler: (runId) => delegatedResumeHandlers.get(runId),
764
808
  ...(sandbox.provider ? { sandboxProvider: sandbox.provider } : {}),
@@ -799,7 +843,7 @@ export async function createAgentSession(prefs, detected, options = {}) {
799
843
  // delegation, and a parent that delegated six times would leave
800
844
  // seven accounts of one piece of work for the next run to read.
801
845
  // The parent's settle is the one that speaks for the whole task.
802
- return buildToolRegistry(cwd).registry;
846
+ return buildToolRegistry(cwd, projectStateRoot, backgroundJobs).registry;
803
847
  },
804
848
  authorizationGate: gateFor(options.rules),
805
849
  });
@@ -831,10 +875,9 @@ export async function createAgentSession(prefs, detected, options = {}) {
831
875
  // It is also why `toolNames` below reads the registry rather than a list
832
876
  // captured on this line. The count at connect time is unchanged; what
833
877
  // changes is that asking again later gets a later answer.
834
- const stateRoot = join(cwd, '.namzu');
835
- ensurePrivateStateDirectory(stateRoot, 'tenants');
878
+ ensurePrivateStateDirectory(projectStateRoot, 'tenants');
836
879
  const taskStore = new DiskTaskStore({
837
- baseDir: stateRoot,
880
+ baseDir: projectStateRoot,
838
881
  defaultRunId: asRunId('run_namzu-cli'),
839
882
  tenantId: scope.tenantId,
840
883
  });
@@ -1065,6 +1108,7 @@ export async function createAgentSession(prefs, detected, options = {}) {
1065
1108
  skillRegistry: pluginRuntime?.skills,
1066
1109
  skills: pluginSkills,
1067
1110
  scope,
1111
+ pathBuilder,
1068
1112
  workingDirectory: cwd,
1069
1113
  sandboxWorkspace,
1070
1114
  rules: options.rules,
@@ -1133,6 +1177,7 @@ export async function createAgentSession(prefs, detected, options = {}) {
1133
1177
  authorizationGate: gateFor(options.rules),
1134
1178
  compactionConfig: COMPACTION_CONFIG,
1135
1179
  projectInstructionContext: projectInstructions.createRunContext(),
1180
+ pathBuilder,
1136
1181
  ...(sandbox.provider ? { sandboxProvider: sandbox.provider } : {}),
1137
1182
  ...(options.sandbox?.teardownTimeoutMs !== undefined
1138
1183
  ? { sandboxTeardownTimeoutMs: options.sandbox.teardownTimeoutMs }
@@ -1516,9 +1561,8 @@ function gateFor(rules) {
1516
1561
  const COMPACTION_CONFIG = {
1517
1562
  strategy: 'structured',
1518
1563
  // On, and this is the CLI making a choice rather than taking a default.
1519
- // A local session's transcript is the only record of what was compacted
1520
- // away, and `<cwd>/.namzu` is the operator's own disk — the size trade
1521
- // this costs is theirs to see and theirs to turn off.
1564
+ // A session's transcript is the only record of what was compacted away;
1565
+ // the size trade this costs is the operator's to see and turn off.
1522
1566
  recordShedHistory: true,
1523
1567
  triggerThreshold: 0.7,
1524
1568
  resetThreshold: 0.4,
@@ -1543,7 +1587,7 @@ const COMPACTION_CONFIG = {
1543
1587
  maxCharsPerRequirement: 300,
1544
1588
  maxCharsPerTask: 400,
1545
1589
  };
1546
- async function* runTurn({ provider, fallbackProviders, model, tools, pluginManager, skillRegistry, skills, scope, workingDirectory, sandboxWorkspace, rules, reviewAnswer, maxAnswerReviews, promoteMemory, resumeHandler, taskStore, systemPrompt, messages, projectInstructionContext, opts, taskGateway, sandboxProvider, sandboxTeardownTimeoutMs, onRunEvent, }) {
1590
+ async function* runTurn({ provider, fallbackProviders, model, tools, pluginManager, skillRegistry, skills, scope, pathBuilder, workingDirectory, sandboxWorkspace, rules, reviewAnswer, maxAnswerReviews, promoteMemory, resumeHandler, taskStore, systemPrompt, messages, projectInstructionContext, opts, taskGateway, sandboxProvider, sandboxTeardownTimeoutMs, onRunEvent, }) {
1547
1591
  const signal = opts?.signal;
1548
1592
  // One presenter for the whole stream, built from the registry this scope
1549
1593
  // already holds. Its absence HERE is what forced presentation to be name
@@ -1553,6 +1597,7 @@ async function* runTurn({ provider, fallbackProviders, model, tools, pluginManag
1553
1597
  try {
1554
1598
  const events = query({
1555
1599
  provider,
1600
+ pathBuilder,
1556
1601
  ...(opts?.runId ? { runId: opts.runId } : {}),
1557
1602
  // Omitted rather than empty when there is no tail. `query` treats the
1558
1603
  // two the same, but an absent option reads as "this run has no chain"
@@ -1577,7 +1622,8 @@ async function* runTurn({ provider, fallbackProviders, model, tools, pluginManag
1577
1622
  compactionConfig: COMPACTION_CONFIG,
1578
1623
  // The CLI owns its process end to end, so it can safely hand the
1579
1624
  // termination path to the kernel: a Ctrl-C mid-run now leaves a
1580
- // dump under .namzu/emergency/ instead of losing the turn.
1625
+ // dump under the injected hierarchy's emergency partition instead of
1626
+ // losing the turn.
1581
1627
  emergencySave: true,
1582
1628
  runConfig: {
1583
1629
  model,
@@ -1834,12 +1880,16 @@ export function toAgentEvent(event, presenter) {
1834
1880
  success: !event.isError,
1835
1881
  output: event.result,
1836
1882
  });
1883
+ const summary = firstLine(event.result);
1884
+ const detail = viewToLines(view);
1885
+ const withoutRepeatedSummary = view.kind === 'terminal' && detail?.[0] === summary ? detail.slice(1) : detail;
1837
1886
  return {
1838
1887
  kind: 'tool-end',
1839
1888
  toolUseId: event.toolUseId,
1840
1889
  toolName: event.toolName,
1841
1890
  isError: event.isError,
1842
- summary: firstLine(event.result),
1891
+ summary,
1892
+ ...(event.durationMs !== undefined ? { durationMs: event.durationMs } : {}),
1843
1893
  ...(view.kind === 'generic' && view.visibility === 'hidden' ? { hidden: true } : {}),
1844
1894
  // `tool_completed` carries no input, so the presenter gets an
1845
1895
  // empty one. A tool whose result rendering depends on its
@@ -1847,7 +1897,9 @@ export function toAgentEvent(event, presenter) {
1847
1897
  // through; none does yet, and inventing the plumbing for a
1848
1898
  // caller that does not exist is the declaration this repo
1849
1899
  // keeps deleting.
1850
- detail: viewToLines(view),
1900
+ ...(withoutRepeatedSummary && withoutRepeatedSummary.length > 0
1901
+ ? { detail: withoutRepeatedSummary }
1902
+ : {}),
1851
1903
  };
1852
1904
  }
1853
1905
  case 'token_usage_updated':
@@ -1958,9 +2010,7 @@ export function toAgentEvent(event, presenter) {
1958
2010
  // so this one says what IT cost rather than claiming the total.
1959
2011
  return {
1960
2012
  kind: 'context',
1961
- text: `cleared ${event.clearedCount} oversized tool result${event.clearedCount === 1 ? '' : 's'}` +
1962
- ` (~${event.reclaimedTokens.toLocaleString()} tokens)` +
1963
- (event.reliefWasEnough ? '' : ' — not enough, compacting'),
2013
+ text: `cleared ${event.clearedCount} oversized tool result${event.clearedCount === 1 ? '' : 's'} (~${event.reclaimedTokens.toLocaleString()} tokens)${event.reliefWasEnough ? '' : ' — not enough, compacting'}`,
1964
2014
  shed: true,
1965
2015
  };
1966
2016
  case 'compaction_failed':