agent-nuvira 3.5.6 → 3.5.7

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 (110) hide show
  1. package/.agents/skills/index.json +16 -0
  2. package/.agents/skills/motion/SKILL.md +27 -0
  3. package/README.md +56 -1
  4. package/dist/cli/chat.d.ts +76 -17
  5. package/dist/cli/chat.d.ts.map +1 -1
  6. package/dist/cli/chat.js +258 -118
  7. package/dist/cli/chat.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +31 -2
  9. package/dist/cli/doctor.d.ts.map +1 -1
  10. package/dist/cli/doctor.js +143 -7
  11. package/dist/cli/doctor.js.map +1 -1
  12. package/dist/cli/loop-executor.d.ts.map +1 -1
  13. package/dist/cli/loop-executor.js +4 -1
  14. package/dist/cli/loop-executor.js.map +1 -1
  15. package/dist/cli/parity.d.ts +12 -0
  16. package/dist/cli/parity.d.ts.map +1 -1
  17. package/dist/cli/parity.js +46 -1
  18. package/dist/cli/parity.js.map +1 -1
  19. package/dist/cli/tool-install-prompt.d.ts +2 -7
  20. package/dist/cli/tool-install-prompt.d.ts.map +1 -1
  21. package/dist/cli/tool-install-prompt.js +11 -28
  22. package/dist/cli/tool-install-prompt.js.map +1 -1
  23. package/dist/config/scratch-workspace.d.ts +134 -0
  24. package/dist/config/scratch-workspace.d.ts.map +1 -0
  25. package/dist/config/scratch-workspace.js +213 -0
  26. package/dist/config/scratch-workspace.js.map +1 -0
  27. package/dist/gateway/adapters.d.ts +24 -0
  28. package/dist/gateway/adapters.d.ts.map +1 -1
  29. package/dist/gateway/adapters.js +12 -0
  30. package/dist/gateway/adapters.js.map +1 -1
  31. package/dist/gateway/oversized-reply.d.ts +39 -0
  32. package/dist/gateway/oversized-reply.d.ts.map +1 -0
  33. package/dist/gateway/oversized-reply.js +54 -0
  34. package/dist/gateway/oversized-reply.js.map +1 -0
  35. package/dist/gateway/registry.d.ts +0 -10
  36. package/dist/gateway/registry.d.ts.map +1 -1
  37. package/dist/gateway/registry.js +148 -4
  38. package/dist/gateway/registry.js.map +1 -1
  39. package/dist/learning/quota-ledger.d.ts +24 -0
  40. package/dist/learning/quota-ledger.d.ts.map +1 -1
  41. package/dist/learning/quota-ledger.js +40 -0
  42. package/dist/learning/quota-ledger.js.map +1 -1
  43. package/dist/learning/runtime-dependencies.d.ts +183 -0
  44. package/dist/learning/runtime-dependencies.d.ts.map +1 -0
  45. package/dist/learning/runtime-dependencies.js +349 -0
  46. package/dist/learning/runtime-dependencies.js.map +1 -0
  47. package/dist/learning/skill-store.d.ts.map +1 -1
  48. package/dist/learning/skill-store.js +6 -5
  49. package/dist/learning/skill-store.js.map +1 -1
  50. package/dist/skills/bundled-skills-phase3.d.ts +14 -0
  51. package/dist/skills/bundled-skills-phase3.d.ts.map +1 -1
  52. package/dist/skills/bundled-skills-phase3.js +50 -0
  53. package/dist/skills/bundled-skills-phase3.js.map +1 -1
  54. package/dist/tools/modality/motion-presets.d.ts +62 -0
  55. package/dist/tools/modality/motion-presets.d.ts.map +1 -0
  56. package/dist/tools/modality/motion-presets.js +399 -0
  57. package/dist/tools/modality/motion-presets.js.map +1 -0
  58. package/dist/tools/modality/motion-tool.d.ts +62 -0
  59. package/dist/tools/modality/motion-tool.d.ts.map +1 -0
  60. package/dist/tools/modality/motion-tool.js +220 -0
  61. package/dist/tools/modality/motion-tool.js.map +1 -0
  62. package/dist/tools/modality/motion.d.ts +298 -0
  63. package/dist/tools/modality/motion.d.ts.map +1 -0
  64. package/dist/tools/modality/motion.js +514 -0
  65. package/dist/tools/modality/motion.js.map +1 -0
  66. package/dist/tools/registry.d.ts.map +1 -1
  67. package/dist/tools/registry.js +75 -0
  68. package/dist/tools/registry.js.map +1 -1
  69. package/dist/tools/tool-loop.d.ts.map +1 -1
  70. package/dist/tools/tool-loop.js +66 -16
  71. package/dist/tools/tool-loop.js.map +1 -1
  72. package/dist/tools/toolsets.js +2 -2
  73. package/dist/tools/toolsets.js.map +1 -1
  74. package/dist/utils/workspace-need.d.ts +84 -0
  75. package/dist/utils/workspace-need.d.ts.map +1 -0
  76. package/dist/utils/workspace-need.js +227 -0
  77. package/dist/utils/workspace-need.js.map +1 -0
  78. package/dist/web-dashboard/chat-console.d.ts +22 -0
  79. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  80. package/dist/web-dashboard/chat-console.js +65 -11
  81. package/dist/web-dashboard/chat-console.js.map +1 -1
  82. package/dist/web-dashboard/hub-data.d.ts +9 -1
  83. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  84. package/dist/web-dashboard/hub-data.js +2 -0
  85. package/dist/web-dashboard/hub-data.js.map +1 -1
  86. package/dist/web-dashboard/project-context.d.ts +1 -1
  87. package/dist/web-dashboard/project-context.d.ts.map +1 -1
  88. package/dist/web-dashboard/project-context.js +7 -1
  89. package/dist/web-dashboard/project-context.js.map +1 -1
  90. package/dist/web-dashboard/server.d.ts +33 -0
  91. package/dist/web-dashboard/server.d.ts.map +1 -1
  92. package/dist/web-dashboard/server.js +204 -21
  93. package/dist/web-dashboard/server.js.map +1 -1
  94. package/dist/web-dashboard/src/types.d.ts +46 -0
  95. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  96. package/dist/web-dashboard/workspace-guard.d.ts +20 -21
  97. package/dist/web-dashboard/workspace-guard.d.ts.map +1 -1
  98. package/dist/web-dashboard/workspace-guard.js +20 -153
  99. package/dist/web-dashboard/workspace-guard.js.map +1 -1
  100. package/dist/web-dashboard/workspace-resolution.d.ts +23 -5
  101. package/dist/web-dashboard/workspace-resolution.d.ts.map +1 -1
  102. package/dist/web-dashboard/workspace-resolution.js +22 -4
  103. package/dist/web-dashboard/workspace-resolution.js.map +1 -1
  104. package/package.json +1 -1
  105. package/src/web-dashboard/public/assets/{index-DeSsNU94.css → index-CzRU84ET.css} +1 -1
  106. package/src/web-dashboard/public/assets/index-V0rIqVbg.js +236 -0
  107. package/src/web-dashboard/public/assets/index-V0rIqVbg.js.map +1 -0
  108. package/src/web-dashboard/public/index.html +2 -2
  109. package/src/web-dashboard/public/assets/index-Do_O67Kv.js +0 -236
  110. package/src/web-dashboard/public/assets/index-Do_O67Kv.js.map +0 -1
@@ -0,0 +1,134 @@
1
+ /**
2
+ * The SCRATCH WORKSPACE — where a turn writes when no project folder is known.
3
+ *
4
+ * WHY THIS EXISTS. A turn that must produce a file and has no workspace used to
5
+ * be dead-ended: the dashboard refused with "attach a folder" (see
6
+ * `workspace-guard.ts`), and a messaging turn simply wrote into whatever
7
+ * directory the gateway process happened to run in — a tree that belongs to
8
+ * nobody asking the question. Neither is intelligent handling of a request the
9
+ * user genuinely made: asked for a script and no folder, the right answer is a
10
+ * file the user is TOLD about, not a refusal and not an invisible write.
11
+ *
12
+ * THE LADDER, and this module is only its last rung. A turn's workspace is
13
+ * resolved in `workspace-resolution.ts`: the folder the user attached, then the
14
+ * one this chat attached earlier, then one they named in their message, then
15
+ * the operator's configured default (`dashboard.cwd`) — and only then here.
16
+ * The scratch folder is never presented as a project: every surface is required
17
+ * to say where the file went and offer to keep it (set it as the project, move
18
+ * it, or attach a real folder).
19
+ *
20
+ * WHY NOT `os.tmpdir()` FIRST. `os.tmpdir()` is the obvious choice and the wrong
21
+ * primary: macOS clears `/var/folders` and systemd-tmpfiles clears `/tmp`, so
22
+ * "your file is at /tmp/x" can be a path that stops existing between the reply
23
+ * and the user going to look for it. The primary root is therefore a durable,
24
+ * clearly-temporary directory under the app's own home (or `$NUVIRA_SCRATCH_DIR`),
25
+ * with `os.tmpdir()` kept as the fallback for a home that is not writable. Both
26
+ * paths are built with `node:path`/`node:os`, so every OS is covered without a
27
+ * single `process.platform` branch.
28
+ *
29
+ * DEFECTS THIS CLOSES (measured):
30
+ * - WhatsApp, trace-1792061511046-jdhgyy: a poem request took 117s, the poem
31
+ * was produced and then deleted by a gate, and the sender got a dangling
32
+ * fragment. Nothing to do with scratch alone — but the same session had no
33
+ * workspace at all, which is what made the turn's file behaviour
34
+ * unpredictable in the first place.
35
+ * - Dashboard chat: "agent keep going mad and confused when project folder not
36
+ * attached" — a produce ask was refused for a folder it did not need.
37
+ */
38
+ import type { MissingWorkspaceNeed } from '../utils/workspace-need.js';
39
+ /** Default retention for a scratch folder nobody came back to (30 days). */
40
+ export declare const SCRATCH_RETENTION_MS: number;
41
+ /**
42
+ * Turn an arbitrary key (a session id, a `platform:channelId` contact key) into
43
+ * ONE filesystem-safe directory name.
44
+ *
45
+ * A key that is already safe is returned unchanged, so the dashboard's own
46
+ * session ids produce readable paths. A key that needed character substitution
47
+ * (a WhatsApp `jid` is `918800604222@s.whatsapp.net`, which contains `@` and a
48
+ * dot) gets a short hash of the RAW key appended: substitution alone can collide
49
+ * two different contacts onto one folder, and two people sharing a scratch
50
+ * directory is a defect, not a curiosity.
51
+ */
52
+ export declare function scratchKeyToDirName(key: string): string;
53
+ /**
54
+ * The scratch ROOT: `$NUVIRA_SCRATCH_DIR`, else `<nuvira home>/workspace`.
55
+ *
56
+ * `resolveNuviraDataPath` honours `$NUVIRA_CONFIG_DIR`, so an isolated
57
+ * deployment (and the test suite) never writes scratch folders into the real
58
+ * `~/.nuvira`.
59
+ */
60
+ export declare function scratchWorkspaceRoot(): string;
61
+ /** The scratch directory a given key WOULD use (not created, not checked). */
62
+ export declare function scratchWorkspaceFor(key: string): string;
63
+ /**
64
+ * Create (if needed) and return the scratch directory for `key`, or `undefined`
65
+ * when no writable location exists — the caller must then behave exactly as it
66
+ * did before this module existed (ask for a folder; never guess a path).
67
+ *
68
+ * Two candidates, in order: the app-home root, then `os.tmpdir()`. The first
69
+ * that can actually be created and written wins. Never throws.
70
+ */
71
+ export declare function ensureScratchWorkspace(key: string): string | undefined;
72
+ /**
73
+ * The scratch folder for THIS turn, or `undefined` when a scratch folder must
74
+ * not be used — one place, so two surfaces cannot answer the same question
75
+ * differently.
76
+ *
77
+ * The caller applies the ladder FIRST (attached → session → named in the message
78
+ * → the deployment's configured default) and asks here only when the turn has no
79
+ * folder of the user's. Three conditions then decide it, and each is a case where
80
+ * a temporary folder would be worse than none:
81
+ *
82
+ * 1. `need === 'produce'` — a place to PUT new work. A scratch folder is EMPTY,
83
+ * so it can neither answer an ask about work that already exists (`'read'`)
84
+ * nor serve plain chat (`null`).
85
+ * 2. NOT plain chat, for a second reason the first cannot cover: `projectPath`
86
+ * also drives per-project recall, the resume fingerprint and worktree
87
+ * isolation, so handing one to a turn that asked for nothing changes what
88
+ * the turn IS rather than where it writes.
89
+ * 3. NOT an ISOLATED turn. Isolation's contract is a throwaway copy of a REAL
90
+ * project plus the diff against its base commit (`tools/worktree.ts`), and a
91
+ * scratch folder is neither a project nor a repository — it has no commit to
92
+ * start from, so it cannot be isolated at all. Substituting one turns a
93
+ * request the deployment made (`NUVIRA_ISOLATE=1`) into a REFUSAL, when the
94
+ * surface's own directory was there to be isolated all along. Measured: the
95
+ * gateway dropped to `generation_failed` with no model call on the
96
+ * cross-surface worktree scenario, while the CLI and dashboard — whose
97
+ * ladder had a real directory above this rung — stayed green.
98
+ */
99
+ export declare function scratchWorkspaceForTurn(input: {
100
+ /** The key this folder belongs to (a session id, a `platform:channelId`). */
101
+ key: string;
102
+ /** What the ask needs a folder for (`workspaceNeedForMissingFolder`). */
103
+ need: MissingWorkspaceNeed;
104
+ /** Is this turn asked to run in an isolated copy of a repository? */
105
+ isolationAsked: boolean;
106
+ }): string | undefined;
107
+ /**
108
+ * What the model (and the user) must be told about a scratch workspace.
109
+ *
110
+ * Deliberately explicit about three things, because all three were defects when
111
+ * left implicit: that NOTHING was attached (so nobody wonders why the file is
112
+ * where it is), that the folder is TEMPORARY rather than a project, and the two
113
+ * ways to keep the work. It is written to read correctly on EVERY surface —
114
+ * a messaging reply and a dashboard caption — so it names no UI control and no
115
+ * particular app: "the app" and "the folder path" travel everywhere.
116
+ *
117
+ * It is BOTH the turn's project context (so the model knows where it may write
118
+ * and what to say about it) and the user-visible caption of the response, the
119
+ * same double duty `defaultWorkspaceNotice` performs.
120
+ */
121
+ export declare function scratchWorkspaceNotice(path: string): string;
122
+ /**
123
+ * Remove scratch folders that have not been touched within `maxAgeMs`.
124
+ *
125
+ * A scratch folder is temporary BY DEFINITION, so leaving every one of them on
126
+ * disk forever would turn a convenience into unbounded growth of the user's home
127
+ * directory. Best-effort on both counts: an unreadable entry or an unremovable
128
+ * directory is skipped, never an error — this runs at server/gateway startup and
129
+ * must never be able to stop one.
130
+ *
131
+ * Returns the number of folders removed, for the caller's log line.
132
+ */
133
+ export declare function pruneScratchWorkspaces(maxAgeMs?: number): number;
134
+ //# sourceMappingURL=scratch-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scratch-workspace.d.ts","sourceRoot":"","sources":["../../src/config/scratch-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAWH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,QAA2B,CAAC;AAQ7D;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkBtE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,GAAG,SAAS,CAIrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,GAAE,MAA6B,GAAG,MAAM,CAwBtF"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * The SCRATCH WORKSPACE — where a turn writes when no project folder is known.
3
+ *
4
+ * WHY THIS EXISTS. A turn that must produce a file and has no workspace used to
5
+ * be dead-ended: the dashboard refused with "attach a folder" (see
6
+ * `workspace-guard.ts`), and a messaging turn simply wrote into whatever
7
+ * directory the gateway process happened to run in — a tree that belongs to
8
+ * nobody asking the question. Neither is intelligent handling of a request the
9
+ * user genuinely made: asked for a script and no folder, the right answer is a
10
+ * file the user is TOLD about, not a refusal and not an invisible write.
11
+ *
12
+ * THE LADDER, and this module is only its last rung. A turn's workspace is
13
+ * resolved in `workspace-resolution.ts`: the folder the user attached, then the
14
+ * one this chat attached earlier, then one they named in their message, then
15
+ * the operator's configured default (`dashboard.cwd`) — and only then here.
16
+ * The scratch folder is never presented as a project: every surface is required
17
+ * to say where the file went and offer to keep it (set it as the project, move
18
+ * it, or attach a real folder).
19
+ *
20
+ * WHY NOT `os.tmpdir()` FIRST. `os.tmpdir()` is the obvious choice and the wrong
21
+ * primary: macOS clears `/var/folders` and systemd-tmpfiles clears `/tmp`, so
22
+ * "your file is at /tmp/x" can be a path that stops existing between the reply
23
+ * and the user going to look for it. The primary root is therefore a durable,
24
+ * clearly-temporary directory under the app's own home (or `$NUVIRA_SCRATCH_DIR`),
25
+ * with `os.tmpdir()` kept as the fallback for a home that is not writable. Both
26
+ * paths are built with `node:path`/`node:os`, so every OS is covered without a
27
+ * single `process.platform` branch.
28
+ *
29
+ * DEFECTS THIS CLOSES (measured):
30
+ * - WhatsApp, trace-1792061511046-jdhgyy: a poem request took 117s, the poem
31
+ * was produced and then deleted by a gate, and the sender got a dangling
32
+ * fragment. Nothing to do with scratch alone — but the same session had no
33
+ * workspace at all, which is what made the turn's file behaviour
34
+ * unpredictable in the first place.
35
+ * - Dashboard chat: "agent keep going mad and confused when project folder not
36
+ * attached" — a produce ask was refused for a folder it did not need.
37
+ */
38
+ import { existsSync, mkdirSync, readdirSync, rmSync, statSync } from 'node:fs';
39
+ import { createHash } from 'node:crypto';
40
+ import { tmpdir } from 'node:os';
41
+ import { join } from 'node:path';
42
+ import { envBuff, resolveNuviraDataPath } from './paths.js';
43
+ /** Default retention for a scratch folder nobody came back to (30 days). */
44
+ export const SCRATCH_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
45
+ /** The directory name used by the `os.tmpdir()` fallback. */
46
+ const TMP_FALLBACK_DIR = 'nuvira-scratch';
47
+ /** Longest run of readable characters kept from a key before a hash is added. */
48
+ const SLUG_MAX = 48;
49
+ /**
50
+ * Turn an arbitrary key (a session id, a `platform:channelId` contact key) into
51
+ * ONE filesystem-safe directory name.
52
+ *
53
+ * A key that is already safe is returned unchanged, so the dashboard's own
54
+ * session ids produce readable paths. A key that needed character substitution
55
+ * (a WhatsApp `jid` is `918800604222@s.whatsapp.net`, which contains `@` and a
56
+ * dot) gets a short hash of the RAW key appended: substitution alone can collide
57
+ * two different contacts onto one folder, and two people sharing a scratch
58
+ * directory is a defect, not a curiosity.
59
+ */
60
+ export function scratchKeyToDirName(key) {
61
+ const raw = (key || '').trim();
62
+ if (!raw)
63
+ return 'unnamed';
64
+ const readable = raw.replace(/[^A-Za-z0-9._-]+/g, '-').replace(/-{2,}/g, '-').replace(/^[-.]+/, '').replace(/[-.]+$/, '');
65
+ const safe = raw === readable && readable !== '' && readable !== '.' && readable !== '..';
66
+ if (safe)
67
+ return readable.slice(0, SLUG_MAX);
68
+ const slug = (readable || 'key').slice(0, SLUG_MAX);
69
+ const hash = createHash('sha1').update(raw).digest('hex').slice(0, 6);
70
+ return `${slug}-${hash}`;
71
+ }
72
+ /**
73
+ * The scratch ROOT: `$NUVIRA_SCRATCH_DIR`, else `<nuvira home>/workspace`.
74
+ *
75
+ * `resolveNuviraDataPath` honours `$NUVIRA_CONFIG_DIR`, so an isolated
76
+ * deployment (and the test suite) never writes scratch folders into the real
77
+ * `~/.nuvira`.
78
+ */
79
+ export function scratchWorkspaceRoot() {
80
+ const override = envBuff('SCRATCH_DIR');
81
+ if (override && override.trim())
82
+ return override.trim();
83
+ return resolveNuviraDataPath('workspace');
84
+ }
85
+ /** The scratch directory a given key WOULD use (not created, not checked). */
86
+ export function scratchWorkspaceFor(key) {
87
+ return join(scratchWorkspaceRoot(), scratchKeyToDirName(key));
88
+ }
89
+ /**
90
+ * Create (if needed) and return the scratch directory for `key`, or `undefined`
91
+ * when no writable location exists — the caller must then behave exactly as it
92
+ * did before this module existed (ask for a folder; never guess a path).
93
+ *
94
+ * Two candidates, in order: the app-home root, then `os.tmpdir()`. The first
95
+ * that can actually be created and written wins. Never throws.
96
+ */
97
+ export function ensureScratchWorkspace(key) {
98
+ const dirName = scratchKeyToDirName(key);
99
+ const candidates = [join(scratchWorkspaceRoot(), dirName), join(tmpdir(), TMP_FALLBACK_DIR, dirName)];
100
+ for (const dir of candidates) {
101
+ try {
102
+ mkdirSync(dir, { recursive: true });
103
+ // `mkdirSync` is happy on an existing read-only directory, so prove
104
+ // writability rather than trusting it: a scratch folder nothing can be
105
+ // written into would fail later, at the tool call, with a confusing error.
106
+ const probe = join(dir, '.nuvira-scratch-probe');
107
+ mkdirSync(probe, { recursive: true });
108
+ rmSync(probe, { recursive: true, force: true });
109
+ return dir;
110
+ }
111
+ catch {
112
+ // Fall through to the next candidate.
113
+ }
114
+ }
115
+ return undefined;
116
+ }
117
+ /**
118
+ * The scratch folder for THIS turn, or `undefined` when a scratch folder must
119
+ * not be used — one place, so two surfaces cannot answer the same question
120
+ * differently.
121
+ *
122
+ * The caller applies the ladder FIRST (attached → session → named in the message
123
+ * → the deployment's configured default) and asks here only when the turn has no
124
+ * folder of the user's. Three conditions then decide it, and each is a case where
125
+ * a temporary folder would be worse than none:
126
+ *
127
+ * 1. `need === 'produce'` — a place to PUT new work. A scratch folder is EMPTY,
128
+ * so it can neither answer an ask about work that already exists (`'read'`)
129
+ * nor serve plain chat (`null`).
130
+ * 2. NOT plain chat, for a second reason the first cannot cover: `projectPath`
131
+ * also drives per-project recall, the resume fingerprint and worktree
132
+ * isolation, so handing one to a turn that asked for nothing changes what
133
+ * the turn IS rather than where it writes.
134
+ * 3. NOT an ISOLATED turn. Isolation's contract is a throwaway copy of a REAL
135
+ * project plus the diff against its base commit (`tools/worktree.ts`), and a
136
+ * scratch folder is neither a project nor a repository — it has no commit to
137
+ * start from, so it cannot be isolated at all. Substituting one turns a
138
+ * request the deployment made (`NUVIRA_ISOLATE=1`) into a REFUSAL, when the
139
+ * surface's own directory was there to be isolated all along. Measured: the
140
+ * gateway dropped to `generation_failed` with no model call on the
141
+ * cross-surface worktree scenario, while the CLI and dashboard — whose
142
+ * ladder had a real directory above this rung — stayed green.
143
+ */
144
+ export function scratchWorkspaceForTurn(input) {
145
+ if (input.need !== 'produce')
146
+ return undefined;
147
+ if (input.isolationAsked)
148
+ return undefined;
149
+ return ensureScratchWorkspace(input.key);
150
+ }
151
+ /**
152
+ * What the model (and the user) must be told about a scratch workspace.
153
+ *
154
+ * Deliberately explicit about three things, because all three were defects when
155
+ * left implicit: that NOTHING was attached (so nobody wonders why the file is
156
+ * where it is), that the folder is TEMPORARY rather than a project, and the two
157
+ * ways to keep the work. It is written to read correctly on EVERY surface —
158
+ * a messaging reply and a dashboard caption — so it names no UI control and no
159
+ * particular app: "the app" and "the folder path" travel everywhere.
160
+ *
161
+ * It is BOTH the turn's project context (so the model knows where it may write
162
+ * and what to say about it) and the user-visible caption of the response, the
163
+ * same double duty `defaultWorkspaceNotice` performs.
164
+ */
165
+ export function scratchWorkspaceNotice(path) {
166
+ return (`No project folder is attached, so this turn used a TEMPORARY workspace (${path}) — ` +
167
+ 'it is not one of the user\u2019s projects and it will be cleaned up. Name the full path of ' +
168
+ 'anything you create there, say plainly that it is temporary, and offer the two ways to keep ' +
169
+ 'the work: the user can send the folder path they want it moved to (you move the files there), ' +
170
+ 'or attach a project folder so the next turn runs inside it.');
171
+ }
172
+ /**
173
+ * Remove scratch folders that have not been touched within `maxAgeMs`.
174
+ *
175
+ * A scratch folder is temporary BY DEFINITION, so leaving every one of them on
176
+ * disk forever would turn a convenience into unbounded growth of the user's home
177
+ * directory. Best-effort on both counts: an unreadable entry or an unremovable
178
+ * directory is skipped, never an error — this runs at server/gateway startup and
179
+ * must never be able to stop one.
180
+ *
181
+ * Returns the number of folders removed, for the caller's log line.
182
+ */
183
+ export function pruneScratchWorkspaces(maxAgeMs = SCRATCH_RETENTION_MS) {
184
+ const root = scratchWorkspaceRoot();
185
+ if (!existsSync(root))
186
+ return 0;
187
+ const cutoff = Date.now() - Math.max(0, maxAgeMs);
188
+ let removed = 0;
189
+ let entries;
190
+ try {
191
+ entries = readdirSync(root);
192
+ }
193
+ catch {
194
+ return 0;
195
+ }
196
+ for (const entry of entries) {
197
+ const dir = join(root, entry);
198
+ try {
199
+ const info = statSync(dir);
200
+ if (!info.isDirectory())
201
+ continue;
202
+ if (info.mtimeMs >= cutoff)
203
+ continue;
204
+ rmSync(dir, { recursive: true, force: true });
205
+ removed += 1;
206
+ }
207
+ catch {
208
+ // Skip anything unreadable or unremovable.
209
+ }
210
+ }
211
+ return removed;
212
+ }
213
+ //# sourceMappingURL=scratch-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scratch-workspace.js","sourceRoot":"","sources":["../../src/config/scratch-workspace.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,18 @@ export interface ChannelAdapter {
62
62
  readonly configured: boolean;
63
63
  /** Human description for `nuvira gateway status`. */
64
64
  describe(): string;
65
+ /**
66
+ * Longest message this transport accepts, in characters.
67
+ *
68
+ * WHY IT IS ON THE ADAPTER. Every transport truncates somewhere — WhatsApp
69
+ * near 4096, SMS at 1600 — and the side that KNOWS the number is the one that
70
+ * sends. The registry reads it so a long answer can be saved to the turn's
71
+ * workspace and delivered as a head plus the path, instead of being sliced by
72
+ * `sanitizeOutbound` with the tail silently lost. Optional: absent means "no
73
+ * limit I know of", and the registry then applies its own conservative
74
+ * default rather than assuming an unlimited channel.
75
+ */
76
+ readonly maxMessageChars?: number;
65
77
  /** Start receiving inbound messages (long-poll or webhook server). */
66
78
  start(onMessage: MessageHandler): Promise<void>;
67
79
  /** Stop receiving (idempotent). */
@@ -89,6 +101,14 @@ export interface ChannelAdapter {
89
101
  }
90
102
  /** Sanitize an outbound message: strip control chars, cap length. */
91
103
  export declare function sanitizeOutbound(text: string, max?: number): string;
104
+ /**
105
+ * What a channel may carry when the adapter does not declare a cap.
106
+ *
107
+ * 4096 is the widest of the messaging platforms this gateway serves (WhatsApp),
108
+ * so the reply-saving rule fires at the point where ANY configured transport
109
+ * would start losing text — never later.
110
+ */
111
+ export declare const DEFAULT_MAX_MESSAGE_CHARS = 4096;
92
112
  /** Default upload filename per media type (when the caller omits one). */
93
113
  export declare function defaultMediaFilename(type: MediaPayload['type']): string;
94
114
  /**
@@ -217,6 +237,8 @@ export declare class WhatsAppCloudAdapter extends WebhookChannelAdapter {
217
237
  */
218
238
  export declare class WhatsAppBridgeAdapter implements ChannelAdapter {
219
239
  private readonly bridge;
240
+ /** WhatsApp truncates a text message near 4 KB. */
241
+ readonly maxMessageChars = 4096;
220
242
  readonly platform: "whatsapp";
221
243
  private handler;
222
244
  constructor(bridge?: WhatsAppBridge);
@@ -448,6 +470,8 @@ export declare class SignalAdapter implements ChannelAdapter {
448
470
  */
449
471
  export declare class SmsAdapter implements ChannelAdapter {
450
472
  readonly platform: "sms";
473
+ /** Twilio's per-message cap (~10 SMS segments) — see `send` below. */
474
+ readonly maxMessageChars = 1600;
451
475
  readonly configured: boolean;
452
476
  private accountSid;
453
477
  private authToken;
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/gateway/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/gateway/adapters.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,14 @@ export function sanitizeOutbound(text, max = 3500) {
46
46
  // eslint-disable-next-line no-control-regex
47
47
  return text.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g, '').slice(0, max);
48
48
  }
49
+ /**
50
+ * What a channel may carry when the adapter does not declare a cap.
51
+ *
52
+ * 4096 is the widest of the messaging platforms this gateway serves (WhatsApp),
53
+ * so the reply-saving rule fires at the point where ANY configured transport
54
+ * would start losing text — never later.
55
+ */
56
+ export const DEFAULT_MAX_MESSAGE_CHARS = 4096;
49
57
  /** Default upload filename per media type (when the caller omits one). */
50
58
  export function defaultMediaFilename(type) {
51
59
  switch (type) {
@@ -450,6 +458,8 @@ export class WhatsAppCloudAdapter extends WebhookChannelAdapter {
450
458
  */
451
459
  export class WhatsAppBridgeAdapter {
452
460
  bridge;
461
+ /** WhatsApp truncates a text message near 4 KB. */
462
+ maxMessageChars = 4096;
453
463
  platform = 'whatsapp';
454
464
  handler = null;
455
465
  constructor(bridge = new BaileysBridge(undefined, {
@@ -1142,6 +1152,8 @@ export class SignalAdapter {
1142
1152
  */
1143
1153
  export class SmsAdapter {
1144
1154
  platform = 'sms';
1155
+ /** Twilio's per-message cap (~10 SMS segments) — see `send` below. */
1156
+ maxMessageChars = 1600;
1145
1157
  configured;
1146
1158
  accountSid = '';
1147
1159
  authToken = '';