@namzu/cli 29.1.0 → 32.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +296 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/acp.d.ts +20 -2
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/acp.js +42 -5
- package/dist/commands/acp.js.map +1 -1
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +2 -1
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/exec-json.d.ts.map +1 -1
- package/dist/commands/exec-json.js +24 -1
- package/dist/commands/exec-json.js.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +5 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/prior-messages.d.ts.map +1 -1
- package/dist/commands/prior-messages.js +42 -2
- package/dist/commands/prior-messages.js.map +1 -1
- package/dist/commands/schedule.d.ts.map +1 -1
- package/dist/commands/schedule.js +7 -5
- package/dist/commands/schedule.js.map +1 -1
- package/dist/config/composer-triggers.d.ts +41 -0
- package/dist/config/composer-triggers.d.ts.map +1 -0
- package/dist/config/composer-triggers.js +80 -0
- package/dist/config/composer-triggers.js.map +1 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +58 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +34 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/context/doctrine.d.ts +3 -3
- package/dist/context/doctrine.d.ts.map +1 -1
- package/dist/context/doctrine.js +3 -3
- package/dist/context/doctrine.js.map +1 -1
- package/dist/context/environment.d.ts +26 -3
- package/dist/context/environment.d.ts.map +1 -1
- package/dist/context/environment.js +68 -9
- package/dist/context/environment.js.map +1 -1
- package/dist/context/runtime-message.d.ts.map +1 -1
- package/dist/context/runtime-message.js +4 -0
- package/dist/context/runtime-message.js.map +1 -1
- package/dist/integrations/mcp/servers.d.ts +72 -5
- package/dist/integrations/mcp/servers.d.ts.map +1 -1
- package/dist/integrations/mcp/servers.js +144 -23
- package/dist/integrations/mcp/servers.js.map +1 -1
- package/dist/integrations/notifications/desktop.d.ts +2 -0
- package/dist/integrations/notifications/desktop.d.ts.map +1 -1
- package/dist/integrations/notifications/desktop.js +6 -5
- package/dist/integrations/notifications/desktop.js.map +1 -1
- package/dist/integrations/plugins/runtime.d.ts +10 -2
- package/dist/integrations/plugins/runtime.d.ts.map +1 -1
- package/dist/integrations/plugins/runtime.js +16 -29
- package/dist/integrations/plugins/runtime.js.map +1 -1
- package/dist/integrations/providers/harness-credentials.d.ts +9 -4
- package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
- package/dist/integrations/providers/harness-credentials.js +16 -8
- package/dist/integrations/providers/harness-credentials.js.map +1 -1
- package/dist/integrations/resident/session-step.d.ts.map +1 -1
- package/dist/integrations/resident/session-step.js +2 -1
- package/dist/integrations/resident/session-step.js.map +1 -1
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/store.js +20 -2
- package/dist/integrations/sessions/store.js.map +1 -1
- package/dist/integrations/subagents/NamzuCliAgent.d.ts +8 -0
- package/dist/integrations/subagents/NamzuCliAgent.d.ts.map +1 -0
- package/dist/integrations/subagents/NamzuCliAgent.js +9 -0
- package/dist/integrations/subagents/NamzuCliAgent.js.map +1 -0
- package/dist/integrations/subagents/runtime.d.ts +5 -4
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +46 -11
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/integrations/web/open-url.d.ts +24 -0
- package/dist/integrations/web/open-url.d.ts.map +1 -0
- package/dist/integrations/web/open-url.js +73 -0
- package/dist/integrations/web/open-url.js.map +1 -0
- package/dist/integrations/web/search.d.ts.map +1 -1
- package/dist/integrations/web/search.js +8 -6
- package/dist/integrations/web/search.js.map +1 -1
- package/dist/permissions/rules.d.ts +5 -1
- package/dist/permissions/rules.d.ts.map +1 -1
- package/dist/permissions/rules.js +85 -3
- package/dist/permissions/rules.js.map +1 -1
- package/dist/schedule/build.d.ts +26 -2
- package/dist/schedule/build.d.ts.map +1 -1
- package/dist/schedule/build.js +139 -20
- package/dist/schedule/build.js.map +1 -1
- package/dist/schedule/changes.d.ts +6 -0
- package/dist/schedule/changes.d.ts.map +1 -1
- package/dist/schedule/changes.js +23 -0
- package/dist/schedule/changes.js.map +1 -1
- package/dist/schedule/commands/add.d.ts +1 -1
- package/dist/schedule/commands/add.d.ts.map +1 -1
- package/dist/schedule/commands/add.js +188 -54
- package/dist/schedule/commands/add.js.map +1 -1
- package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
- package/dist/schedule/commands/lifecycle.js +2 -1
- package/dist/schedule/commands/lifecycle.js.map +1 -1
- package/dist/schedule/commands/list.d.ts +2 -0
- package/dist/schedule/commands/list.d.ts.map +1 -1
- package/dist/schedule/commands/list.js +69 -20
- package/dist/schedule/commands/list.js.map +1 -1
- package/dist/schedule/daemon/daemon.d.ts +1 -1
- package/dist/schedule/daemon/daemon.d.ts.map +1 -1
- package/dist/schedule/daemon/daemon.js +22 -5
- package/dist/schedule/daemon/daemon.js.map +1 -1
- package/dist/schedule/daemon/notify.d.ts +29 -2
- package/dist/schedule/daemon/notify.d.ts.map +1 -1
- package/dist/schedule/daemon/notify.js +71 -2
- package/dist/schedule/daemon/notify.js.map +1 -1
- package/dist/schedule/env.d.ts +8 -4
- package/dist/schedule/env.d.ts.map +1 -1
- package/dist/schedule/env.js +13 -6
- package/dist/schedule/env.js.map +1 -1
- package/dist/schedule/fire/calls.d.ts +49 -0
- package/dist/schedule/fire/calls.d.ts.map +1 -0
- package/dist/schedule/fire/calls.js +114 -0
- package/dist/schedule/fire/calls.js.map +1 -0
- package/dist/schedule/fire/fire.d.ts +1 -1
- package/dist/schedule/fire/fire.d.ts.map +1 -1
- package/dist/schedule/fire/fire.js +209 -15
- package/dist/schedule/fire/fire.js.map +1 -1
- package/dist/schedule/fire/result.d.ts +1 -1
- package/dist/schedule/fire/result.d.ts.map +1 -1
- package/dist/schedule/fire/result.js +2 -1
- package/dist/schedule/fire/result.js.map +1 -1
- package/dist/schedule/fire/run-script.d.ts +46 -0
- package/dist/schedule/fire/run-script.d.ts.map +1 -0
- package/dist/schedule/fire/run-script.js +81 -0
- package/dist/schedule/fire/run-script.js.map +1 -0
- package/dist/schedule/fire/unattended-note.d.ts +8 -0
- package/dist/schedule/fire/unattended-note.d.ts.map +1 -1
- package/dist/schedule/fire/unattended-note.js +5 -0
- package/dist/schedule/fire/unattended-note.js.map +1 -1
- package/dist/schedule/fire/wake-gate.d.ts +39 -0
- package/dist/schedule/fire/wake-gate.d.ts.map +1 -0
- package/dist/schedule/fire/wake-gate.js +90 -0
- package/dist/schedule/fire/wake-gate.js.map +1 -0
- package/dist/schedule/floor.d.ts +28 -8
- package/dist/schedule/floor.d.ts.map +1 -1
- package/dist/schedule/floor.js +624 -114
- package/dist/schedule/floor.js.map +1 -1
- package/dist/schedule/policy.d.ts +40 -0
- package/dist/schedule/policy.d.ts.map +1 -1
- package/dist/schedule/policy.js +36 -0
- package/dist/schedule/policy.js.map +1 -1
- package/dist/schedule/script-check.d.ts +53 -0
- package/dist/schedule/script-check.d.ts.map +1 -0
- package/dist/schedule/script-check.js +145 -0
- package/dist/schedule/script-check.js.map +1 -0
- package/dist/schedule/script-shell.d.ts +3 -0
- package/dist/schedule/script-shell.d.ts.map +1 -0
- package/dist/schedule/script-shell.js +5 -0
- package/dist/schedule/script-shell.js.map +1 -0
- package/dist/schedule/service/index.d.ts +1 -1
- package/dist/schedule/service/index.d.ts.map +1 -1
- package/dist/schedule/service/index.js +20 -11
- package/dist/schedule/service/index.js.map +1 -1
- package/dist/schedule/service/manifest.js +1 -1
- package/dist/schedule/service/manifest.js.map +1 -1
- package/dist/schedule/service/windows-task.d.ts +7 -0
- package/dist/schedule/service/windows-task.d.ts.map +1 -1
- package/dist/schedule/service/windows-task.js +65 -0
- package/dist/schedule/service/windows-task.js.map +1 -1
- package/dist/schedule/service/wsl.d.ts +13 -1
- package/dist/schedule/service/wsl.d.ts.map +1 -1
- package/dist/schedule/service/wsl.js +16 -6
- package/dist/schedule/service/wsl.js.map +1 -1
- package/dist/schedule/store/atomic.d.ts +5 -2
- package/dist/schedule/store/atomic.d.ts.map +1 -1
- package/dist/schedule/store/atomic.js +7 -4
- package/dist/schedule/store/atomic.js.map +1 -1
- package/dist/schedule/store/claims.js +1 -1
- package/dist/schedule/store/claims.js.map +1 -1
- package/dist/schedule/store/history.d.ts +1 -1
- package/dist/schedule/store/history.d.ts.map +1 -1
- package/dist/schedule/store/history.js +4 -1
- package/dist/schedule/store/history.js.map +1 -1
- package/dist/schedule/store/jobs.d.ts +19 -3
- package/dist/schedule/store/jobs.d.ts.map +1 -1
- package/dist/schedule/store/jobs.js +83 -16
- package/dist/schedule/store/jobs.js.map +1 -1
- package/dist/schedule/store/state.js +1 -1
- package/dist/schedule/store/state.js.map +1 -1
- package/dist/schedule/types.d.ts +98 -6
- package/dist/schedule/types.d.ts.map +1 -1
- package/dist/schedule/types.js +25 -1
- package/dist/schedule/types.js.map +1 -1
- package/dist/schedule/visible-source.d.ts +18 -0
- package/dist/schedule/visible-source.d.ts.map +1 -0
- package/dist/schedule/visible-source.js +59 -0
- package/dist/schedule/visible-source.js.map +1 -0
- package/dist/skills/directory.d.ts +38 -0
- package/dist/skills/directory.d.ts.map +1 -0
- package/dist/skills/directory.js +51 -0
- package/dist/skills/directory.js.map +1 -0
- package/dist/test-support/toolset.d.ts +23 -0
- package/dist/test-support/toolset.d.ts.map +1 -0
- package/dist/test-support/toolset.js +27 -0
- package/dist/test-support/toolset.js.map +1 -0
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +343 -64
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/ChoicePicker.d.ts +2 -0
- package/dist/tui/ChoicePicker.d.ts.map +1 -1
- package/dist/tui/ChoicePicker.js +10 -2
- package/dist/tui/ChoicePicker.js.map +1 -1
- package/dist/tui/Composer.d.ts +62 -3
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/Composer.js +162 -25
- package/dist/tui/Composer.js.map +1 -1
- package/dist/tui/ComposerFrame.d.ts +1 -1
- package/dist/tui/ComposerFrame.js +3 -3
- package/dist/tui/ComposerFrame.js.map +1 -1
- package/dist/tui/EffortSlider.d.ts +8 -9
- package/dist/tui/EffortSlider.d.ts.map +1 -1
- package/dist/tui/EffortSlider.js +15 -12
- package/dist/tui/EffortSlider.js.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts +13 -1
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.js +26 -4
- package/dist/tui/PermissionOverlay.js.map +1 -1
- package/dist/tui/StatusBar.d.ts +12 -12
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusBar.js +15 -15
- package/dist/tui/StatusBar.js.map +1 -1
- package/dist/tui/agent.d.ts +73 -12
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +430 -180
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/hypermode.d.ts +37 -0
- package/dist/tui/hypermode.d.ts.map +1 -0
- package/dist/tui/hypermode.js +58 -0
- package/dist/tui/hypermode.js.map +1 -0
- package/dist/tui/open-browser.d.ts +29 -1
- package/dist/tui/open-browser.d.ts.map +1 -1
- package/dist/tui/open-browser.js +83 -11
- package/dist/tui/open-browser.js.map +1 -1
- package/dist/tui/permission-review.d.ts +11 -2
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/permission-review.js +176 -19
- package/dist/tui/permission-review.js.map +1 -1
- package/dist/tui/schedule/host-commands.d.ts.map +1 -1
- package/dist/tui/schedule/host-commands.js +95 -33
- package/dist/tui/schedule/host-commands.js.map +1 -1
- package/dist/tui/schedule/integration.d.ts +6 -2
- package/dist/tui/schedule/integration.d.ts.map +1 -1
- package/dist/tui/schedule/integration.js +3 -1
- package/dist/tui/schedule/integration.js.map +1 -1
- package/dist/tui/schedule/resume.d.ts.map +1 -1
- package/dist/tui/schedule/resume.js +10 -1
- package/dist/tui/schedule/resume.js.map +1 -1
- package/dist/tui/schedule/tool-host.d.ts +18 -1
- package/dist/tui/schedule/tool-host.d.ts.map +1 -1
- package/dist/tui/schedule/tool-host.js +384 -84
- package/dist/tui/schedule/tool-host.js.map +1 -1
- package/dist/tui/slashCommands.d.ts +23 -5
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +80 -31
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/theme.d.ts +10 -4
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +4 -3
- package/dist/tui/theme.js.map +1 -1
- package/dist/tui/triggers/analyze.d.ts +57 -0
- package/dist/tui/triggers/analyze.d.ts.map +1 -0
- package/dist/tui/triggers/analyze.js +221 -0
- package/dist/tui/triggers/analyze.js.map +1 -0
- package/dist/tui/triggers/context-text.d.ts +21 -0
- package/dist/tui/triggers/context-text.d.ts.map +1 -0
- package/dist/tui/triggers/context-text.js +44 -0
- package/dist/tui/triggers/context-text.js.map +1 -0
- package/dist/tui/triggers/copy.d.ts +38 -0
- package/dist/tui/triggers/copy.d.ts.map +1 -0
- package/dist/tui/triggers/copy.js +163 -0
- package/dist/tui/triggers/copy.js.map +1 -0
- package/dist/tui/triggers/detect.d.ts +83 -0
- package/dist/tui/triggers/detect.d.ts.map +1 -0
- package/dist/tui/triggers/detect.js +295 -0
- package/dist/tui/triggers/detect.js.map +1 -0
- package/dist/tui/triggers/fold.d.ts +34 -0
- package/dist/tui/triggers/fold.d.ts.map +1 -0
- package/dist/tui/triggers/fold.js +44 -0
- package/dist/tui/triggers/fold.js.map +1 -0
- package/dist/tui/triggers/pattern.d.ts +66 -0
- package/dist/tui/triggers/pattern.d.ts.map +1 -0
- package/dist/tui/triggers/pattern.js +243 -0
- package/dist/tui/triggers/pattern.js.map +1 -0
- package/dist/tui/triggers/provenance.d.ts +58 -0
- package/dist/tui/triggers/provenance.d.ts.map +1 -0
- package/dist/tui/triggers/provenance.js +98 -0
- package/dist/tui/triggers/provenance.js.map +1 -0
- package/dist/tui/triggers/registry.d.ts +113 -0
- package/dist/tui/triggers/registry.d.ts.map +1 -0
- package/dist/tui/triggers/registry.js +164 -0
- package/dist/tui/triggers/registry.js.map +1 -0
- package/dist/tui/triggers/setting.d.ts +18 -0
- package/dist/tui/triggers/setting.d.ts.map +1 -0
- package/dist/tui/triggers/setting.js +61 -0
- package/dist/tui/triggers/setting.js.map +1 -0
- package/dist/tui/triggers/verbs.d.ts +29 -0
- package/dist/tui/triggers/verbs.d.ts.map +1 -0
- package/dist/tui/triggers/verbs.js +140 -0
- package/dist/tui/triggers/verbs.js.map +1 -0
- package/dist/tui/types.d.ts +3 -1
- package/dist/tui/types.d.ts.map +1 -1
- package/package.json +12 -12
- package/skills/README.md +5 -0
- package/skills/schedule-task/SKILL.md +123 -5
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* longer matches, and the daemon holds the job until someone confirms it.
|
|
16
16
|
*/
|
|
17
17
|
import type { SchedulePaths } from '../paths.js';
|
|
18
|
-
import type
|
|
18
|
+
import { type ScheduleJob } from '../types.js';
|
|
19
19
|
export declare const JOB_NAME: RegExp;
|
|
20
20
|
export declare class ScheduleConflictError extends Error {
|
|
21
21
|
readonly jobId: string;
|
|
@@ -32,7 +32,15 @@ export declare function stableStringify(value: unknown): string;
|
|
|
32
32
|
/**
|
|
33
33
|
* The digest of what a confirmation vouches for: the prompt, the folder and
|
|
34
34
|
* its trust, the permissions, the schedule, the model, the budget, the
|
|
35
|
-
* approval window
|
|
35
|
+
* approval window, the pinned project config, and — when the job runs one —
|
|
36
|
+
* the script's exact text, shell and timeout. Not a secret — a tripwire: a
|
|
37
|
+
* later change to the script needs re-confirmation exactly as a change to
|
|
38
|
+
* the prompt does, through this same digest, not a second mechanism.
|
|
39
|
+
*
|
|
40
|
+
* `runKind`/`script`/`wakeGate` are folded in only when the job actually has
|
|
41
|
+
* a non-`agent` `runKind`: an ordinary `agent` job's digest is byte-for-byte
|
|
42
|
+
* what it always was, so upgrading namzu never holds an already-confirmed
|
|
43
|
+
* `v:1` job that this design never touched.
|
|
36
44
|
*/
|
|
37
45
|
export declare function jobSecurityDigest(job: ScheduleJob): string;
|
|
38
46
|
/** Whether a job's confirmation still vouches for what the file says. */
|
|
@@ -40,10 +48,18 @@ export declare function confirmationHolds(job: ScheduleJob): boolean;
|
|
|
40
48
|
export declare function readJob(paths: SchedulePaths, id: string): ScheduleJob | undefined;
|
|
41
49
|
export interface JobListing {
|
|
42
50
|
readonly jobs: ScheduleJob[];
|
|
43
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Files that could not be read, with why. Never silently dropped. `id`/
|
|
53
|
+
* `name` are filled in when the raw JSON has them as strings — read
|
|
54
|
+
* leniently, without validating anything else about the file — so a job
|
|
55
|
+
* `readVersioned` refused (a newer namzu's format, a hand-broken file)
|
|
56
|
+
* is still nameable: `createJob`'s uniqueness check and `findJob` see it.
|
|
57
|
+
*/
|
|
44
58
|
readonly errors: {
|
|
45
59
|
readonly path: string;
|
|
46
60
|
readonly message: string;
|
|
61
|
+
readonly id?: string;
|
|
62
|
+
readonly name?: string;
|
|
47
63
|
}[];
|
|
48
64
|
}
|
|
49
65
|
export declare function listJobs(paths: SchedulePaths): JobListing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/schedule/store/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/schedule/store/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAA2B,KAAK,WAAW,EAAoB,MAAM,aAAa,CAAA;AASzF,eAAO,MAAM,QAAQ,QAA8B,CAAA;AAMnD,qBAAa,qBAAsB,SAAQ,KAAK;IAEnC,QAAQ,CAAC,KAAK,EAAE,MAAM;IADlC,SAAkB,IAAI,2BAA0B;gBAC3B,KAAK,EAAE,MAAM;CAGlC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,GAAG,EAAE,MAAM;IADhC,SAAkB,IAAI,8BAA6B;gBAC9B,GAAG,EAAE,MAAM;CAGhC;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAStD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAqB1D;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEjF;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KACtB,EAAE,CAAA;CACH;AAeD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAwBzD;AAYD,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA4BtE;AAsDD,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAwB7E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,MAAM,EACV,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,EACzC,GAAG,GAAE,IAAiB,GACpB,WAAW,CAsBb;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAKhE"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
* longer matches, and the daemon holds the job until someone confirms it.
|
|
16
16
|
*/
|
|
17
17
|
import { createHash } from 'node:crypto';
|
|
18
|
-
import { readdirSync, rmSync, statSync, unlinkSync } from 'node:fs';
|
|
18
|
+
import { readFileSync, readdirSync, rmSync, statSync, unlinkSync } from 'node:fs';
|
|
19
19
|
import { join } from 'node:path';
|
|
20
|
+
import { SCHEDULE_FORMAT_VERSION, jobFormatVersion } from '../types.js';
|
|
20
21
|
import { ScheduleFormatError, ensureDir, publishExclusive, readVersioned, writeJsonAtomic, } from './atomic.js';
|
|
21
22
|
export const JOB_NAME = /^[a-z0-9][a-z0-9-]{0,62}$/;
|
|
22
23
|
/** A revision marker older than this whose revision never landed was abandoned by a crashed writer. */
|
|
@@ -53,9 +54,20 @@ export function stableStringify(value) {
|
|
|
53
54
|
/**
|
|
54
55
|
* The digest of what a confirmation vouches for: the prompt, the folder and
|
|
55
56
|
* its trust, the permissions, the schedule, the model, the budget, the
|
|
56
|
-
* approval window
|
|
57
|
+
* approval window, the pinned project config, and — when the job runs one —
|
|
58
|
+
* the script's exact text, shell and timeout. Not a secret — a tripwire: a
|
|
59
|
+
* later change to the script needs re-confirmation exactly as a change to
|
|
60
|
+
* the prompt does, through this same digest, not a second mechanism.
|
|
61
|
+
*
|
|
62
|
+
* `runKind`/`script`/`wakeGate` are folded in only when the job actually has
|
|
63
|
+
* a non-`agent` `runKind`: an ordinary `agent` job's digest is byte-for-byte
|
|
64
|
+
* what it always was, so upgrading namzu never holds an already-confirmed
|
|
65
|
+
* `v:1` job that this design never touched.
|
|
57
66
|
*/
|
|
58
67
|
export function jobSecurityDigest(job) {
|
|
68
|
+
const script = job.runKind !== undefined && job.runKind !== 'agent'
|
|
69
|
+
? { runKind: job.runKind, script: job.script ?? null, wakeGate: job.wakeGate ?? null }
|
|
70
|
+
: {};
|
|
59
71
|
return createHash('sha256')
|
|
60
72
|
.update(stableStringify({
|
|
61
73
|
prompt: job.prompt,
|
|
@@ -67,6 +79,7 @@ export function jobSecurityDigest(job) {
|
|
|
67
79
|
budget: job.budget,
|
|
68
80
|
approvalTtlMs: job.approvalTtlMs,
|
|
69
81
|
projectDigest: job.projectDigest,
|
|
82
|
+
...script,
|
|
70
83
|
}))
|
|
71
84
|
.digest('hex');
|
|
72
85
|
}
|
|
@@ -75,7 +88,20 @@ export function confirmationHolds(job) {
|
|
|
75
88
|
return job.confirmation !== null && job.confirmation.digest === jobSecurityDigest(job);
|
|
76
89
|
}
|
|
77
90
|
export function readJob(paths, id) {
|
|
78
|
-
return readVersioned(paths.job(id), 'schedule-job');
|
|
91
|
+
return readVersioned(paths.job(id), 'schedule-job', SCHEDULE_FORMAT_VERSION);
|
|
92
|
+
}
|
|
93
|
+
/** `id`/`name` read straight off the raw JSON, ignoring everything else — for a file the real reader refused. */
|
|
94
|
+
function identifyLeniently(path) {
|
|
95
|
+
try {
|
|
96
|
+
const raw = JSON.parse(readFileSync(path, 'utf8'));
|
|
97
|
+
return {
|
|
98
|
+
...(typeof raw.id === 'string' ? { id: raw.id } : {}),
|
|
99
|
+
...(typeof raw.name === 'string' ? { name: raw.name } : {}),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
79
105
|
}
|
|
80
106
|
export function listJobs(paths) {
|
|
81
107
|
let names;
|
|
@@ -92,7 +118,7 @@ export function listJobs(paths) {
|
|
|
92
118
|
continue;
|
|
93
119
|
const path = join(paths.jobs, name);
|
|
94
120
|
try {
|
|
95
|
-
const job = readVersioned(path, 'schedule-job');
|
|
121
|
+
const job = readVersioned(path, 'schedule-job', SCHEDULE_FORMAT_VERSION);
|
|
96
122
|
if (job)
|
|
97
123
|
jobs.push(job);
|
|
98
124
|
}
|
|
@@ -100,27 +126,55 @@ export function listJobs(paths) {
|
|
|
100
126
|
errors.push({
|
|
101
127
|
path,
|
|
102
128
|
message: error instanceof ScheduleFormatError ? error.message : String(error),
|
|
129
|
+
...identifyLeniently(path),
|
|
103
130
|
});
|
|
104
131
|
}
|
|
105
132
|
}
|
|
106
133
|
return { jobs: jobs.sort((a, b) => a.name.localeCompare(b.name)), errors };
|
|
107
134
|
}
|
|
135
|
+
/** How to tell one of several same-named or same-prefixed READABLE jobs from the rest. */
|
|
136
|
+
function addressReadable(job) {
|
|
137
|
+
return `${job.name} (id ${job.id}) — address it with the full id ${job.id} if its name ever collides again`;
|
|
138
|
+
}
|
|
139
|
+
/** How to tell one of several same-named or same-prefixed UNREADABLE jobs from the rest. */
|
|
140
|
+
function addressUnreadable(job) {
|
|
141
|
+
return `id ${job.id ?? '(unknown, not recorded in the file)'} — its file could not be fully read (${job.message}); address it with the full id once it can be, or fix/remove the file`;
|
|
142
|
+
}
|
|
108
143
|
/** A job by exact name or by an unambiguous id prefix (four characters at least). */
|
|
109
144
|
export function findJob(paths, ref) {
|
|
110
|
-
const { jobs } = listJobs(paths);
|
|
111
|
-
const byName = jobs.
|
|
112
|
-
|
|
113
|
-
|
|
145
|
+
const { jobs, errors } = listJobs(paths);
|
|
146
|
+
const byName = jobs.filter((j) => j.name === ref);
|
|
147
|
+
const unreadableByName = errors.filter((e) => e.name === ref);
|
|
148
|
+
if (byName.length + unreadableByName.length > 1) {
|
|
149
|
+
throw ambiguity(ref, byName, unreadableByName);
|
|
150
|
+
}
|
|
151
|
+
if (byName.length === 1)
|
|
152
|
+
return byName[0];
|
|
153
|
+
if (unreadableByName.length === 1) {
|
|
154
|
+
const only = unreadableByName[0];
|
|
155
|
+
throw new Error(`"${ref}" exists but its file could not be fully read: ${only.message}`);
|
|
156
|
+
}
|
|
114
157
|
if (ref.length >= 4) {
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (
|
|
119
|
-
throw
|
|
158
|
+
const lower = ref.toLowerCase();
|
|
159
|
+
const byId = jobs.filter((j) => j.id.startsWith(lower));
|
|
160
|
+
const unreadableById = errors.filter((e) => e.id?.toLowerCase().startsWith(lower));
|
|
161
|
+
if (byId.length + unreadableById.length > 1) {
|
|
162
|
+
throw ambiguity(ref, byId, unreadableById);
|
|
163
|
+
}
|
|
164
|
+
if (byId.length === 1)
|
|
165
|
+
return byId[0];
|
|
166
|
+
if (unreadableById.length === 1) {
|
|
167
|
+
const only = unreadableById[0];
|
|
168
|
+
throw new Error(`"${ref}" matches a job whose file could not be fully read (id ${only.id}): ${only.message}`);
|
|
120
169
|
}
|
|
121
170
|
}
|
|
122
171
|
throw new ScheduleJobNotFoundError(ref);
|
|
123
172
|
}
|
|
173
|
+
function ambiguity(ref, readable, unreadable) {
|
|
174
|
+
const total = readable.length + unreadable.length;
|
|
175
|
+
const parts = [...readable.map(addressReadable), ...unreadable.map(addressUnreadable)];
|
|
176
|
+
return new Error(`"${ref}" matches ${total} jobs: ${parts.join('; ')}.`);
|
|
177
|
+
}
|
|
124
178
|
function markerDir(paths, id) {
|
|
125
179
|
return join(paths.jobs, '.revisions', id);
|
|
126
180
|
}
|
|
@@ -167,10 +221,17 @@ export function createJob(paths, job) {
|
|
|
167
221
|
if (!JOB_NAME.test(job.name)) {
|
|
168
222
|
throw new Error(`"${job.name}" is not a job name: lowercase letters, digits and dashes, starting with a letter or digit.`);
|
|
169
223
|
}
|
|
170
|
-
const { jobs } = listJobs(paths);
|
|
224
|
+
const { jobs, errors } = listJobs(paths);
|
|
171
225
|
if (jobs.some((j) => j.name === job.name)) {
|
|
172
226
|
throw new Error(`A job named "${job.name}" already exists.`);
|
|
173
227
|
}
|
|
228
|
+
// A file `readVersioned` could not fully parse is still a real job with
|
|
229
|
+
// this name as far as uniqueness goes — leniently read, so it is not
|
|
230
|
+
// invisible to this check just because the real reader refused it.
|
|
231
|
+
const unreadable = errors.find((e) => e.name === job.name);
|
|
232
|
+
if (unreadable) {
|
|
233
|
+
throw new Error(`A job named "${job.name}" already exists, in a file that could not be fully read (${unreadable.message}); rename this one, or fix/remove ${unreadable.path} first.`);
|
|
234
|
+
}
|
|
174
235
|
ensureDir(paths.jobs);
|
|
175
236
|
claimRevision(paths, job.id, 0);
|
|
176
237
|
const created = { ...job, revision: 1 };
|
|
@@ -188,10 +249,16 @@ export function updateJob(paths, id, expectedRevision, mutate, now = new Date())
|
|
|
188
249
|
if (current.revision !== expectedRevision)
|
|
189
250
|
throw new ScheduleConflictError(id);
|
|
190
251
|
const revision = claimRevision(paths, id, current.revision);
|
|
252
|
+
const mutated = mutate(current);
|
|
191
253
|
const next = {
|
|
192
|
-
...
|
|
254
|
+
...mutated,
|
|
193
255
|
id: current.id,
|
|
194
|
-
|
|
256
|
+
// A job that does not touch `runKind`/`script` keeps its file at
|
|
257
|
+
// whatever version it already read at (usually `v:1`), so an
|
|
258
|
+
// unrelated edit never forces a re-confirmation cycle a v:1 job never
|
|
259
|
+
// needed. One that gains a non-`agent` runKind is written at the
|
|
260
|
+
// current version from here on.
|
|
261
|
+
v: jobFormatVersion(mutated),
|
|
195
262
|
kind: 'schedule-job',
|
|
196
263
|
revision,
|
|
197
264
|
updatedAt: now.toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/schedule/store/jobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/schedule/store/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export function emptyState(jobId) {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
export function readState(paths, jobId) {
|
|
17
|
-
return (readVersioned(paths.stateOf(jobId), 'schedule-state') ?? emptyState(jobId));
|
|
17
|
+
return (readVersioned(paths.stateOf(jobId), 'schedule-state', 1) ?? emptyState(jobId));
|
|
18
18
|
}
|
|
19
19
|
export function writeState(paths, state) {
|
|
20
20
|
writeJsonAtomic(paths.stateOf(state.jobId), state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/schedule/store/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,OAAO;QACN,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,gBAAgB;QACtB,KAAK;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;KACpD,CAAA;AACF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAoB,EAAE,KAAa;IAC5D,OAAO,CACN,aAAa,CAAmB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/schedule/store/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,OAAO;QACN,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,gBAAgB;QACtB,KAAK;QACL,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE;KACpD,CAAA;AACF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAoB,EAAE,KAAa;IAC5D,OAAO,CACN,aAAa,CAAmB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAC/F,CAAA;AACF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAoB,EAAE,KAAuB;IACvE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACzB,GAA4C,EAC5C,KAA2C,EAC3C,GAAG,GAAG,IAAI,IAAI,EAAE;IAEhB,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC5C,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE;QAAE,OAAO,KAAK,CAAC,UAAU,CAAA;IAC7F,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,CAAA;AACtD,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAmB,KAAQ;IAC1D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAM,CAAA;AACzF,CAAC"}
|
package/dist/schedule/types.d.ts
CHANGED
|
@@ -7,7 +7,17 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { ScheduleBrowserGrant, ScheduleJobLifecycle, ScheduleSpec } from '@namzu/sdk';
|
|
9
9
|
import type { PermissionsConfig } from '../permissions/rules.js';
|
|
10
|
-
|
|
10
|
+
/** The format before `runKind`/`script`/`check-failed` existed. Always readable. */
|
|
11
|
+
export declare const SCHEDULE_FORMAT_VERSION_LEGACY = 1;
|
|
12
|
+
/**
|
|
13
|
+
* The current format. A job/run-result/history record is written at this
|
|
14
|
+
* version only when it actually carries what a `SCHEDULE_FORMAT_VERSION_LEGACY`
|
|
15
|
+
* reader cannot interpret (`runKind !== 'agent'`, a `script` block, a
|
|
16
|
+
* `check-failed` status, `gateResult` or `scriptOutput`); everything else is
|
|
17
|
+
* still written at the legacy version, unchanged, so an old namzu keeps
|
|
18
|
+
* reading every job and record it always could.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SCHEDULE_FORMAT_VERSION = 2;
|
|
11
21
|
/** What a scheduled run may do. Required on every job; there is no default. */
|
|
12
22
|
export interface SchedulePermissionSet {
|
|
13
23
|
/** A call no rule covers: `park` (wait for the operator), `deny`, or `allow`. */
|
|
@@ -47,8 +57,10 @@ export interface ProjectDigest {
|
|
|
47
57
|
readonly sections: readonly string[];
|
|
48
58
|
}
|
|
49
59
|
export type ConfirmationSurface = 'cli-tty' | 'tui' | 'tool-confirmed' | 'cli-noninteractive';
|
|
60
|
+
/** What a run does. Absent (a `v:1` file): `'agent'`. */
|
|
61
|
+
export type ScheduleRunKind = 'agent' | 'script' | 'script+agent';
|
|
50
62
|
export interface ScheduleJob {
|
|
51
|
-
readonly v: 1;
|
|
63
|
+
readonly v: 1 | 2;
|
|
52
64
|
readonly kind: 'schedule-job';
|
|
53
65
|
readonly id: string;
|
|
54
66
|
readonly name: string;
|
|
@@ -59,7 +71,24 @@ export interface ScheduleJob {
|
|
|
59
71
|
readonly surface: 'cli' | 'tui' | 'tool';
|
|
60
72
|
readonly sessionId?: string;
|
|
61
73
|
};
|
|
74
|
+
/** The operator's instruction to the model. Empty for a pure `script` job. */
|
|
62
75
|
readonly prompt: string;
|
|
76
|
+
/** What this job does. Absent on a `v:1` file, which is read as `'agent'`. */
|
|
77
|
+
readonly runKind?: ScheduleRunKind;
|
|
78
|
+
/** Present for `runKind: 'script'` and as the wake-gate for `'script+agent'`. */
|
|
79
|
+
readonly script?: {
|
|
80
|
+
/** The confirmed script text, verbatim. */
|
|
81
|
+
readonly body: string;
|
|
82
|
+
/** No default: chosen when the script was proposed. */
|
|
83
|
+
readonly shell: 'bash' | 'sh';
|
|
84
|
+
/** Separate from `budget.timeoutMs`. */
|
|
85
|
+
readonly timeoutMs: number;
|
|
86
|
+
};
|
|
87
|
+
/** Present only for `runKind: 'script+agent'`. */
|
|
88
|
+
readonly wakeGate?: {
|
|
89
|
+
/** Cap on the gate's `context` string, cut with an explicit marker. */
|
|
90
|
+
readonly maxContextChars: number;
|
|
91
|
+
};
|
|
63
92
|
readonly folder: {
|
|
64
93
|
readonly path: string;
|
|
65
94
|
readonly canonical: string;
|
|
@@ -72,7 +101,8 @@ export interface ScheduleJob {
|
|
|
72
101
|
readonly schedule: ScheduleSpec;
|
|
73
102
|
readonly permissions: SchedulePermissionSet;
|
|
74
103
|
readonly budget: ScheduleBudget;
|
|
75
|
-
|
|
104
|
+
/** Required for agent and script+agent jobs; unused and absent on new pure script jobs. */
|
|
105
|
+
readonly model?: {
|
|
76
106
|
readonly provider: string;
|
|
77
107
|
readonly model?: string;
|
|
78
108
|
readonly effort?: string;
|
|
@@ -106,8 +136,36 @@ export interface ScheduleJob {
|
|
|
106
136
|
readonly digest: string;
|
|
107
137
|
} | null;
|
|
108
138
|
}
|
|
109
|
-
export type ScheduleRunStatus = 'running' | 'completed' | 'failed' | 'awaiting-approval' | 'approval-expired' | 'interrupted' | 'timed-out' | 'blocked-config' | 'cancelled'
|
|
139
|
+
export type ScheduleRunStatus = 'running' | 'completed' | 'failed' | 'awaiting-approval' | 'approval-expired' | 'interrupted' | 'timed-out' | 'blocked-config' | 'cancelled'
|
|
140
|
+
/**
|
|
141
|
+
* `runKind: 'script'` or `'script+agent'` only: the script (or the
|
|
142
|
+
* wake-gate) itself malfunctioned — non-zero exit, its own timeout, or
|
|
143
|
+
* stdout that is not the wake-gate's contract. Independent of whether an
|
|
144
|
+
* agent phase would have succeeded.
|
|
145
|
+
*/
|
|
146
|
+
| 'check-failed';
|
|
147
|
+
/** `v:2` only when the job actually uses what a `v:1` reader cannot interpret. */
|
|
148
|
+
export declare function jobFormatVersion(job: Pick<ScheduleJob, 'runKind'>): 1 | 2;
|
|
149
|
+
/** `v:2` only when the record carries what a `v:1` reader cannot interpret. */
|
|
150
|
+
export declare function runResultVersion(fields: {
|
|
151
|
+
readonly status: ScheduleRunStatus;
|
|
152
|
+
readonly gateResult?: unknown;
|
|
153
|
+
readonly scriptOutput?: unknown;
|
|
154
|
+
}): 1 | 2;
|
|
110
155
|
export type ScheduleRunTrigger = 'scheduled' | 'late' | 'catch-up' | 'manual';
|
|
156
|
+
/**
|
|
157
|
+
* Tool calls of one run that were refused (never ran) or failed (ran and
|
|
158
|
+
* returned an error): how many, and the first one's tool and reason, in one
|
|
159
|
+
* line. Written by the CLI, but a refusal's reason may quote the command the
|
|
160
|
+
* model wrote.
|
|
161
|
+
*/
|
|
162
|
+
export interface ScheduleCallTally {
|
|
163
|
+
readonly count: number;
|
|
164
|
+
readonly first: {
|
|
165
|
+
readonly tool: string;
|
|
166
|
+
readonly reason: string;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
111
169
|
export interface ActiveRun {
|
|
112
170
|
readonly runId: string;
|
|
113
171
|
readonly key: string;
|
|
@@ -153,6 +211,10 @@ export interface ScheduleJobState {
|
|
|
153
211
|
readonly status: ScheduleRunStatus;
|
|
154
212
|
readonly endedAt: string;
|
|
155
213
|
readonly sessionId?: string;
|
|
214
|
+
/** How many of its calls were refused, when any were. */
|
|
215
|
+
readonly refusedCalls?: number;
|
|
216
|
+
/** How many of its calls failed, when any did. */
|
|
217
|
+
readonly failedCalls?: number;
|
|
156
218
|
};
|
|
157
219
|
readonly counters: {
|
|
158
220
|
readonly runs: number;
|
|
@@ -171,7 +233,7 @@ export interface ScheduleJobState {
|
|
|
171
233
|
readonly archivedSessions?: readonly string[];
|
|
172
234
|
}
|
|
173
235
|
export type ScheduleHistoryRecord = {
|
|
174
|
-
readonly v: 1;
|
|
236
|
+
readonly v: 1 | 2;
|
|
175
237
|
readonly kind: 'run';
|
|
176
238
|
readonly at: string;
|
|
177
239
|
readonly runId: string;
|
|
@@ -192,6 +254,18 @@ export type ScheduleHistoryRecord = {
|
|
|
192
254
|
readonly costUsd?: number;
|
|
193
255
|
};
|
|
194
256
|
readonly warnings?: readonly string[];
|
|
257
|
+
readonly refusedCalls?: ScheduleCallTally;
|
|
258
|
+
readonly failedCalls?: ScheduleCallTally;
|
|
259
|
+
/** `runKind: 'script+agent'` only: what its wake-gate decided. */
|
|
260
|
+
readonly gateResult?: {
|
|
261
|
+
readonly wake: boolean;
|
|
262
|
+
readonly contextChars: number;
|
|
263
|
+
};
|
|
264
|
+
/** `runKind: 'script'` or `'script+agent'` only: the script's captured output, capped. */
|
|
265
|
+
readonly scriptOutput?: {
|
|
266
|
+
readonly stdout: string;
|
|
267
|
+
readonly stderr: string;
|
|
268
|
+
};
|
|
195
269
|
} | {
|
|
196
270
|
readonly v: 1;
|
|
197
271
|
readonly kind: 'skip';
|
|
@@ -222,7 +296,7 @@ export type ScheduleHistoryRecord = {
|
|
|
222
296
|
};
|
|
223
297
|
/** What a fire child leaves behind. Authoritative over its exit code. */
|
|
224
298
|
export interface ScheduleRunResult {
|
|
225
|
-
readonly v: 1;
|
|
299
|
+
readonly v: 1 | 2;
|
|
226
300
|
readonly kind: 'schedule-run-result';
|
|
227
301
|
readonly runId: string;
|
|
228
302
|
readonly jobId: string;
|
|
@@ -250,6 +324,24 @@ export interface ScheduleRunResult {
|
|
|
250
324
|
};
|
|
251
325
|
readonly credentialSource?: string;
|
|
252
326
|
readonly warnings?: readonly string[];
|
|
327
|
+
/**
|
|
328
|
+
* Calls the run's permissions refused. The status says how the turn
|
|
329
|
+
* ended; a `completed` run with refused calls did not do all it was
|
|
330
|
+
* asked, and says so wherever the run is shown.
|
|
331
|
+
*/
|
|
332
|
+
readonly refusedCalls?: ScheduleCallTally;
|
|
333
|
+
/** Calls that ran and returned an error. */
|
|
334
|
+
readonly failedCalls?: ScheduleCallTally;
|
|
335
|
+
/** `runKind: 'script+agent'` only: what its wake-gate decided. */
|
|
336
|
+
readonly gateResult?: {
|
|
337
|
+
readonly wake: boolean;
|
|
338
|
+
readonly contextChars: number;
|
|
339
|
+
};
|
|
340
|
+
/** `runKind: 'script'` or `'script+agent'` only: the script's captured output, capped. */
|
|
341
|
+
readonly scriptOutput?: {
|
|
342
|
+
readonly stdout: string;
|
|
343
|
+
readonly stderr: string;
|
|
344
|
+
};
|
|
253
345
|
readonly startedAt: string;
|
|
254
346
|
readonly endedAt?: string;
|
|
255
347
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schedule/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACrC,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;IAC7C,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,iDAAiD;IACjD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClD,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG,QAAQ,CAAA;IAC3D;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CACvC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CAClC;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAChD,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,KAAK,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAE7F,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schedule/types.ts"],"names":[],"mappings":"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"}
|
package/dist/schedule/types.js
CHANGED
|
@@ -5,5 +5,29 @@
|
|
|
5
5
|
* Every file carries `v` and `kind`. A reader that finds a `v` it does not
|
|
6
6
|
* know refuses and names the file; it never rewrites it.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
/** The format before `runKind`/`script`/`check-failed` existed. Always readable. */
|
|
9
|
+
export const SCHEDULE_FORMAT_VERSION_LEGACY = 1;
|
|
10
|
+
/**
|
|
11
|
+
* The current format. A job/run-result/history record is written at this
|
|
12
|
+
* version only when it actually carries what a `SCHEDULE_FORMAT_VERSION_LEGACY`
|
|
13
|
+
* reader cannot interpret (`runKind !== 'agent'`, a `script` block, a
|
|
14
|
+
* `check-failed` status, `gateResult` or `scriptOutput`); everything else is
|
|
15
|
+
* still written at the legacy version, unchanged, so an old namzu keeps
|
|
16
|
+
* reading every job and record it always could.
|
|
17
|
+
*/
|
|
18
|
+
export const SCHEDULE_FORMAT_VERSION = 2;
|
|
19
|
+
/** `v:2` only when the job actually uses what a `v:1` reader cannot interpret. */
|
|
20
|
+
export function jobFormatVersion(job) {
|
|
21
|
+
return job.runKind !== undefined && job.runKind !== 'agent'
|
|
22
|
+
? SCHEDULE_FORMAT_VERSION
|
|
23
|
+
: SCHEDULE_FORMAT_VERSION_LEGACY;
|
|
24
|
+
}
|
|
25
|
+
/** `v:2` only when the record carries what a `v:1` reader cannot interpret. */
|
|
26
|
+
export function runResultVersion(fields) {
|
|
27
|
+
return fields.status === 'check-failed' ||
|
|
28
|
+
fields.gateResult !== undefined ||
|
|
29
|
+
fields.scriptOutput !== undefined
|
|
30
|
+
? SCHEDULE_FORMAT_VERSION
|
|
31
|
+
: SCHEDULE_FORMAT_VERSION_LEGACY;
|
|
32
|
+
}
|
|
9
33
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schedule/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schedule/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,oFAAoF;AACpF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAA;AAC/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAuIxC,kFAAkF;AAClF,MAAM,UAAU,gBAAgB,CAAC,GAAiC;IACjE,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO;QAC1D,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,8BAA8B,CAAA;AAClC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,MAIhC;IACA,OAAO,MAAM,CAAC,MAAM,KAAK,cAAc;QACtC,MAAM,CAAC,UAAU,KAAK,SAAS;QAC/B,MAAM,CAAC,YAAY,KAAK,SAAS;QACjC,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,8BAA8B,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text-mode schedule views write directly to a terminal. Keep the source
|
|
3
|
+
* readable, but show controls and invisible formatting characters as code
|
|
4
|
+
* points so a script cannot clear or reorder its own confirmation screen.
|
|
5
|
+
*
|
|
6
|
+
* The escape form is unambiguous: when it is needed, literal backslashes are
|
|
7
|
+
* doubled as well. A source spelling of `\u{001b}` therefore looks different
|
|
8
|
+
* from an actual ESC byte. Newlines remain newlines so multi-line scripts can
|
|
9
|
+
* still be reviewed line by line. Stored jobs and JSON output stay untouched.
|
|
10
|
+
*/
|
|
11
|
+
export declare const VISIBLE_SOURCE_NOTE = "Hidden/control characters below are shown as \\u{CODEPOINT}; literal backslashes are doubled. The stored source runs, not this display form.";
|
|
12
|
+
export declare function visibleScheduleSource(source: string): {
|
|
13
|
+
readonly text: string;
|
|
14
|
+
readonly escaped: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** For a human-facing message only. Keep the original string in storage/JSON. */
|
|
17
|
+
export declare function visibleScheduleMessage(source: string): string;
|
|
18
|
+
//# sourceMappingURL=visible-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visible-source.d.ts","sourceRoot":"","sources":["../../src/schedule/visible-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,mBAAmB,iJAC+G,CAAA;AAuB/I,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB,CAoBA;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG7D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text-mode schedule views write directly to a terminal. Keep the source
|
|
3
|
+
* readable, but show controls and invisible formatting characters as code
|
|
4
|
+
* points so a script cannot clear or reorder its own confirmation screen.
|
|
5
|
+
*
|
|
6
|
+
* The escape form is unambiguous: when it is needed, literal backslashes are
|
|
7
|
+
* doubled as well. A source spelling of `\u{001b}` therefore looks different
|
|
8
|
+
* from an actual ESC byte. Newlines remain newlines so multi-line scripts can
|
|
9
|
+
* still be reviewed line by line. Stored jobs and JSON output stay untouched.
|
|
10
|
+
*/
|
|
11
|
+
export const VISIBLE_SOURCE_NOTE = 'Hidden/control characters below are shown as \\u{CODEPOINT}; literal backslashes are doubled. The stored source runs, not this display form.';
|
|
12
|
+
/** A literal source escape that would otherwise look like a projected code point. */
|
|
13
|
+
const LOOKS_LIKE_ESCAPE = /\\u\{[0-9a-fA-F]{4,6}\}/;
|
|
14
|
+
function hidden(code) {
|
|
15
|
+
if (code <= 0x1f)
|
|
16
|
+
return code !== 0x0a;
|
|
17
|
+
return ((code >= 0x7f && code <= 0x9f) ||
|
|
18
|
+
code === 0xad ||
|
|
19
|
+
code === 0x61c ||
|
|
20
|
+
code === 0x180e ||
|
|
21
|
+
(code >= 0x200b && code <= 0x200f) ||
|
|
22
|
+
(code >= 0x2028 && code <= 0x202e) ||
|
|
23
|
+
(code >= 0x2060 && code <= 0x206f) ||
|
|
24
|
+
(code >= 0xfe00 && code <= 0xfe0f) ||
|
|
25
|
+
code === 0xfeff ||
|
|
26
|
+
(code >= 0xfff9 && code <= 0xfffb) ||
|
|
27
|
+
(code >= 0xe0000 && code <= 0xe007f) ||
|
|
28
|
+
(code >= 0xe0100 && code <= 0xe01ef));
|
|
29
|
+
}
|
|
30
|
+
export function visibleScheduleSource(source) {
|
|
31
|
+
let escaped = LOOKS_LIKE_ESCAPE.test(source);
|
|
32
|
+
if (!escaped) {
|
|
33
|
+
for (const char of source) {
|
|
34
|
+
if (hidden(char.codePointAt(0) ?? 0)) {
|
|
35
|
+
escaped = true;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (!escaped)
|
|
41
|
+
return { text: source, escaped: false };
|
|
42
|
+
let text = '';
|
|
43
|
+
for (const char of source) {
|
|
44
|
+
const code = char.codePointAt(0) ?? 0;
|
|
45
|
+
if (char === '\\')
|
|
46
|
+
text += '\\\\';
|
|
47
|
+
else if (hidden(code))
|
|
48
|
+
text += `\\u{${code.toString(16).padStart(4, '0')}}`;
|
|
49
|
+
else
|
|
50
|
+
text += char;
|
|
51
|
+
}
|
|
52
|
+
return { text, escaped: true };
|
|
53
|
+
}
|
|
54
|
+
/** For a human-facing message only. Keep the original string in storage/JSON. */
|
|
55
|
+
export function visibleScheduleMessage(source) {
|
|
56
|
+
const view = visibleScheduleSource(source);
|
|
57
|
+
return view.escaped ? `${VISIBLE_SOURCE_NOTE}\n${view.text}` : view.text;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=visible-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visible-source.js","sourceRoot":"","sources":["../../src/schedule/visible-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC/B,8IAA8I,CAAA;AAE/I,qFAAqF;AACrF,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAEnD,SAAS,MAAM,CAAC,IAAY;IAC3B,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,KAAK,IAAI,CAAA;IACtC,OAAO,CACN,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;QAC9B,IAAI,KAAK,IAAI;QACb,IAAI,KAAK,KAAK;QACd,IAAI,KAAK,MAAM;QACf,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,IAAI,KAAK,MAAM;QACf,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC;QACpC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,CACpC,CAAA;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAInD,IAAI,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtC,OAAO,GAAG,IAAI,CAAA;gBACd,MAAK;YACN,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAErD,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,IAAI,KAAK,IAAI;YAAE,IAAI,IAAI,MAAM,CAAA;aAC5B,IAAI,MAAM,CAAC,IAAI,CAAC;YAAE,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;;YACtE,IAAI,IAAI,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC/B,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACpD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,mBAAmB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AACzE,CAAC"}
|