@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.
Files changed (311) hide show
  1. package/CHANGELOG.md +296 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +5 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts +20 -2
  6. package/dist/commands/acp.d.ts.map +1 -1
  7. package/dist/commands/acp.js +42 -5
  8. package/dist/commands/acp.js.map +1 -1
  9. package/dist/commands/drain.d.ts.map +1 -1
  10. package/dist/commands/drain.js +2 -1
  11. package/dist/commands/drain.js.map +1 -1
  12. package/dist/commands/exec-json.d.ts.map +1 -1
  13. package/dist/commands/exec-json.js +24 -1
  14. package/dist/commands/exec-json.js.map +1 -1
  15. package/dist/commands/exec.d.ts.map +1 -1
  16. package/dist/commands/exec.js +5 -1
  17. package/dist/commands/exec.js.map +1 -1
  18. package/dist/commands/prior-messages.d.ts.map +1 -1
  19. package/dist/commands/prior-messages.js +42 -2
  20. package/dist/commands/prior-messages.js.map +1 -1
  21. package/dist/commands/schedule.d.ts.map +1 -1
  22. package/dist/commands/schedule.js +7 -5
  23. package/dist/commands/schedule.js.map +1 -1
  24. package/dist/config/composer-triggers.d.ts +41 -0
  25. package/dist/config/composer-triggers.d.ts.map +1 -0
  26. package/dist/config/composer-triggers.js +80 -0
  27. package/dist/config/composer-triggers.js.map +1 -0
  28. package/dist/config/load.d.ts.map +1 -1
  29. package/dist/config/load.js +58 -0
  30. package/dist/config/load.js.map +1 -1
  31. package/dist/config/schema.d.ts +34 -0
  32. package/dist/config/schema.d.ts.map +1 -1
  33. package/dist/config/schema.js.map +1 -1
  34. package/dist/context/doctrine.d.ts +3 -3
  35. package/dist/context/doctrine.d.ts.map +1 -1
  36. package/dist/context/doctrine.js +3 -3
  37. package/dist/context/doctrine.js.map +1 -1
  38. package/dist/context/environment.d.ts +26 -3
  39. package/dist/context/environment.d.ts.map +1 -1
  40. package/dist/context/environment.js +68 -9
  41. package/dist/context/environment.js.map +1 -1
  42. package/dist/context/runtime-message.d.ts.map +1 -1
  43. package/dist/context/runtime-message.js +4 -0
  44. package/dist/context/runtime-message.js.map +1 -1
  45. package/dist/integrations/mcp/servers.d.ts +72 -5
  46. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  47. package/dist/integrations/mcp/servers.js +144 -23
  48. package/dist/integrations/mcp/servers.js.map +1 -1
  49. package/dist/integrations/notifications/desktop.d.ts +2 -0
  50. package/dist/integrations/notifications/desktop.d.ts.map +1 -1
  51. package/dist/integrations/notifications/desktop.js +6 -5
  52. package/dist/integrations/notifications/desktop.js.map +1 -1
  53. package/dist/integrations/plugins/runtime.d.ts +10 -2
  54. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  55. package/dist/integrations/plugins/runtime.js +16 -29
  56. package/dist/integrations/plugins/runtime.js.map +1 -1
  57. package/dist/integrations/providers/harness-credentials.d.ts +9 -4
  58. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
  59. package/dist/integrations/providers/harness-credentials.js +16 -8
  60. package/dist/integrations/providers/harness-credentials.js.map +1 -1
  61. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  62. package/dist/integrations/resident/session-step.js +2 -1
  63. package/dist/integrations/resident/session-step.js.map +1 -1
  64. package/dist/integrations/sessions/store.d.ts.map +1 -1
  65. package/dist/integrations/sessions/store.js +20 -2
  66. package/dist/integrations/sessions/store.js.map +1 -1
  67. package/dist/integrations/subagents/NamzuCliAgent.d.ts +8 -0
  68. package/dist/integrations/subagents/NamzuCliAgent.d.ts.map +1 -0
  69. package/dist/integrations/subagents/NamzuCliAgent.js +9 -0
  70. package/dist/integrations/subagents/NamzuCliAgent.js.map +1 -0
  71. package/dist/integrations/subagents/runtime.d.ts +5 -4
  72. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  73. package/dist/integrations/subagents/runtime.js +46 -11
  74. package/dist/integrations/subagents/runtime.js.map +1 -1
  75. package/dist/integrations/web/open-url.d.ts +24 -0
  76. package/dist/integrations/web/open-url.d.ts.map +1 -0
  77. package/dist/integrations/web/open-url.js +73 -0
  78. package/dist/integrations/web/open-url.js.map +1 -0
  79. package/dist/integrations/web/search.d.ts.map +1 -1
  80. package/dist/integrations/web/search.js +8 -6
  81. package/dist/integrations/web/search.js.map +1 -1
  82. package/dist/permissions/rules.d.ts +5 -1
  83. package/dist/permissions/rules.d.ts.map +1 -1
  84. package/dist/permissions/rules.js +85 -3
  85. package/dist/permissions/rules.js.map +1 -1
  86. package/dist/schedule/build.d.ts +26 -2
  87. package/dist/schedule/build.d.ts.map +1 -1
  88. package/dist/schedule/build.js +139 -20
  89. package/dist/schedule/build.js.map +1 -1
  90. package/dist/schedule/changes.d.ts +6 -0
  91. package/dist/schedule/changes.d.ts.map +1 -1
  92. package/dist/schedule/changes.js +23 -0
  93. package/dist/schedule/changes.js.map +1 -1
  94. package/dist/schedule/commands/add.d.ts +1 -1
  95. package/dist/schedule/commands/add.d.ts.map +1 -1
  96. package/dist/schedule/commands/add.js +188 -54
  97. package/dist/schedule/commands/add.js.map +1 -1
  98. package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
  99. package/dist/schedule/commands/lifecycle.js +2 -1
  100. package/dist/schedule/commands/lifecycle.js.map +1 -1
  101. package/dist/schedule/commands/list.d.ts +2 -0
  102. package/dist/schedule/commands/list.d.ts.map +1 -1
  103. package/dist/schedule/commands/list.js +69 -20
  104. package/dist/schedule/commands/list.js.map +1 -1
  105. package/dist/schedule/daemon/daemon.d.ts +1 -1
  106. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  107. package/dist/schedule/daemon/daemon.js +22 -5
  108. package/dist/schedule/daemon/daemon.js.map +1 -1
  109. package/dist/schedule/daemon/notify.d.ts +29 -2
  110. package/dist/schedule/daemon/notify.d.ts.map +1 -1
  111. package/dist/schedule/daemon/notify.js +71 -2
  112. package/dist/schedule/daemon/notify.js.map +1 -1
  113. package/dist/schedule/env.d.ts +8 -4
  114. package/dist/schedule/env.d.ts.map +1 -1
  115. package/dist/schedule/env.js +13 -6
  116. package/dist/schedule/env.js.map +1 -1
  117. package/dist/schedule/fire/calls.d.ts +49 -0
  118. package/dist/schedule/fire/calls.d.ts.map +1 -0
  119. package/dist/schedule/fire/calls.js +114 -0
  120. package/dist/schedule/fire/calls.js.map +1 -0
  121. package/dist/schedule/fire/fire.d.ts +1 -1
  122. package/dist/schedule/fire/fire.d.ts.map +1 -1
  123. package/dist/schedule/fire/fire.js +209 -15
  124. package/dist/schedule/fire/fire.js.map +1 -1
  125. package/dist/schedule/fire/result.d.ts +1 -1
  126. package/dist/schedule/fire/result.d.ts.map +1 -1
  127. package/dist/schedule/fire/result.js +2 -1
  128. package/dist/schedule/fire/result.js.map +1 -1
  129. package/dist/schedule/fire/run-script.d.ts +46 -0
  130. package/dist/schedule/fire/run-script.d.ts.map +1 -0
  131. package/dist/schedule/fire/run-script.js +81 -0
  132. package/dist/schedule/fire/run-script.js.map +1 -0
  133. package/dist/schedule/fire/unattended-note.d.ts +8 -0
  134. package/dist/schedule/fire/unattended-note.d.ts.map +1 -1
  135. package/dist/schedule/fire/unattended-note.js +5 -0
  136. package/dist/schedule/fire/unattended-note.js.map +1 -1
  137. package/dist/schedule/fire/wake-gate.d.ts +39 -0
  138. package/dist/schedule/fire/wake-gate.d.ts.map +1 -0
  139. package/dist/schedule/fire/wake-gate.js +90 -0
  140. package/dist/schedule/fire/wake-gate.js.map +1 -0
  141. package/dist/schedule/floor.d.ts +28 -8
  142. package/dist/schedule/floor.d.ts.map +1 -1
  143. package/dist/schedule/floor.js +624 -114
  144. package/dist/schedule/floor.js.map +1 -1
  145. package/dist/schedule/policy.d.ts +40 -0
  146. package/dist/schedule/policy.d.ts.map +1 -1
  147. package/dist/schedule/policy.js +36 -0
  148. package/dist/schedule/policy.js.map +1 -1
  149. package/dist/schedule/script-check.d.ts +53 -0
  150. package/dist/schedule/script-check.d.ts.map +1 -0
  151. package/dist/schedule/script-check.js +145 -0
  152. package/dist/schedule/script-check.js.map +1 -0
  153. package/dist/schedule/script-shell.d.ts +3 -0
  154. package/dist/schedule/script-shell.d.ts.map +1 -0
  155. package/dist/schedule/script-shell.js +5 -0
  156. package/dist/schedule/script-shell.js.map +1 -0
  157. package/dist/schedule/service/index.d.ts +1 -1
  158. package/dist/schedule/service/index.d.ts.map +1 -1
  159. package/dist/schedule/service/index.js +20 -11
  160. package/dist/schedule/service/index.js.map +1 -1
  161. package/dist/schedule/service/manifest.js +1 -1
  162. package/dist/schedule/service/manifest.js.map +1 -1
  163. package/dist/schedule/service/windows-task.d.ts +7 -0
  164. package/dist/schedule/service/windows-task.d.ts.map +1 -1
  165. package/dist/schedule/service/windows-task.js +65 -0
  166. package/dist/schedule/service/windows-task.js.map +1 -1
  167. package/dist/schedule/service/wsl.d.ts +13 -1
  168. package/dist/schedule/service/wsl.d.ts.map +1 -1
  169. package/dist/schedule/service/wsl.js +16 -6
  170. package/dist/schedule/service/wsl.js.map +1 -1
  171. package/dist/schedule/store/atomic.d.ts +5 -2
  172. package/dist/schedule/store/atomic.d.ts.map +1 -1
  173. package/dist/schedule/store/atomic.js +7 -4
  174. package/dist/schedule/store/atomic.js.map +1 -1
  175. package/dist/schedule/store/claims.js +1 -1
  176. package/dist/schedule/store/claims.js.map +1 -1
  177. package/dist/schedule/store/history.d.ts +1 -1
  178. package/dist/schedule/store/history.d.ts.map +1 -1
  179. package/dist/schedule/store/history.js +4 -1
  180. package/dist/schedule/store/history.js.map +1 -1
  181. package/dist/schedule/store/jobs.d.ts +19 -3
  182. package/dist/schedule/store/jobs.d.ts.map +1 -1
  183. package/dist/schedule/store/jobs.js +83 -16
  184. package/dist/schedule/store/jobs.js.map +1 -1
  185. package/dist/schedule/store/state.js +1 -1
  186. package/dist/schedule/store/state.js.map +1 -1
  187. package/dist/schedule/types.d.ts +98 -6
  188. package/dist/schedule/types.d.ts.map +1 -1
  189. package/dist/schedule/types.js +25 -1
  190. package/dist/schedule/types.js.map +1 -1
  191. package/dist/schedule/visible-source.d.ts +18 -0
  192. package/dist/schedule/visible-source.d.ts.map +1 -0
  193. package/dist/schedule/visible-source.js +59 -0
  194. package/dist/schedule/visible-source.js.map +1 -0
  195. package/dist/skills/directory.d.ts +38 -0
  196. package/dist/skills/directory.d.ts.map +1 -0
  197. package/dist/skills/directory.js +51 -0
  198. package/dist/skills/directory.js.map +1 -0
  199. package/dist/test-support/toolset.d.ts +23 -0
  200. package/dist/test-support/toolset.d.ts.map +1 -0
  201. package/dist/test-support/toolset.js +27 -0
  202. package/dist/test-support/toolset.js.map +1 -0
  203. package/dist/tui/App.d.ts.map +1 -1
  204. package/dist/tui/App.js +343 -64
  205. package/dist/tui/App.js.map +1 -1
  206. package/dist/tui/ChoicePicker.d.ts +2 -0
  207. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  208. package/dist/tui/ChoicePicker.js +10 -2
  209. package/dist/tui/ChoicePicker.js.map +1 -1
  210. package/dist/tui/Composer.d.ts +62 -3
  211. package/dist/tui/Composer.d.ts.map +1 -1
  212. package/dist/tui/Composer.js +162 -25
  213. package/dist/tui/Composer.js.map +1 -1
  214. package/dist/tui/ComposerFrame.d.ts +1 -1
  215. package/dist/tui/ComposerFrame.js +3 -3
  216. package/dist/tui/ComposerFrame.js.map +1 -1
  217. package/dist/tui/EffortSlider.d.ts +8 -9
  218. package/dist/tui/EffortSlider.d.ts.map +1 -1
  219. package/dist/tui/EffortSlider.js +15 -12
  220. package/dist/tui/EffortSlider.js.map +1 -1
  221. package/dist/tui/PermissionOverlay.d.ts +13 -1
  222. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  223. package/dist/tui/PermissionOverlay.js +26 -4
  224. package/dist/tui/PermissionOverlay.js.map +1 -1
  225. package/dist/tui/StatusBar.d.ts +12 -12
  226. package/dist/tui/StatusBar.d.ts.map +1 -1
  227. package/dist/tui/StatusBar.js +15 -15
  228. package/dist/tui/StatusBar.js.map +1 -1
  229. package/dist/tui/agent.d.ts +73 -12
  230. package/dist/tui/agent.d.ts.map +1 -1
  231. package/dist/tui/agent.js +430 -180
  232. package/dist/tui/agent.js.map +1 -1
  233. package/dist/tui/hypermode.d.ts +37 -0
  234. package/dist/tui/hypermode.d.ts.map +1 -0
  235. package/dist/tui/hypermode.js +58 -0
  236. package/dist/tui/hypermode.js.map +1 -0
  237. package/dist/tui/open-browser.d.ts +29 -1
  238. package/dist/tui/open-browser.d.ts.map +1 -1
  239. package/dist/tui/open-browser.js +83 -11
  240. package/dist/tui/open-browser.js.map +1 -1
  241. package/dist/tui/permission-review.d.ts +11 -2
  242. package/dist/tui/permission-review.d.ts.map +1 -1
  243. package/dist/tui/permission-review.js +176 -19
  244. package/dist/tui/permission-review.js.map +1 -1
  245. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  246. package/dist/tui/schedule/host-commands.js +95 -33
  247. package/dist/tui/schedule/host-commands.js.map +1 -1
  248. package/dist/tui/schedule/integration.d.ts +6 -2
  249. package/dist/tui/schedule/integration.d.ts.map +1 -1
  250. package/dist/tui/schedule/integration.js +3 -1
  251. package/dist/tui/schedule/integration.js.map +1 -1
  252. package/dist/tui/schedule/resume.d.ts.map +1 -1
  253. package/dist/tui/schedule/resume.js +10 -1
  254. package/dist/tui/schedule/resume.js.map +1 -1
  255. package/dist/tui/schedule/tool-host.d.ts +18 -1
  256. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  257. package/dist/tui/schedule/tool-host.js +384 -84
  258. package/dist/tui/schedule/tool-host.js.map +1 -1
  259. package/dist/tui/slashCommands.d.ts +23 -5
  260. package/dist/tui/slashCommands.d.ts.map +1 -1
  261. package/dist/tui/slashCommands.js +80 -31
  262. package/dist/tui/slashCommands.js.map +1 -1
  263. package/dist/tui/theme.d.ts +10 -4
  264. package/dist/tui/theme.d.ts.map +1 -1
  265. package/dist/tui/theme.js +4 -3
  266. package/dist/tui/theme.js.map +1 -1
  267. package/dist/tui/triggers/analyze.d.ts +57 -0
  268. package/dist/tui/triggers/analyze.d.ts.map +1 -0
  269. package/dist/tui/triggers/analyze.js +221 -0
  270. package/dist/tui/triggers/analyze.js.map +1 -0
  271. package/dist/tui/triggers/context-text.d.ts +21 -0
  272. package/dist/tui/triggers/context-text.d.ts.map +1 -0
  273. package/dist/tui/triggers/context-text.js +44 -0
  274. package/dist/tui/triggers/context-text.js.map +1 -0
  275. package/dist/tui/triggers/copy.d.ts +38 -0
  276. package/dist/tui/triggers/copy.d.ts.map +1 -0
  277. package/dist/tui/triggers/copy.js +163 -0
  278. package/dist/tui/triggers/copy.js.map +1 -0
  279. package/dist/tui/triggers/detect.d.ts +83 -0
  280. package/dist/tui/triggers/detect.d.ts.map +1 -0
  281. package/dist/tui/triggers/detect.js +295 -0
  282. package/dist/tui/triggers/detect.js.map +1 -0
  283. package/dist/tui/triggers/fold.d.ts +34 -0
  284. package/dist/tui/triggers/fold.d.ts.map +1 -0
  285. package/dist/tui/triggers/fold.js +44 -0
  286. package/dist/tui/triggers/fold.js.map +1 -0
  287. package/dist/tui/triggers/pattern.d.ts +66 -0
  288. package/dist/tui/triggers/pattern.d.ts.map +1 -0
  289. package/dist/tui/triggers/pattern.js +243 -0
  290. package/dist/tui/triggers/pattern.js.map +1 -0
  291. package/dist/tui/triggers/provenance.d.ts +58 -0
  292. package/dist/tui/triggers/provenance.d.ts.map +1 -0
  293. package/dist/tui/triggers/provenance.js +98 -0
  294. package/dist/tui/triggers/provenance.js.map +1 -0
  295. package/dist/tui/triggers/registry.d.ts +113 -0
  296. package/dist/tui/triggers/registry.d.ts.map +1 -0
  297. package/dist/tui/triggers/registry.js +164 -0
  298. package/dist/tui/triggers/registry.js.map +1 -0
  299. package/dist/tui/triggers/setting.d.ts +18 -0
  300. package/dist/tui/triggers/setting.d.ts.map +1 -0
  301. package/dist/tui/triggers/setting.js +61 -0
  302. package/dist/tui/triggers/setting.js.map +1 -0
  303. package/dist/tui/triggers/verbs.d.ts +29 -0
  304. package/dist/tui/triggers/verbs.d.ts.map +1 -0
  305. package/dist/tui/triggers/verbs.js +140 -0
  306. package/dist/tui/triggers/verbs.js.map +1 -0
  307. package/dist/tui/types.d.ts +3 -1
  308. package/dist/tui/types.d.ts.map +1 -1
  309. package/package.json +12 -12
  310. package/skills/README.md +5 -0
  311. 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 { ScheduleJob } from '../types.js';
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 and the pinned project config. Not a secret — a tripwire.
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
- /** Files that could not be read, with why. Never silently dropped. */
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,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAS9C,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;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAgB1D;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,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAuBzD;AAED,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CActE;AA4CD,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAe7E;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,CAgBb;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAKhE"}
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 and the pinned project config. Not a secret — a tripwire.
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.find((j) => j.name === ref);
112
- if (byName)
113
- return byName;
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 matches = jobs.filter((j) => j.id.startsWith(ref.toLowerCase()));
116
- if (matches.length === 1)
117
- return matches[0];
118
- if (matches.length > 1) {
119
- throw new Error(`"${ref}" matches ${matches.length} jobs (${matches.map((j) => j.name).join(', ')}); use the name.`);
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
- ...mutate(current),
254
+ ...mutated,
193
255
  id: current.id,
194
- v: 1,
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,CAC5F,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"}
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"}
@@ -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
- export declare const SCHEDULE_FORMAT_VERSION = 1;
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
- readonly model: {
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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schedule/types.ts"],"names":[],"mappings":"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"}
@@ -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
- export const SCHEDULE_FORMAT_VERSION = 1;
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"}