@namzu/cli 30.0.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 (256) hide show
  1. package/CHANGELOG.md +217 -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 +2 -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/runtime-message.d.ts.map +1 -1
  39. package/dist/context/runtime-message.js +4 -0
  40. package/dist/context/runtime-message.js.map +1 -1
  41. package/dist/integrations/mcp/servers.d.ts +72 -5
  42. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  43. package/dist/integrations/mcp/servers.js +144 -23
  44. package/dist/integrations/mcp/servers.js.map +1 -1
  45. package/dist/integrations/plugins/runtime.d.ts +11 -9
  46. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  47. package/dist/integrations/plugins/runtime.js +17 -36
  48. package/dist/integrations/plugins/runtime.js.map +1 -1
  49. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  50. package/dist/integrations/resident/session-step.js +2 -1
  51. package/dist/integrations/resident/session-step.js.map +1 -1
  52. package/dist/integrations/sessions/store.d.ts.map +1 -1
  53. package/dist/integrations/sessions/store.js +20 -2
  54. package/dist/integrations/sessions/store.js.map +1 -1
  55. package/dist/integrations/subagents/NamzuCliAgent.d.ts +8 -0
  56. package/dist/integrations/subagents/NamzuCliAgent.d.ts.map +1 -0
  57. package/dist/integrations/subagents/NamzuCliAgent.js +9 -0
  58. package/dist/integrations/subagents/NamzuCliAgent.js.map +1 -0
  59. package/dist/integrations/subagents/runtime.d.ts +5 -4
  60. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  61. package/dist/integrations/subagents/runtime.js +46 -11
  62. package/dist/integrations/subagents/runtime.js.map +1 -1
  63. package/dist/integrations/web/search.d.ts.map +1 -1
  64. package/dist/integrations/web/search.js +8 -6
  65. package/dist/integrations/web/search.js.map +1 -1
  66. package/dist/permissions/rules.d.ts +5 -1
  67. package/dist/permissions/rules.d.ts.map +1 -1
  68. package/dist/permissions/rules.js +85 -3
  69. package/dist/permissions/rules.js.map +1 -1
  70. package/dist/schedule/build.d.ts +19 -2
  71. package/dist/schedule/build.d.ts.map +1 -1
  72. package/dist/schedule/build.js +119 -21
  73. package/dist/schedule/build.js.map +1 -1
  74. package/dist/schedule/changes.d.ts.map +1 -1
  75. package/dist/schedule/changes.js +13 -0
  76. package/dist/schedule/changes.js.map +1 -1
  77. package/dist/schedule/commands/add.d.ts +1 -1
  78. package/dist/schedule/commands/add.d.ts.map +1 -1
  79. package/dist/schedule/commands/add.js +186 -40
  80. package/dist/schedule/commands/add.js.map +1 -1
  81. package/dist/schedule/commands/list.d.ts +2 -0
  82. package/dist/schedule/commands/list.d.ts.map +1 -1
  83. package/dist/schedule/commands/list.js +64 -19
  84. package/dist/schedule/commands/list.js.map +1 -1
  85. package/dist/schedule/daemon/daemon.d.ts +1 -1
  86. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  87. package/dist/schedule/daemon/daemon.js +17 -5
  88. package/dist/schedule/daemon/daemon.js.map +1 -1
  89. package/dist/schedule/daemon/notify.d.ts +21 -1
  90. package/dist/schedule/daemon/notify.d.ts.map +1 -1
  91. package/dist/schedule/daemon/notify.js +43 -0
  92. package/dist/schedule/daemon/notify.js.map +1 -1
  93. package/dist/schedule/fire/fire.d.ts +1 -1
  94. package/dist/schedule/fire/fire.d.ts.map +1 -1
  95. package/dist/schedule/fire/fire.js +200 -14
  96. package/dist/schedule/fire/fire.js.map +1 -1
  97. package/dist/schedule/fire/result.d.ts +1 -1
  98. package/dist/schedule/fire/result.d.ts.map +1 -1
  99. package/dist/schedule/fire/result.js +2 -1
  100. package/dist/schedule/fire/result.js.map +1 -1
  101. package/dist/schedule/fire/run-script.d.ts +46 -0
  102. package/dist/schedule/fire/run-script.d.ts.map +1 -0
  103. package/dist/schedule/fire/run-script.js +81 -0
  104. package/dist/schedule/fire/run-script.js.map +1 -0
  105. package/dist/schedule/fire/unattended-note.d.ts +8 -0
  106. package/dist/schedule/fire/unattended-note.d.ts.map +1 -1
  107. package/dist/schedule/fire/unattended-note.js +5 -0
  108. package/dist/schedule/fire/unattended-note.js.map +1 -1
  109. package/dist/schedule/fire/wake-gate.d.ts +39 -0
  110. package/dist/schedule/fire/wake-gate.d.ts.map +1 -0
  111. package/dist/schedule/fire/wake-gate.js +90 -0
  112. package/dist/schedule/fire/wake-gate.js.map +1 -0
  113. package/dist/schedule/floor.d.ts +1 -1
  114. package/dist/schedule/floor.d.ts.map +1 -1
  115. package/dist/schedule/floor.js +288 -16
  116. package/dist/schedule/floor.js.map +1 -1
  117. package/dist/schedule/policy.d.ts +40 -0
  118. package/dist/schedule/policy.d.ts.map +1 -1
  119. package/dist/schedule/policy.js +36 -0
  120. package/dist/schedule/policy.js.map +1 -1
  121. package/dist/schedule/script-check.d.ts +53 -0
  122. package/dist/schedule/script-check.d.ts.map +1 -0
  123. package/dist/schedule/script-check.js +145 -0
  124. package/dist/schedule/script-check.js.map +1 -0
  125. package/dist/schedule/script-shell.d.ts +3 -0
  126. package/dist/schedule/script-shell.d.ts.map +1 -0
  127. package/dist/schedule/script-shell.js +5 -0
  128. package/dist/schedule/script-shell.js.map +1 -0
  129. package/dist/schedule/service/manifest.js +1 -1
  130. package/dist/schedule/service/manifest.js.map +1 -1
  131. package/dist/schedule/store/atomic.d.ts +5 -2
  132. package/dist/schedule/store/atomic.d.ts.map +1 -1
  133. package/dist/schedule/store/atomic.js +7 -4
  134. package/dist/schedule/store/atomic.js.map +1 -1
  135. package/dist/schedule/store/claims.js +1 -1
  136. package/dist/schedule/store/claims.js.map +1 -1
  137. package/dist/schedule/store/history.d.ts +1 -1
  138. package/dist/schedule/store/history.d.ts.map +1 -1
  139. package/dist/schedule/store/history.js +4 -1
  140. package/dist/schedule/store/history.js.map +1 -1
  141. package/dist/schedule/store/jobs.d.ts +19 -3
  142. package/dist/schedule/store/jobs.d.ts.map +1 -1
  143. package/dist/schedule/store/jobs.js +83 -16
  144. package/dist/schedule/store/jobs.js.map +1 -1
  145. package/dist/schedule/store/state.js +1 -1
  146. package/dist/schedule/store/state.js.map +1 -1
  147. package/dist/schedule/types.d.ts +71 -6
  148. package/dist/schedule/types.d.ts.map +1 -1
  149. package/dist/schedule/types.js +25 -1
  150. package/dist/schedule/types.js.map +1 -1
  151. package/dist/schedule/visible-source.d.ts +18 -0
  152. package/dist/schedule/visible-source.d.ts.map +1 -0
  153. package/dist/schedule/visible-source.js +59 -0
  154. package/dist/schedule/visible-source.js.map +1 -0
  155. package/dist/test-support/toolset.d.ts +23 -0
  156. package/dist/test-support/toolset.d.ts.map +1 -0
  157. package/dist/test-support/toolset.js +27 -0
  158. package/dist/test-support/toolset.js.map +1 -0
  159. package/dist/tui/App.d.ts.map +1 -1
  160. package/dist/tui/App.js +323 -60
  161. package/dist/tui/App.js.map +1 -1
  162. package/dist/tui/ChoicePicker.d.ts +2 -0
  163. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  164. package/dist/tui/ChoicePicker.js +10 -2
  165. package/dist/tui/ChoicePicker.js.map +1 -1
  166. package/dist/tui/Composer.d.ts +62 -3
  167. package/dist/tui/Composer.d.ts.map +1 -1
  168. package/dist/tui/Composer.js +162 -25
  169. package/dist/tui/Composer.js.map +1 -1
  170. package/dist/tui/ComposerFrame.d.ts +1 -1
  171. package/dist/tui/ComposerFrame.js +3 -3
  172. package/dist/tui/ComposerFrame.js.map +1 -1
  173. package/dist/tui/EffortSlider.d.ts +8 -9
  174. package/dist/tui/EffortSlider.d.ts.map +1 -1
  175. package/dist/tui/EffortSlider.js +15 -12
  176. package/dist/tui/EffortSlider.js.map +1 -1
  177. package/dist/tui/StatusBar.d.ts +12 -12
  178. package/dist/tui/StatusBar.d.ts.map +1 -1
  179. package/dist/tui/StatusBar.js +15 -15
  180. package/dist/tui/StatusBar.js.map +1 -1
  181. package/dist/tui/agent.d.ts +46 -7
  182. package/dist/tui/agent.d.ts.map +1 -1
  183. package/dist/tui/agent.js +386 -178
  184. package/dist/tui/agent.js.map +1 -1
  185. package/dist/tui/hypermode.d.ts +37 -0
  186. package/dist/tui/hypermode.d.ts.map +1 -0
  187. package/dist/tui/hypermode.js +58 -0
  188. package/dist/tui/hypermode.js.map +1 -0
  189. package/dist/tui/permission-review.d.ts +1 -1
  190. package/dist/tui/permission-review.js +1 -1
  191. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  192. package/dist/tui/schedule/host-commands.js +94 -33
  193. package/dist/tui/schedule/host-commands.js.map +1 -1
  194. package/dist/tui/schedule/integration.d.ts +6 -2
  195. package/dist/tui/schedule/integration.d.ts.map +1 -1
  196. package/dist/tui/schedule/integration.js +3 -1
  197. package/dist/tui/schedule/integration.js.map +1 -1
  198. package/dist/tui/schedule/resume.d.ts.map +1 -1
  199. package/dist/tui/schedule/resume.js +10 -1
  200. package/dist/tui/schedule/resume.js.map +1 -1
  201. package/dist/tui/schedule/tool-host.d.ts +4 -1
  202. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  203. package/dist/tui/schedule/tool-host.js +155 -40
  204. package/dist/tui/schedule/tool-host.js.map +1 -1
  205. package/dist/tui/slashCommands.d.ts +23 -5
  206. package/dist/tui/slashCommands.d.ts.map +1 -1
  207. package/dist/tui/slashCommands.js +80 -31
  208. package/dist/tui/slashCommands.js.map +1 -1
  209. package/dist/tui/theme.d.ts +10 -4
  210. package/dist/tui/theme.d.ts.map +1 -1
  211. package/dist/tui/theme.js +4 -3
  212. package/dist/tui/theme.js.map +1 -1
  213. package/dist/tui/triggers/analyze.d.ts +57 -0
  214. package/dist/tui/triggers/analyze.d.ts.map +1 -0
  215. package/dist/tui/triggers/analyze.js +221 -0
  216. package/dist/tui/triggers/analyze.js.map +1 -0
  217. package/dist/tui/triggers/context-text.d.ts +21 -0
  218. package/dist/tui/triggers/context-text.d.ts.map +1 -0
  219. package/dist/tui/triggers/context-text.js +44 -0
  220. package/dist/tui/triggers/context-text.js.map +1 -0
  221. package/dist/tui/triggers/copy.d.ts +38 -0
  222. package/dist/tui/triggers/copy.d.ts.map +1 -0
  223. package/dist/tui/triggers/copy.js +163 -0
  224. package/dist/tui/triggers/copy.js.map +1 -0
  225. package/dist/tui/triggers/detect.d.ts +83 -0
  226. package/dist/tui/triggers/detect.d.ts.map +1 -0
  227. package/dist/tui/triggers/detect.js +295 -0
  228. package/dist/tui/triggers/detect.js.map +1 -0
  229. package/dist/tui/triggers/fold.d.ts +34 -0
  230. package/dist/tui/triggers/fold.d.ts.map +1 -0
  231. package/dist/tui/triggers/fold.js +44 -0
  232. package/dist/tui/triggers/fold.js.map +1 -0
  233. package/dist/tui/triggers/pattern.d.ts +66 -0
  234. package/dist/tui/triggers/pattern.d.ts.map +1 -0
  235. package/dist/tui/triggers/pattern.js +243 -0
  236. package/dist/tui/triggers/pattern.js.map +1 -0
  237. package/dist/tui/triggers/provenance.d.ts +58 -0
  238. package/dist/tui/triggers/provenance.d.ts.map +1 -0
  239. package/dist/tui/triggers/provenance.js +98 -0
  240. package/dist/tui/triggers/provenance.js.map +1 -0
  241. package/dist/tui/triggers/registry.d.ts +113 -0
  242. package/dist/tui/triggers/registry.d.ts.map +1 -0
  243. package/dist/tui/triggers/registry.js +164 -0
  244. package/dist/tui/triggers/registry.js.map +1 -0
  245. package/dist/tui/triggers/setting.d.ts +18 -0
  246. package/dist/tui/triggers/setting.d.ts.map +1 -0
  247. package/dist/tui/triggers/setting.js +61 -0
  248. package/dist/tui/triggers/setting.js.map +1 -0
  249. package/dist/tui/triggers/verbs.d.ts +29 -0
  250. package/dist/tui/triggers/verbs.d.ts.map +1 -0
  251. package/dist/tui/triggers/verbs.js +140 -0
  252. package/dist/tui/triggers/verbs.js.map +1 -0
  253. package/dist/tui/types.d.ts +3 -1
  254. package/dist/tui/types.d.ts.map +1 -1
  255. package/package.json +12 -12
  256. package/skills/schedule-task/SKILL.md +115 -3
@@ -9,14 +9,18 @@
9
9
  */
10
10
  import { readFileSync } from 'node:fs';
11
11
  import { resolve } from 'node:path';
12
+ import { installedCommandShellForDialect } from '@namzu/sdk';
12
13
  import { readPermissionLayers } from '../../config/load.js';
13
14
  import { EXIT_OK, EXIT_USAGE } from '../../exit-codes.js';
14
15
  import { JobRequestError, buildJob, confirmJob, editedJob, previewLines, } from '../build.js';
15
16
  import { changesBlock, changesSinceConfirmed, confirmationView, describeChanges, } from '../changes.js';
16
17
  import { isPrivacyProtectedFolder } from '../folder.js';
17
- import { compileJobPolicy, isPresetName } from '../policy.js';
18
+ import { compileJobPolicy, compileScriptCheckPolicy, isPresetName, } from '../policy.js';
19
+ import { verifyScheduledScript } from '../script-check.js';
20
+ import { scriptShellUnavailableReason } from '../script-shell.js';
18
21
  import { appendHistory, readHistory } from '../store/history.js';
19
22
  import { createJob, findJob, updateJob } from '../store/jobs.js';
23
+ import { visibleScheduleMessage } from '../visible-source.js';
20
24
  import { flag, has, interactive, parseArgs, parseCount, parseMs, pathsFor, } from './args.js';
21
25
  import { askYesNo } from './confirm-prompt.js';
22
26
  export const ADD_FLAGS = [
@@ -47,7 +51,27 @@ export const ADD_FLAGS = [
47
51
  'browser-site',
48
52
  'browser-headed!',
49
53
  'no-browser!',
54
+ 'kind',
55
+ 'script',
56
+ 'script-file',
57
+ 'shell',
58
+ 'script-timeout',
50
59
  ];
60
+ const RUN_KINDS = ['agent', 'script', 'script+agent'];
61
+ function isRunKind(value) {
62
+ return RUN_KINDS.includes(value);
63
+ }
64
+ /** `--script`/`--script-file`, mutually exclusive, mirroring `--prompt`/`--prompt-file`. */
65
+ function scriptBodyOf(args) {
66
+ const inline = flag(args, 'script');
67
+ const file = flag(args, 'script-file');
68
+ if (inline !== undefined && file !== undefined) {
69
+ throw new JobRequestError('pass --script or --script-file, not both');
70
+ }
71
+ if (file !== undefined)
72
+ return readFileSync(resolve(file), 'utf8');
73
+ return inline;
74
+ }
51
75
  /**
52
76
  * `--browser <profile>`, `--browser-site <site>=read|ask|act` (repeatable)
53
77
  * and `--browser-headed`, over the grant a job already has (an edit). On an
@@ -181,12 +205,16 @@ function promptOf(args) {
181
205
  function requestFrom(args, name, base) {
182
206
  const budget = {
183
207
  ...(parseCount('--max-iterations', flag(args, 'max-iterations')) !== undefined
184
- ? { maxIterations: parseCount('--max-iterations', flag(args, 'max-iterations')) }
208
+ ? {
209
+ maxIterations: parseCount('--max-iterations', flag(args, 'max-iterations')),
210
+ }
185
211
  : base
186
212
  ? { maxIterations: base.budget.maxIterations }
187
213
  : {}),
188
214
  ...(parseCount('--token-budget', flag(args, 'token-budget')) !== undefined
189
- ? { tokenBudget: parseCount('--token-budget', flag(args, 'token-budget')) }
215
+ ? {
216
+ tokenBudget: parseCount('--token-budget', flag(args, 'token-budget')),
217
+ }
190
218
  : base
191
219
  ? { tokenBudget: base.budget.tokenBudget }
192
220
  : {}),
@@ -209,39 +237,112 @@ function requestFrom(args, name, base) {
209
237
  const model = flag(args, 'model');
210
238
  const effort = flag(args, 'effort');
211
239
  const tz = flag(args, 'tz') ?? (base?.schedule.kind === 'cron' ? base.schedule.tz : undefined);
240
+ const kindFlag = flag(args, 'kind');
241
+ if (kindFlag !== undefined && !isRunKind(kindFlag)) {
242
+ throw new JobRequestError(`--kind is ${RUN_KINDS.join(', ')}`);
243
+ }
244
+ const runKind = kindFlag ?? base?.runKind ?? 'agent';
245
+ if (runKind === 'script' && (model !== undefined || effort !== undefined)) {
246
+ throw new JobRequestError('a pure script job has no model or effort; remove --model and --effort');
247
+ }
248
+ if (runKind === 'script' && (has(args, 'prompt') || has(args, 'prompt-file')))
249
+ throw new JobRequestError('a pure script job has no prompt; remove --prompt and --prompt-file');
250
+ const agentOnlyFlag = [
251
+ 'max-iterations',
252
+ 'token-budget',
253
+ 'timeout',
254
+ 'wait-for-provider',
255
+ 'approval-ttl',
256
+ 'keep-sessions',
257
+ ].find((name) => has(args, name));
258
+ if (runKind === 'script' && agentOnlyFlag) {
259
+ throw new JobRequestError(`--${agentOnlyFlag} does not apply to a pure script job; use --script-timeout to limit the script itself`);
260
+ }
261
+ const shellFlag = flag(args, 'shell');
262
+ if (shellFlag !== undefined && shellFlag !== 'bash' && shellFlag !== 'sh') {
263
+ throw new JobRequestError('--shell is bash or sh');
264
+ }
265
+ const scriptGiven = has(args, 'script') || has(args, 'script-file');
266
+ const scriptBody = scriptGiven ? scriptBodyOf(args) : base?.script?.body;
267
+ const shell = shellFlag ?? base?.script?.shell;
268
+ if (runKind !== 'agent' && shell === undefined) {
269
+ throw new JobRequestError('--shell bash|sh is required for a script or script+agent job');
270
+ }
271
+ const scriptTimeoutMs = parseMs('--script-timeout', flag(args, 'script-timeout')) ?? base?.script?.timeoutMs;
272
+ const prompt = (() => {
273
+ if (runKind === 'script')
274
+ return '';
275
+ if (has(args, 'prompt') || has(args, 'prompt-file'))
276
+ return promptOf(args);
277
+ if (base)
278
+ return base.prompt;
279
+ return promptOf(args);
280
+ })();
281
+ const chosenPermissions = has(args, 'permissions')
282
+ ? permissionInput(args, base?.permissions.browser)
283
+ : base
284
+ ? (() => {
285
+ const browser = browserInput(args, base.permissions.browser);
286
+ const unmatched = flag(args, 'unmatched');
287
+ return {
288
+ rules: base.permissions.rules,
289
+ unmatched: unmatched === 'park' || unmatched === 'deny' || unmatched === 'allow'
290
+ ? unmatched
291
+ : base.permissions.unmatched,
292
+ execution: base.permissions.execution,
293
+ ...(base.permissions.additionalDirectories
294
+ ? {
295
+ additionalDirectories: base.permissions.additionalDirectories,
296
+ }
297
+ : {}),
298
+ ...(browser ? { browser } : {}),
299
+ };
300
+ })()
301
+ : permissionInput(args);
302
+ if (runKind === 'script' &&
303
+ chosenPermissions.browser &&
304
+ (base?.runKind !== 'script' ||
305
+ has(args, 'permissions') ||
306
+ has(args, 'browser') ||
307
+ has(args, 'browser-site') ||
308
+ has(args, 'browser-headed'))) {
309
+ throw new JobRequestError('a pure script job cannot use a browser grant; remove --browser flags or the browser field in --permissions');
310
+ }
212
311
  return {
213
312
  name,
214
- prompt: flag(args, 'prompt') || flag(args, 'prompt-file') || !base ? promptOf(args) : base.prompt,
313
+ prompt,
314
+ ...(runKind !== 'agent'
315
+ ? {
316
+ runKind,
317
+ script: {
318
+ body: scriptBody ?? '',
319
+ shell: shell,
320
+ ...(scriptTimeoutMs !== undefined ? { timeoutMs: scriptTimeoutMs } : {}),
321
+ },
322
+ }
323
+ : {}),
215
324
  when: flag(args, 'when') ?? '',
216
325
  ...(!flag(args, 'when') && !flag(args, 'tz') && base ? { spec: base.schedule } : {}),
217
326
  folder: resolve(flag(args, 'folder') ?? base?.folder.path ?? process.cwd()),
218
327
  ...(tz ? { tz } : {}),
219
- permissions: has(args, 'permissions')
220
- ? permissionInput(args, base?.permissions.browser)
221
- : base
222
- ? (() => {
223
- const browser = browserInput(args, base.permissions.browser);
224
- const unmatched = flag(args, 'unmatched');
225
- return {
226
- rules: base.permissions.rules,
227
- unmatched: unmatched === 'park' || unmatched === 'deny' || unmatched === 'allow'
228
- ? unmatched
229
- : base.permissions.unmatched,
230
- execution: base.permissions.execution,
231
- ...(base.permissions.additionalDirectories
232
- ? { additionalDirectories: base.permissions.additionalDirectories }
233
- : {}),
234
- ...(browser ? { browser } : {}),
235
- };
236
- })()
237
- : permissionInput(args),
328
+ permissions: chosenPermissions,
238
329
  budget,
239
- ...(model
240
- ? { model }
241
- : base
242
- ? { model: `${base.model.provider}${base.model.model ? `/${base.model.model}` : ''}` }
243
- : {}),
244
- ...(effort ? { effort } : base?.model.effort ? { effort: base.model.effort } : {}),
330
+ ...(runKind === 'script'
331
+ ? {}
332
+ : model
333
+ ? { model }
334
+ : base?.model
335
+ ? {
336
+ model: `${base.model.provider}${base.model.model ? `/${base.model.model}` : ''}`,
337
+ }
338
+ : {}),
339
+ ...(runKind === 'script'
340
+ ? {}
341
+ : effort
342
+ ? { effort }
343
+ : base?.model?.effort
344
+ ? { effort: base.model.effort }
345
+ : {}),
245
346
  ...(has(args, 'notify-summary')
246
347
  ? { includeSummary: true }
247
348
  : base
@@ -277,14 +378,42 @@ async function confirmOnTerminal(ctx, paths, job, args, verb, changes = []) {
277
378
  if (policy.diagnostics.length > 0) {
278
379
  throw new JobRequestError(`permission rules do not compile: ${policy.diagnostics.join('; ')}`);
279
380
  }
381
+ // Fail closed before anything is shown: a script that cannot be verified,
382
+ // or that the floor or a `deny` rule refuses, never reaches a preview or
383
+ // a confirmation prompt. Re-verified at every `__fire`, both through the
384
+ // digest (the exact text cannot change unnoticed) and freshly against
385
+ // current config-file denies (see `runFire`).
386
+ if (job.runKind && job.runKind !== 'agent' && job.script) {
387
+ const selectedShell = installedCommandShellForDialect(job.script.shell);
388
+ if (!selectedShell)
389
+ throw new JobRequestError(scriptShellUnavailableReason(job.script.shell));
390
+ const scriptPolicy = compileScriptCheckPolicy(job.permissions, {
391
+ layers,
392
+ namzuHome: paths.home,
393
+ folder: job.folder,
394
+ });
395
+ const checked = verifyScheduledScript(job.script.body, selectedShell.dialect, scriptPolicy);
396
+ if (!checked.ok) {
397
+ throw new JobRequestError(`the ${job.runKind === 'script' ? 'script' : 'wake-gate script'} was refused: ${checked.reason}`);
398
+ }
399
+ }
280
400
  const now = new Date();
281
- ctx.formatter.info(previewLines(job, policy, now).join('\n'));
282
- ctx.formatter.info(`Prompt\n${job.prompt
401
+ ctx.formatter.info(visibleScheduleMessage(previewLines(job, policy, now).join('\n')));
402
+ const indented = (text) => text
283
403
  .split('\n')
284
404
  .map((l) => ` ${l}`)
285
- .join('\n')}`);
405
+ .join('\n');
406
+ if (job.runKind && job.runKind !== 'agent' && job.script) {
407
+ const scriptRules = job.runKind === 'script'
408
+ ? 'the scheduled-run floor and every deny rule apply to this script'
409
+ : 'the scheduled-run floor and every deny rule apply to the gate, and the permission set governs the agent phase';
410
+ ctx.formatter.info(visibleScheduleMessage(`${job.runKind === 'script' ? 'Script' : 'Wake-gate script'} (${job.script.shell}, verified clean)\n${indented(job.script.body)}\nThe stored source runs as entered; ${scriptRules}`));
411
+ }
412
+ if (job.prompt.trim()) {
413
+ ctx.formatter.info(visibleScheduleMessage(`${job.runKind === 'script+agent' ? 'Prompt (used only when the wake-gate says wake: true)' : 'Prompt'}\n${indented(job.prompt)}`));
414
+ }
286
415
  if (changes.length > 0)
287
- ctx.formatter.info(changesBlock(changes).join('\n'));
416
+ ctx.formatter.info(visibleScheduleMessage(changesBlock(changes).join('\n')));
288
417
  if (process.platform === 'darwin' && isPrivacyProtectedFolder(job.folder.canonical)) {
289
418
  ctx.formatter.info('Warning: this folder is under Documents, Desktop or Downloads; macOS may block the scheduler from reading it until you grant it Files and Folders access.');
290
419
  }
@@ -302,7 +431,9 @@ async function confirmOnTerminal(ctx, paths, job, args, verb, changes = []) {
302
431
  export async function addCommand(ctx, argv) {
303
432
  const args = parseArgs(argv, ADD_FLAGS);
304
433
  if (args.unknown.length > 0) {
305
- ctx.formatter.error({ message: `unknown option: ${args.unknown.join(', ')}` });
434
+ ctx.formatter.error({
435
+ message: `unknown option: ${args.unknown.join(', ')}`,
436
+ });
306
437
  return EXIT_USAGE;
307
438
  }
308
439
  const name = args.positionals[0];
@@ -315,7 +446,11 @@ export async function addCommand(ctx, argv) {
315
446
  const paths = pathsFor(args);
316
447
  try {
317
448
  const now = new Date();
318
- const built = buildJob(requestFrom(args, name), { paths, config: ctx.config, now });
449
+ const built = buildJob(requestFrom(args, name), {
450
+ paths,
451
+ config: ctx.config,
452
+ now,
453
+ });
319
454
  const surface = await confirmOnTerminal(ctx, paths, built, args, 'create');
320
455
  if (surface === null) {
321
456
  ctx.formatter.info('Not created.');
@@ -348,7 +483,9 @@ export async function addCommand(ctx, argv) {
348
483
  return EXIT_OK;
349
484
  }
350
485
  catch (error) {
351
- ctx.formatter.error({ message: error instanceof Error ? error.message : String(error) });
486
+ ctx.formatter.error({
487
+ message: visibleScheduleMessage(error instanceof Error ? error.message : String(error)),
488
+ });
352
489
  return error instanceof JobRequestError ? EXIT_USAGE : 1;
353
490
  }
354
491
  }
@@ -403,14 +540,18 @@ export async function editCommand(ctx, argv) {
403
540
  return EXIT_OK;
404
541
  }
405
542
  catch (error) {
406
- ctx.formatter.error({ message: error instanceof Error ? error.message : String(error) });
543
+ ctx.formatter.error({
544
+ message: visibleScheduleMessage(error instanceof Error ? error.message : String(error)),
545
+ });
407
546
  return error instanceof JobRequestError ? EXIT_USAGE : 1;
408
547
  }
409
548
  }
410
549
  export async function confirmCommand(ctx, argv) {
411
550
  const args = parseArgs(argv, ['home', 'paused!']);
412
551
  if (args.unknown.length > 0 || !args.positionals[0]) {
413
- ctx.formatter.error({ message: 'usage: namzu schedule confirm <job> [--paused]' });
552
+ ctx.formatter.error({
553
+ message: 'usage: namzu schedule confirm <job> [--paused]',
554
+ });
414
555
  return EXIT_USAGE;
415
556
  }
416
557
  const paths = pathsFor(args);
@@ -436,11 +577,16 @@ export async function confirmCommand(ctx, argv) {
436
577
  action: 'confirmed',
437
578
  by: 'cli-tty',
438
579
  });
439
- ctx.formatter.print({ text: `Confirmed ${next.name} (${next.state}).`, state: next.state });
580
+ ctx.formatter.print({
581
+ text: `Confirmed ${next.name} (${next.state}).`,
582
+ state: next.state,
583
+ });
440
584
  return EXIT_OK;
441
585
  }
442
586
  catch (error) {
443
- ctx.formatter.error({ message: error instanceof Error ? error.message : String(error) });
587
+ ctx.formatter.error({
588
+ message: visibleScheduleMessage(error instanceof Error ? error.message : String(error)),
589
+ });
444
590
  return error instanceof JobRequestError ? EXIT_USAGE : 1;
445
591
  }
446
592
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/schedule/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/schedule/commands/add.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface JobListing {
13
13
  readonly schedule: string;
14
14
  readonly tz: string;
15
15
  readonly folder: string;
16
+ /** Absent: `'agent'`, unchanged from before this field existed. */
17
+ readonly kind?: 'script' | 'script+agent';
16
18
  readonly nextFireAt?: string;
17
19
  readonly lastRun?: ScheduleJobState['lastRun'];
18
20
  readonly activeRun?: {
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/schedule/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAS7D,OAAO,KAAK,EAAyB,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAgBvF,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAKrD;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;QAC3B,kFAAkF;QAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;QAC/B,uEAAuE;QACvE,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAC9C,CAAA;CACD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAyB7E;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmD/F;AAeD,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD/F;AAED,wBAAsB,cAAc,CACnC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/schedule/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAU7D,OAAO,KAAK,EAAyB,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAiBvF,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAKrD;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAA;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;QAC3B,kFAAkF;QAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;QAC/B,uEAAuE;QACvE,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAC9C,CAAA;CACD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,UAAU,CA0B7E;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgE/F;AAsBD,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E/F;AAED,wBAAsB,cAAc,CACnC,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
@@ -5,12 +5,14 @@
5
5
  import { describeSchedule, hostTimeZone } from '@namzu/sdk';
6
6
  import { readPermissionLayers } from '../../config/load.js';
7
7
  import { EXIT_OK, EXIT_USAGE } from '../../exit-codes.js';
8
+ import { sanitizeLine } from '../../integrations/notifications/desktop/sanitize.js';
8
9
  import { callsCount, callsLine } from '../fire/calls.js';
9
10
  import { compileJobPolicy } from '../policy.js';
10
11
  import { parkedRunWords, resumeCommand } from '../resume-command.js';
11
12
  import { foldHistory, readHistory } from '../store/history.js';
12
13
  import { confirmationHolds, findJob, listJobs } from '../store/jobs.js';
13
14
  import { nextFireOf, readState } from '../store/state.js';
15
+ import { visibleScheduleMessage } from '../visible-source.js';
14
16
  import { flag, has, parseArgs, parseCount, pathsFor } from './args.js';
15
17
  function tzOf(job) {
16
18
  return job.schedule.kind === 'cron' ? job.schedule.tz : hostTimeZone();
@@ -42,6 +44,7 @@ export function listing(job, state) {
42
44
  schedule: describeSchedule(job.schedule, { tz: tzOf(job) }),
43
45
  tz: tzOf(job),
44
46
  folder: job.folder.canonical,
47
+ ...(job.runKind && job.runKind !== 'agent' ? { kind: job.runKind } : {}),
45
48
  ...(nextFireOf(job, state) ? { nextFireAt: nextFireOf(job, state) } : {}),
46
49
  ...(state.lastRun ? { lastRun: state.lastRun } : {}),
47
50
  ...(state.activeRun
@@ -63,21 +66,28 @@ export function listing(job, state) {
63
66
  export async function listCommand(ctx, argv) {
64
67
  const args = parseArgs(argv, ['home', 'json!']);
65
68
  if (args.unknown.length > 0) {
66
- ctx.formatter.error({ message: `unknown option: ${args.unknown.join(', ')}` });
69
+ ctx.formatter.error({
70
+ message: `unknown option: ${args.unknown.join(', ')}`,
71
+ });
67
72
  return EXIT_USAGE;
68
73
  }
69
74
  const paths = pathsFor(args);
70
75
  const { jobs, errors } = listJobs(paths);
71
76
  const rows = jobs.map((job) => listing(job, readState(paths, job.id)));
72
77
  for (const error of errors)
73
- ctx.formatter.error({ message: error.message });
78
+ ctx.formatter.error({ message: visibleScheduleMessage(error.message) });
74
79
  if (has(args, 'json') || ctx.formatter.name !== 'text') {
75
80
  const payload = { v: 1, jobs: rows };
76
81
  ctx.formatter.print(ctx.formatter.name === 'text' ? JSON.stringify(payload, null, 2) : payload);
77
82
  return EXIT_OK;
78
83
  }
79
84
  if (rows.length === 0) {
80
- ctx.formatter.print('No scheduled jobs. Create one with `namzu schedule add`, or /schedule in the TUI.');
85
+ // "No scheduled jobs" is only true when there is nothing at all;
86
+ // `errors` above already said why each such file could not be read,
87
+ // so this line says there is something, not nothing, to look at.
88
+ ctx.formatter.print(errors.length > 0
89
+ ? `${errors.length} job file${errors.length === 1 ? '' : 's'} could not be read; see above.`
90
+ : 'No scheduled jobs. Create one with `namzu schedule add`, or /schedule in the TUI.');
81
91
  return EXIT_OK;
82
92
  }
83
93
  const host = hostTimeZone();
@@ -95,8 +105,13 @@ export async function listCommand(ctx, argv) {
95
105
  : 'running'
96
106
  : '';
97
107
  const tzWarning = r.tz !== host ? ` (host is ${host})` : '';
108
+ // `agent` (absent) is the common case and stays unmarked, as before;
109
+ // `script` costs no tokens at all — worth marking, since it is the
110
+ // reason to pick it over an agent job that would otherwise wake for a
111
+ // fixed, deterministic check every run.
112
+ const kind = r.kind === 'script' ? ' [script, 0 tokens]' : r.kind ? ` [${r.kind}]` : '';
98
113
  return [
99
- `${r.name} [${r.state}] ${r.schedule}${tzWarning}`,
114
+ `${r.name} [${r.state}] ${r.schedule}${tzWarning}${kind}`,
100
115
  ` ${[active, next, last].filter(Boolean).join(' · ')}`,
101
116
  ` ${r.folder}`,
102
117
  ...(r.activeRun?.resumeCommand
@@ -108,13 +123,20 @@ export async function listCommand(ctx, argv) {
108
123
  : []),
109
124
  ].join('\n');
110
125
  });
111
- ctx.formatter.print(lines.join('\n'));
126
+ ctx.formatter.print(visibleScheduleMessage(lines.join('\n')));
112
127
  return EXIT_OK;
113
128
  }
114
129
  function describeRecord(r, tz) {
115
130
  switch (r.kind) {
116
- case 'run':
117
- return `${when(r.startedAt, tz)} run ${r.status}${r.trigger !== 'scheduled' ? ` (${r.trigger})` : ''}${r.delayedMs ? `, waited ${Math.round(r.delayedMs / 1000)} s for ${r.delayReason === 'folder-busy' ? 'the folder' : 'a slot'}` : ''}${r.reason ? `: ${r.reason}` : ''}${r.summary ? ` — ${r.summary}` : ''}${callsLine(r) ? `\n ${callsLine(r)}` : ''}${r.sessionId ? `\n session ${r.sessionId}` : ''}`;
131
+ case 'run': {
132
+ // `reason`/`summary` can carry a script's or a wake-gate's own
133
+ // (untrusted) output; made safe for this text view the same way a
134
+ // desktop notification already is, even though the producers of
135
+ // both fields should already have.
136
+ const reason = r.reason ? sanitizeLine(r.reason, 1_000) : undefined;
137
+ const summary = r.summary ? sanitizeLine(r.summary, 1_000) : undefined;
138
+ return `${when(r.startedAt, tz)} run ${r.status}${r.trigger !== 'scheduled' ? ` (${r.trigger})` : ''}${r.delayedMs ? `, waited ${Math.round(r.delayedMs / 1000)} s for ${r.delayReason === 'folder-busy' ? 'the folder' : 'a slot'}` : ''}${reason ? `: ${reason}` : ''}${summary ? ` — ${summary}` : ''}${callsLine(r) ? `\n ${callsLine(r)}` : ''}${r.sessionId ? `\n session ${r.sessionId}` : ''}`;
139
+ }
118
140
  case 'skip':
119
141
  return `${when(r.at, tz)} skipped ${r.count > 1 ? `${r.count} occurrences` : when(r.scheduledFor, tz)}: ${r.reason}`;
120
142
  case 'missed':
@@ -126,7 +148,9 @@ function describeRecord(r, tz) {
126
148
  export async function showCommand(ctx, argv) {
127
149
  const args = parseArgs(argv, ['home', 'json!']);
128
150
  if (args.unknown.length > 0 || !args.positionals[0]) {
129
- ctx.formatter.error({ message: 'usage: namzu schedule show <job> [--json]' });
151
+ ctx.formatter.error({
152
+ message: 'usage: namzu schedule show <job> [--json]',
153
+ });
130
154
  return EXIT_USAGE;
131
155
  }
132
156
  const paths = pathsFor(args);
@@ -145,7 +169,7 @@ export async function showCommand(ctx, argv) {
145
169
  folder: job.folder,
146
170
  });
147
171
  const tz = tzOf(job);
148
- ctx.formatter.print([
172
+ ctx.formatter.print(visibleScheduleMessage([
149
173
  `${job.name} [${displayState(job)}] id ${job.id}`,
150
174
  `When ${describeSchedule(job.schedule, { tz })}`,
151
175
  `Next ${when(state.nextFireAt, tz)}`,
@@ -157,29 +181,48 @@ export async function showCommand(ctx, argv) {
157
181
  : `Waiting for approval; answer it: ${resumeCommand(job, state.activeRun.sessionId)}`,
158
182
  ]
159
183
  : []),
160
- `Model ${job.model.provider}${job.model.model ? `/${job.model.model}` : ''}`,
161
- `Budget ${job.budget.tokenBudget} tokens, ${job.budget.maxIterations} iterations, ${Math.round(job.budget.timeoutMs / 60_000)} min`,
184
+ ...(job.runKind === 'script'
185
+ ? ['Model none (script only)']
186
+ : [
187
+ `Model ${job.model?.provider ?? '(missing)'}${job.model?.model ? `/${job.model.model}` : ''}`,
188
+ ]),
189
+ ...(job.runKind === 'script'
190
+ ? [
191
+ `Budget 0 tokens; script timeout ${job.script?.timeoutMs ?? 'unknown'} ms per run`,
192
+ ]
193
+ : [
194
+ `Budget ${job.budget.tokenBudget} tokens, ${job.budget.maxIterations} iterations, ${Math.round(job.budget.timeoutMs / 60_000)} min`,
195
+ ]),
162
196
  `Confirmed ${job.confirmation ? `${when(job.confirmation.at, tz)} (${job.confirmation.surface})` : 'not yet'}`,
163
197
  'Permissions',
164
198
  ...policy.lines.map((l) => ` ${l}`),
165
- 'Prompt',
166
- ...job.prompt.split('\n').map((l) => ` ${l}`),
199
+ ...(job.runKind && job.runKind !== 'agent' && job.script
200
+ ? [
201
+ job.runKind === 'script' ? 'Script' : 'Wake-gate script',
202
+ ...job.script.body.split('\n').map((l) => ` ${l}`),
203
+ ]
204
+ : []),
205
+ ...(job.prompt.trim() ? ['Prompt', ...job.prompt.split('\n').map((l) => ` ${l}`)] : []),
167
206
  'Recent',
168
207
  ...(history.length === 0
169
208
  ? [' nothing yet']
170
209
  : history.map((r) => ` ${describeRecord(r, tz)}`)),
171
- ].join('\n'));
210
+ ].join('\n')));
172
211
  return EXIT_OK;
173
212
  }
174
213
  catch (error) {
175
- ctx.formatter.error({ message: error instanceof Error ? error.message : String(error) });
214
+ ctx.formatter.error({
215
+ message: visibleScheduleMessage(error instanceof Error ? error.message : String(error)),
216
+ });
176
217
  return 1;
177
218
  }
178
219
  }
179
220
  export async function historyCommand(ctx, argv) {
180
221
  const args = parseArgs(argv, ['home', 'json!', 'limit']);
181
222
  if (args.unknown.length > 0 || !args.positionals[0]) {
182
- ctx.formatter.error({ message: 'usage: namzu schedule history <job> [--limit 20] [--json]' });
223
+ ctx.formatter.error({
224
+ message: 'usage: namzu schedule history <job> [--limit 20] [--json]',
225
+ });
183
226
  return EXIT_USAGE;
184
227
  }
185
228
  const paths = pathsFor(args);
@@ -193,13 +236,15 @@ export async function historyCommand(ctx, argv) {
193
236
  return EXIT_OK;
194
237
  }
195
238
  const tz = tzOf(job);
196
- ctx.formatter.print(records.length === 0
239
+ ctx.formatter.print(visibleScheduleMessage(records.length === 0
197
240
  ? `${job.name} has no history yet.`
198
- : records.map((r) => describeRecord(r, tz)).join('\n'));
241
+ : records.map((r) => describeRecord(r, tz)).join('\n')));
199
242
  return EXIT_OK;
200
243
  }
201
244
  catch (error) {
202
- ctx.formatter.error({ message: error instanceof Error ? error.message : String(error) });
245
+ ctx.formatter.error({
246
+ message: visibleScheduleMessage(error instanceof Error ? error.message : String(error)),
247
+ });
203
248
  return 1;
204
249
  }
205
250
  }