@namzu/cli 29.1.0 → 30.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 (110) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/commands/exec.d.ts.map +1 -1
  3. package/dist/commands/exec.js +3 -0
  4. package/dist/commands/exec.js.map +1 -1
  5. package/dist/context/environment.d.ts +26 -3
  6. package/dist/context/environment.d.ts.map +1 -1
  7. package/dist/context/environment.js +68 -9
  8. package/dist/context/environment.js.map +1 -1
  9. package/dist/integrations/notifications/desktop.d.ts +2 -0
  10. package/dist/integrations/notifications/desktop.d.ts.map +1 -1
  11. package/dist/integrations/notifications/desktop.js +6 -5
  12. package/dist/integrations/notifications/desktop.js.map +1 -1
  13. package/dist/integrations/plugins/runtime.d.ts +8 -2
  14. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  15. package/dist/integrations/plugins/runtime.js +14 -8
  16. package/dist/integrations/plugins/runtime.js.map +1 -1
  17. package/dist/integrations/providers/harness-credentials.d.ts +9 -4
  18. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
  19. package/dist/integrations/providers/harness-credentials.js +16 -8
  20. package/dist/integrations/providers/harness-credentials.js.map +1 -1
  21. package/dist/integrations/web/open-url.d.ts +24 -0
  22. package/dist/integrations/web/open-url.d.ts.map +1 -0
  23. package/dist/integrations/web/open-url.js +73 -0
  24. package/dist/integrations/web/open-url.js.map +1 -0
  25. package/dist/schedule/build.d.ts +7 -0
  26. package/dist/schedule/build.d.ts.map +1 -1
  27. package/dist/schedule/build.js +21 -0
  28. package/dist/schedule/build.js.map +1 -1
  29. package/dist/schedule/changes.d.ts +6 -0
  30. package/dist/schedule/changes.d.ts.map +1 -1
  31. package/dist/schedule/changes.js +10 -0
  32. package/dist/schedule/changes.js.map +1 -1
  33. package/dist/schedule/commands/add.d.ts.map +1 -1
  34. package/dist/schedule/commands/add.js +2 -14
  35. package/dist/schedule/commands/add.js.map +1 -1
  36. package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
  37. package/dist/schedule/commands/lifecycle.js +2 -1
  38. package/dist/schedule/commands/lifecycle.js.map +1 -1
  39. package/dist/schedule/commands/list.d.ts.map +1 -1
  40. package/dist/schedule/commands/list.js +6 -2
  41. package/dist/schedule/commands/list.js.map +1 -1
  42. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  43. package/dist/schedule/daemon/daemon.js +5 -0
  44. package/dist/schedule/daemon/daemon.js.map +1 -1
  45. package/dist/schedule/daemon/notify.d.ts +8 -1
  46. package/dist/schedule/daemon/notify.d.ts.map +1 -1
  47. package/dist/schedule/daemon/notify.js +28 -2
  48. package/dist/schedule/daemon/notify.js.map +1 -1
  49. package/dist/schedule/env.d.ts +8 -4
  50. package/dist/schedule/env.d.ts.map +1 -1
  51. package/dist/schedule/env.js +13 -6
  52. package/dist/schedule/env.js.map +1 -1
  53. package/dist/schedule/fire/calls.d.ts +49 -0
  54. package/dist/schedule/fire/calls.d.ts.map +1 -0
  55. package/dist/schedule/fire/calls.js +114 -0
  56. package/dist/schedule/fire/calls.js.map +1 -0
  57. package/dist/schedule/fire/fire.d.ts.map +1 -1
  58. package/dist/schedule/fire/fire.js +9 -1
  59. package/dist/schedule/fire/fire.js.map +1 -1
  60. package/dist/schedule/floor.d.ts +27 -7
  61. package/dist/schedule/floor.d.ts.map +1 -1
  62. package/dist/schedule/floor.js +339 -101
  63. package/dist/schedule/floor.js.map +1 -1
  64. package/dist/schedule/service/index.d.ts +1 -1
  65. package/dist/schedule/service/index.d.ts.map +1 -1
  66. package/dist/schedule/service/index.js +20 -11
  67. package/dist/schedule/service/index.js.map +1 -1
  68. package/dist/schedule/service/windows-task.d.ts +7 -0
  69. package/dist/schedule/service/windows-task.d.ts.map +1 -1
  70. package/dist/schedule/service/windows-task.js +65 -0
  71. package/dist/schedule/service/windows-task.js.map +1 -1
  72. package/dist/schedule/service/wsl.d.ts +13 -1
  73. package/dist/schedule/service/wsl.d.ts.map +1 -1
  74. package/dist/schedule/service/wsl.js +16 -6
  75. package/dist/schedule/service/wsl.js.map +1 -1
  76. package/dist/schedule/types.d.ts +27 -0
  77. package/dist/schedule/types.d.ts.map +1 -1
  78. package/dist/skills/directory.d.ts +38 -0
  79. package/dist/skills/directory.d.ts.map +1 -0
  80. package/dist/skills/directory.js +51 -0
  81. package/dist/skills/directory.js.map +1 -0
  82. package/dist/tui/App.d.ts.map +1 -1
  83. package/dist/tui/App.js +20 -4
  84. package/dist/tui/App.js.map +1 -1
  85. package/dist/tui/PermissionOverlay.d.ts +13 -1
  86. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  87. package/dist/tui/PermissionOverlay.js +26 -4
  88. package/dist/tui/PermissionOverlay.js.map +1 -1
  89. package/dist/tui/agent.d.ts +28 -6
  90. package/dist/tui/agent.d.ts.map +1 -1
  91. package/dist/tui/agent.js +58 -16
  92. package/dist/tui/agent.js.map +1 -1
  93. package/dist/tui/open-browser.d.ts +29 -1
  94. package/dist/tui/open-browser.d.ts.map +1 -1
  95. package/dist/tui/open-browser.js +83 -11
  96. package/dist/tui/open-browser.js.map +1 -1
  97. package/dist/tui/permission-review.d.ts +10 -1
  98. package/dist/tui/permission-review.d.ts.map +1 -1
  99. package/dist/tui/permission-review.js +175 -18
  100. package/dist/tui/permission-review.js.map +1 -1
  101. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  102. package/dist/tui/schedule/host-commands.js +2 -1
  103. package/dist/tui/schedule/host-commands.js.map +1 -1
  104. package/dist/tui/schedule/tool-host.d.ts +15 -1
  105. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  106. package/dist/tui/schedule/tool-host.js +259 -74
  107. package/dist/tui/schedule/tool-host.js.map +1 -1
  108. package/package.json +6 -6
  109. package/skills/README.md +5 -0
  110. package/skills/schedule-task/SKILL.md +8 -2
@@ -5,7 +5,7 @@
5
5
  * the model wrote reaches a lock screen unless the job asked for its summary
6
6
  * (`notify.includeSummary`), and then only as one sanitised line.
7
7
  */
8
- import type { ScheduleJob } from '../types.js';
8
+ import type { ScheduleCallTally, ScheduleJob } from '../types.js';
9
9
  export type NoticeKind = 'finished' | 'failed' | 'timed-out' | 'interrupted' | 'blocked-config' | 'awaiting-approval' | 'approval-expired' | 'catch-up' | 'held' | 'needs-confirmation' | 'auto-paused';
10
10
  /** The longest body a notification carries whole (`sendDesktopNotification` cuts the rest). */
11
11
  export declare const NOTICE_BODY_MAX = 200;
@@ -22,6 +22,13 @@ export declare function noticeText(kind: NoticeKind, job: Pick<ScheduleJob, 'nam
22
22
  * the tool, not the model, and already one sanitised line.
23
23
  */
24
24
  readonly handoff?: string;
25
+ /**
26
+ * For a finished run: the calls its permissions refused. The reason
27
+ * may quote the command the model wrote, so it is said only where the
28
+ * job asked for its summary; otherwise the tool is named and `show`
29
+ * says why.
30
+ */
31
+ readonly refused?: ScheduleCallTally;
25
32
  }): {
26
33
  title: string;
27
34
  body: string;
@@ -1 +1 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/schedule/daemon/notify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,QAAQ,GACR,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,oBAAoB,GACpB,aAAa,CAAA;AAUhB,+FAA+F;AAC/F,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC,wBAAgB,UAAU,CACzB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,EACzC,KAAK,EAAE;IACN,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB,GACC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA8DjC;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQnF"}
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/schedule/daemon/notify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,QAAQ,GACR,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,oBAAoB,GACpB,aAAa,CAAA;AAUhB,+FAA+F;AAC/F,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC,wBAAgB,UAAU,CACzB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,EACzC,KAAK,EAAE;IACN,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;CACpC,GACC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAkFjC;AAUD,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQnF"}
@@ -5,6 +5,7 @@
5
5
  * the model wrote reaches a lock screen unless the job asked for its summary
6
6
  * (`notify.includeSummary`), and then only as one sanitised line.
7
7
  */
8
+ import { callsWords } from '../fire/calls.js';
8
9
  function clock(at) {
9
10
  return new Intl.DateTimeFormat('en-GB', {
10
11
  weekday: 'short',
@@ -19,8 +20,25 @@ export function noticeText(kind, job, extra) {
19
20
  const when = clock(extra.at);
20
21
  const summary = job.notify.includeSummary && extra.summary ? ` — ${extra.summary}` : '';
21
22
  switch (kind) {
22
- case 'finished':
23
- return { title, body: `finished at ${when}${summary}` };
23
+ case 'finished': {
24
+ const refused = extra.refused;
25
+ if (!refused)
26
+ return { title, body: `finished at ${when}${summary}` };
27
+ const done = `done at ${when}, but ${callsWords(refused, 'refused')}`;
28
+ if (!job.notify.includeSummary)
29
+ return {
30
+ title,
31
+ body: fit(`${done} (${refused.first.tool}); namzu schedule show ${job.name} says why`, `${done} (${refused.first.tool})`),
32
+ };
33
+ // The reason is cut, never the words before it or the summary's absence.
34
+ const head = `${done}: `;
35
+ const room = NOTICE_BODY_MAX - [...head].length - [...summary].length;
36
+ const reason = [...refused.first.reason];
37
+ const said = reason.length <= room
38
+ ? refused.first.reason
39
+ : `${reason.slice(0, Math.max(room - 1, 0)).join('')}…`;
40
+ return { title, body: fit(`${head}${said}${summary}`, `${head}${said}`) };
41
+ }
24
42
  case 'failed':
25
43
  return { title, body: `failed at ${when}${summary}` };
26
44
  case 'timed-out':
@@ -76,6 +94,14 @@ export function noticeText(kind, job, extra) {
76
94
  return { title, body: `paused after ${extra.failures ?? 'several'} failed runs in a row` };
77
95
  }
78
96
  }
97
+ /** The first text that fits a notification whole, else the last cut to fit. */
98
+ function fit(...candidates) {
99
+ const whole = candidates.find((text) => [...text].length <= NOTICE_BODY_MAX);
100
+ if (whole !== undefined)
101
+ return whole;
102
+ const last = [...(candidates.at(-1) ?? '')];
103
+ return `${last.slice(0, NOTICE_BODY_MAX - 1).join('')}…`;
104
+ }
79
105
  /** The same failure told once: status plus the reason with numbers and ids removed. */
80
106
  export function failureSignature(status, reason) {
81
107
  const normal = (reason ?? '')
@@ -1 +1 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/schedule/daemon/notify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,SAAS,KAAK,CAAC,EAAQ;IACtB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACvC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;KACjB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACd,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC,MAAM,UAAU,UAAU,CACzB,IAAgB,EAChB,GAAyC,EACzC,KAaC;IAED,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,UAAU;YACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,IAAI,GAAG,OAAO,EAAE,EAAE,CAAA;QACxD,KAAK,QAAQ;YACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,IAAI,GAAG,OAAO,EAAE,EAAE,CAAA;QACtD,KAAK,WAAW;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,gCAAgC,IAAI,EAAE,EAAE,CAAA;QAC/D,KAAK,aAAa;YACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,IAAI,EAAE,EAAE,CAAA;QACrD,KAAK,gBAAgB;YACpB,OAAO;gBACN,KAAK;gBACL,IAAI,EAAE,sBAAsB,IAAI,uCAAuC,GAAG,CAAC,IAAI,EAAE;aACjF,CAAA;QACF,KAAK,mBAAmB,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,oBAAoB,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;gBAC3D,+DAA+D;gBAC/D,2CAA2C;gBAC3C,MAAM,UAAU,GAAG;oBAClB,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,kBAAkB,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,GAAG,KAAK,yBAAyB,GAAG,CAAC,IAAI,0BAA0B;oBACnE,KAAK;iBACL,CAAA;gBACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,CAAA;gBAC3E,OAAO;oBACN,KAAK;oBACL,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;iBACrE,CAAA;YACF,CAAC;YACD,MAAM,OAAO,GAAG,uCAAuC,IAAI,GAAG,CAAA;YAC9D,gEAAgE;YAChE,uDAAuD;YACvD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa;gBACjC,CAAC,CAAC,GAAG,OAAO,gBAAgB,KAAK,CAAC,aAAa,EAAE;gBACjD,CAAC,CAAC,SAAS,CAAA;YACZ,OAAO;gBACN,KAAK;gBACL,IAAI,EACH,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,eAAe;oBAC9C,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,GAAG,OAAO,yBAAyB,GAAG,CAAC,IAAI,wBAAwB;aACvE,CAAA;QACF,CAAC;QACD,KAAK,kBAAkB;YACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,IAAI,yBAAyB,EAAE,CAAA;QAC7E,KAAK,UAAU;YACd,OAAO;gBACN,KAAK;gBACL,IAAI,EAAE,oBAAoB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;aAC1J,CAAA;QACF,KAAK,MAAM;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,iEAAiE,EAAE,CAAA;QAC1F,KAAK,oBAAoB;YACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAA;QAC5E,KAAK,aAAa;YACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,KAAK,CAAC,QAAQ,IAAI,SAAS,uBAAuB,EAAE,CAAA;IAC5F,CAAC;AACF,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAA0B;IAC1E,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;SAC3B,WAAW,EAAE;SACb,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;SAC9C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACf,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/schedule/daemon/notify.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,14 @@
11
11
  */
12
12
  /** Variables a child inherits from the daemon. Nothing else. */
13
13
  export declare const CHILD_ENV_ALLOWLIST: readonly ["HOME", "USER", "LOGNAME", "LANG", "LC_ALL", "TZ", "TMPDIR", "SHELL", "XDG_RUNTIME_DIR", "XDG_CONFIG_HOME", "DBUS_SESSION_BUS_ADDRESS", "WSL_DISTRO_NAME", "WSL_INTEROP", "SystemRoot", "USERPROFILE", "APPDATA", "LOCALAPPDATA", "DISPLAY", "WAYLAND_DISPLAY", "XAUTHORITY"];
14
- /** `PATH` without Windows drive mounts: under WSL a failed lookup through `/mnt/c` costs seconds. */
15
- export declare function stripWindowsMounts(path: string | undefined): string;
16
- /** The environment of a fire child. */
17
- export declare function childEnvironment(source: NodeJS.ProcessEnv, namzuHome: string): NodeJS.ProcessEnv;
14
+ /**
15
+ * `PATH` without Windows drive mounts: under WSL a failed lookup through
16
+ * `/mnt/c` costs seconds. The drives are the one-letter directories under
17
+ * the mount root `/etc/wsl.conf` sets (`[automount] root`, `/mnt/` by default).
18
+ */
19
+ export declare function stripWindowsMounts(path: string | undefined, mountRoot?: string): string;
20
+ /** The environment of a fire child. `mountRoot` is for a test; absent reads `/etc/wsl.conf`. */
21
+ export declare function childEnvironment(source: NodeJS.ProcessEnv, namzuHome: string, mountRoot?: string): NodeJS.ProcessEnv;
18
22
  export interface DaemonEnvFile {
19
23
  readonly values: Readonly<Record<string, string>>;
20
24
  readonly warnings: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/schedule/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,yRAuBtB,CAAA;AAEV,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKnE;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAUhG;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA8BzD"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/schedule/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,yRAuBtB,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,SAAS,GAAE,MAA2B,GACpC,MAAM,CAOR;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC,UAAU,CAUnB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA8BzD"}
@@ -10,6 +10,7 @@
10
10
  * have.
11
11
  */
12
12
  import { readFileSync, statSync } from 'node:fs';
13
+ import { readWslMountRoot } from '../context/environment.js';
13
14
  /** Variables a child inherits from the daemon. Nothing else. */
14
15
  export const CHILD_ENV_ALLOWLIST = [
15
16
  'HOME',
@@ -35,15 +36,21 @@ export const CHILD_ENV_ALLOWLIST = [
35
36
  'WAYLAND_DISPLAY',
36
37
  'XAUTHORITY',
37
38
  ];
38
- /** `PATH` without Windows drive mounts: under WSL a failed lookup through `/mnt/c` costs seconds. */
39
- export function stripWindowsMounts(path) {
39
+ /**
40
+ * `PATH` without Windows drive mounts: under WSL a failed lookup through
41
+ * `/mnt/c` costs seconds. The drives are the one-letter directories under
42
+ * the mount root `/etc/wsl.conf` sets (`[automount] root`, `/mnt/` by default).
43
+ */
44
+ export function stripWindowsMounts(path, mountRoot = readWslMountRoot()) {
45
+ const root = mountRoot.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
46
+ const drive = new RegExp(`^${root}[a-z](/|$)`, 'i');
40
47
  return (path ?? '')
41
48
  .split(':')
42
- .filter((entry) => entry !== '' && !/^\/mnt\/[a-z](\/|$)/i.test(entry))
49
+ .filter((entry) => entry !== '' && !drive.test(entry))
43
50
  .join(':');
44
51
  }
45
- /** The environment of a fire child. */
46
- export function childEnvironment(source, namzuHome) {
52
+ /** The environment of a fire child. `mountRoot` is for a test; absent reads `/etc/wsl.conf`. */
53
+ export function childEnvironment(source, namzuHome, mountRoot) {
47
54
  const env = {};
48
55
  for (const key of CHILD_ENV_ALLOWLIST)
49
56
  if (source[key] !== undefined)
@@ -51,7 +58,7 @@ export function childEnvironment(source, namzuHome) {
51
58
  env.PATH =
52
59
  process.platform === 'win32'
53
60
  ? (source.PATH ?? source.Path ?? '')
54
- : stripWindowsMounts(source.PATH);
61
+ : stripWindowsMounts(source.PATH, mountRoot);
55
62
  if (!env.PATH)
56
63
  env.PATH = '/usr/local/bin:/usr/bin:/bin';
57
64
  env.NAMZU_HOME = namzuHome;
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/schedule/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/schedule/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The tool calls of one scheduled run that did not do what they were for:
3
+ * refused (they never ran — a gate rule, the scheduled-run floor, the mode, a
4
+ * declined review) and failed (they ran and returned an error).
5
+ *
6
+ * A run ends `completed` when its turn ends normally, whatever its calls
7
+ * did: a run whose only command the floor refused ended `completed`, and its
8
+ * notification said `finished`. How the turn ended stays the status, and the
9
+ * counts with each kind's first reason travel beside it, in the run's
10
+ * result, its history record, the job's state and its notification.
11
+ */
12
+ import type { ScheduleCallTally } from '../types.js';
13
+ /** How long a recorded reason may be. */
14
+ export declare const CALL_REASON_MAX = 300;
15
+ export interface CallEnd {
16
+ readonly toolName: string;
17
+ readonly isError: boolean;
18
+ readonly output?: string;
19
+ readonly summary: string;
20
+ /** The person declined on the tool's own screen: nothing failed. */
21
+ readonly cancelled?: boolean;
22
+ }
23
+ export interface CallTallies {
24
+ readonly refusedCalls?: ScheduleCallTally;
25
+ readonly failedCalls?: ScheduleCallTally;
26
+ }
27
+ export declare class CallTally {
28
+ #private;
29
+ /**
30
+ * `withheld`: the tools the run was not given because its permissions
31
+ * never let it use them. A call to one comes back as an unknown tool, and
32
+ * is a refusal, not a failure.
33
+ */
34
+ constructor(withheld?: Iterable<string>);
35
+ /** Count one finished call. */
36
+ observe(call: CallEnd): void;
37
+ /** The counts so far, each only when above zero. */
38
+ tallies(): CallTallies;
39
+ }
40
+ /** `1 call was refused (bash: <reason>); 2 calls failed (read: <reason>)`, or nothing. */
41
+ export declare function callsLine(result: CallTallies): string;
42
+ /** `1 call refused, 2 failed` for a job's last run, from its state's counts, or nothing. */
43
+ export declare function callsCount(last: {
44
+ readonly refusedCalls?: number;
45
+ readonly failedCalls?: number;
46
+ }): string;
47
+ /** `1 call was refused`, `2 calls failed`: a count in words. */
48
+ export declare function callsWords(tally: ScheduleCallTally, verb: 'refused' | 'failed'): string;
49
+ //# sourceMappingURL=calls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/schedule/fire/calls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAapD,yCAAyC;AACzC,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,qBAAa,SAAS;;IAOrB;;;;OAIG;gBACS,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAM;IAI3C,+BAA+B;IAC/B,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAiC5B,oDAAoD;IACpD,OAAO,IAAI,WAAW;CAUtB;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAarD;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B,GAAG,MAAM,CAMT;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAKvF"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * The tool calls of one scheduled run that did not do what they were for:
3
+ * refused (they never ran — a gate rule, the scheduled-run floor, the mode, a
4
+ * declined review) and failed (they ran and returned an error).
5
+ *
6
+ * A run ends `completed` when its turn ends normally, whatever its calls
7
+ * did: a run whose only command the floor refused ended `completed`, and its
8
+ * notification said `finished`. How the turn ended stays the status, and the
9
+ * counts with each kind's first reason travel beside it, in the run's
10
+ * result, its history record, the job's state and its notification.
11
+ */
12
+ import { sanitizeLine } from '../../integrations/notifications/desktop/sanitize.js';
13
+ /** What the kernel writes in place of a result for a call that never ran (`deniedToolOutput`). */
14
+ const NOT_EXECUTED = /^Error: Tool "[^"]*" was not executed\.\s*/;
15
+ /**
16
+ * What the kernel writes for a call to a tool the session does not have, in
17
+ * each of its forms: `Error: Unknown tool "x"`, followed by `. Available: …`
18
+ * (what the step can call) when the registry says it lacks the name, and
19
+ * `Error: Unknown or unavailable tool "x": …` from a direct call.
20
+ */
21
+ const UNKNOWN_TOOL = /^Error: Unknown (?:or unavailable )?tool "/;
22
+ /** The gate's prefix, which says nothing the word "refused" does not. */
23
+ const GATE = /^Blocked by the authorization gate:\s*/;
24
+ /** How long a recorded reason may be. */
25
+ export const CALL_REASON_MAX = 300;
26
+ export class CallTally {
27
+ #refused = 0;
28
+ #failed = 0;
29
+ #firstRefused;
30
+ #firstFailed;
31
+ #withheld;
32
+ /**
33
+ * `withheld`: the tools the run was not given because its permissions
34
+ * never let it use them. A call to one comes back as an unknown tool, and
35
+ * is a refusal, not a failure.
36
+ */
37
+ constructor(withheld = []) {
38
+ this.#withheld = new Set(withheld);
39
+ }
40
+ /** Count one finished call. */
41
+ observe(call) {
42
+ if (!call.isError || call.cancelled)
43
+ return;
44
+ const text = call.output ?? call.summary;
45
+ const refused = NOT_EXECUTED.exec(text);
46
+ if (refused) {
47
+ this.#refused++;
48
+ this.#firstRefused ??= {
49
+ tool: call.toolName,
50
+ reason: sanitizeLine(text.slice(refused[0].length).replace(GATE, ''), CALL_REASON_MAX),
51
+ };
52
+ return;
53
+ }
54
+ if (this.#withheld.has(call.toolName) && UNKNOWN_TOOL.test(text)) {
55
+ this.#refused++;
56
+ this.#firstRefused ??= {
57
+ tool: call.toolName,
58
+ reason: `the job's permissions never let a run use ${call.toolName}, so the run was not given it`,
59
+ };
60
+ return;
61
+ }
62
+ this.#failed++;
63
+ this.#firstFailed ??= {
64
+ tool: call.toolName,
65
+ reason: sanitizeLine(text
66
+ .replace(/^Error:\s*/, '')
67
+ .split(/\r?\n/)
68
+ .find((line) => line.trim().length > 0) ?? '', CALL_REASON_MAX),
69
+ };
70
+ }
71
+ /** The counts so far, each only when above zero. */
72
+ tallies() {
73
+ return {
74
+ ...(this.#refused > 0 && this.#firstRefused
75
+ ? { refusedCalls: { count: this.#refused, first: this.#firstRefused } }
76
+ : {}),
77
+ ...(this.#failed > 0 && this.#firstFailed
78
+ ? { failedCalls: { count: this.#failed, first: this.#firstFailed } }
79
+ : {}),
80
+ };
81
+ }
82
+ }
83
+ /** `1 call was refused (bash: <reason>); 2 calls failed (read: <reason>)`, or nothing. */
84
+ export function callsLine(result) {
85
+ return [
86
+ ...(result.refusedCalls
87
+ ? [
88
+ `${callsWords(result.refusedCalls, 'refused')} (${result.refusedCalls.first.tool}: ${result.refusedCalls.first.reason})`,
89
+ ]
90
+ : []),
91
+ ...(result.failedCalls
92
+ ? [
93
+ `${callsWords(result.failedCalls, 'failed')} (${result.failedCalls.first.tool}: ${result.failedCalls.first.reason})`,
94
+ ]
95
+ : []),
96
+ ].join('; ');
97
+ }
98
+ /** `1 call refused, 2 failed` for a job's last run, from its state's counts, or nothing. */
99
+ export function callsCount(last) {
100
+ const refused = last.refusedCalls ?? 0;
101
+ const failed = last.failedCalls ?? 0;
102
+ const calls = (n) => `${n} call${n === 1 ? '' : 's'}`;
103
+ if (refused > 0)
104
+ return `${calls(refused)} refused${failed > 0 ? `, ${failed} failed` : ''}`;
105
+ return failed > 0 ? `${calls(failed)} failed` : '';
106
+ }
107
+ /** `1 call was refused`, `2 calls failed`: a count in words. */
108
+ export function callsWords(tally, verb) {
109
+ const n = tally.count;
110
+ return verb === 'refused'
111
+ ? `${n} call${n === 1 ? ' was' : 's were'} refused`
112
+ : `${n} call${n === 1 ? '' : 's'} failed`;
113
+ }
114
+ //# sourceMappingURL=calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/schedule/fire/calls.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fire.d.ts","sourceRoot":"","sources":["../../../src/schedule/fire/fire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAgB7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,OAAO,KAAK,EACX,WAAW,EAGX,kBAAkB,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAyB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIhF,eAAO,MAAM,WAAW,uDAAuD,CAAA;AAC/E,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2BnF;AAyBD,eAAO,MAAM,2BAA2B,8KACoI,CAAA;AAE5K,MAAM,WAAW,gBAAgB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACpB,cAAc,oBAAoB,CAAC,EACnC,mBAAmB,GAAG,oBAAoB,CAC1C,CAAA;IACD,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAA;CACnD;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC5B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE,gBAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,CA+XjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClD,GAAG,MAAM,CAGT;AAcD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEpD"}
1
+ {"version":3,"file":"fire.d.ts","sourceRoot":"","sources":["../../../src/schedule/fire/fire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAgB7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,OAAO,KAAK,EACX,WAAW,EAGX,kBAAkB,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAyB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAKhF,eAAO,MAAM,WAAW,uDAAuD,CAAA;AAC/E,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2BnF;AAyBD,eAAO,MAAM,2BAA2B,8KACoI,CAAA;AAE5K,MAAM,WAAW,gBAAgB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACpB,cAAc,oBAAoB,CAAC,EACnC,mBAAmB,GAAG,oBAAoB,CAC1C,CAAA;IACD,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAA;CACnD;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC5B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE,gBAAqB,GACzB,OAAO,CAAC,MAAM,CAAC,CAuYjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClD,GAAG,MAAM,CAGT;AAcD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEpD"}
@@ -37,6 +37,7 @@ import { compileJobPolicy, withheldTools } from '../policy.js';
37
37
  import { computeProjectDigest, projectDigestChanges } from '../store/digest.js';
38
38
  import { confirmationHolds, readJob } from '../store/jobs.js';
39
39
  import { browserPreflight } from './browser-preflight.js';
40
+ import { CallTally } from './calls.js';
40
41
  import { writeRunResult } from './result.js';
41
42
  import { unattendedNote } from './unattended-note.js';
42
43
  export const HOLD_REASON = 'Scheduled run: waiting for the operator to approve';
@@ -106,6 +107,7 @@ export async function runFire(ctx, paths, args, deps = {}) {
106
107
  let turnId;
107
108
  const warnings = [];
108
109
  const found = {};
110
+ let calls = new CallTally();
109
111
  const base = () => ({
110
112
  v: 1,
111
113
  kind: 'schedule-run-result',
@@ -117,6 +119,7 @@ export async function runFire(ctx, paths, args, deps = {}) {
117
119
  ...(turnId ? { turnId } : {}),
118
120
  ...(found.credential ? { credentialSource: found.credential } : {}),
119
121
  ...(warnings.length > 0 ? { warnings: [...warnings] } : {}),
122
+ ...calls.tallies(),
120
123
  });
121
124
  // Once the watchdog has recorded the wall clock, nothing after it rewrites the result.
122
125
  let settledByWatchdog = false;
@@ -226,6 +229,8 @@ export async function runFire(ctx, paths, args, deps = {}) {
226
229
  ],
227
230
  subagents: { active: [] },
228
231
  };
232
+ const withheld = withheldTools(job.permissions, policy);
233
+ calls = new CallTally(withheld);
229
234
  // ── the conversation ──────────────────────────────────────────────────
230
235
  let sessions;
231
236
  try {
@@ -257,7 +262,7 @@ export async function runFire(ctx, paths, args, deps = {}) {
257
262
  },
258
263
  rules: policy.rules,
259
264
  permissionMode: policy.mode,
260
- withheldTools: withheldTools(job.permissions, policy),
265
+ withheldTools: withheld,
261
266
  ...(config.mcpServers ? { mcpServers: config.mcpServers } : {}),
262
267
  ...(config.plugins ? { plugins: config.plugins } : {}),
263
268
  ...(config.skills ? { skills: config.skills } : {}),
@@ -362,6 +367,9 @@ export async function runFire(ctx, paths, args, deps = {}) {
362
367
  'namzu.tool.name': event.toolName,
363
368
  });
364
369
  break;
370
+ case 'tool-end':
371
+ calls.observe(event);
372
+ break;
365
373
  }
366
374
  }
367
375
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fire.js","sourceRoot":"","sources":["../../../src/schedule/fire/fire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fire.js","sourceRoot":"","sources":["../../../src/schedule/fire/fire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EACN,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAA;AAE9F,OAAO,EACN,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,iBAAiB,GACjB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEjF,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAO7D,OAAO,EAAyB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,WAAW,GAAG,oDAAoD,CAAA;AAC/E,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAYvC,MAAM,UAAU,aAAa,CAAC,IAAuB;IACpD,MAAM,GAAG,GAAG,CAAC,IAAY,EAAsB,EAAE;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACpC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1C,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IACxB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;IACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,WAAW,CAAuB,CAAA;IACrE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,OAAO,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAA;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,EAAE,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAA;IACvD,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,CAAA;IACzC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;IAChC,OAAO;QACN,KAAK;QACL,KAAK;QACL,GAAG;QACH,QAAQ;QACR,OAAO;QACP,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAA;AACF,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CAAC,MAAyD;IAIlF,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK;YACT,OAAO,EAAE,IAAI,EAAE,wBAAwB,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QACxF,KAAK,aAAa;YACjB,OAAO,EAAE,IAAI,EAAE,0BAA0B,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAChF,KAAK,YAAY;YAChB,OAAO,EAAE,IAAI,EAAE,oBAAoB,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC1E,KAAK,aAAa;YACjB,OAAO,EAAE,IAAI,EAAE,yBAAyB,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC/E,KAAK,QAAQ;YACZ,OAAO,EAAE,IAAI,EAAE,6BAA6B,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QACpF,KAAK,UAAU;YACd,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACvD;YACC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC/C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GACvC,2KAA2K,CAAA;AAqB5K;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,GAAmB,EACnB,KAAoB,EACpB,IAAc,EACd,OAAyB,EAAE;IAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IACrC,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IAC1E,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,IAAI,SAA6B,CAAA;IACjC,IAAI,WAA+B,CAAA;IACnC,IAAI,MAA0B,CAAA;IAC9B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,IAAI,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAmD,EAAE,CAAC,CAAC;QACnE,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS;QACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,KAAK,CAAC,OAAO,EAAE;KAClB,CAAC,CAAA;IACF,uFAAuF;IACvF,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,MAAM,MAAM,GAAG,CACd,MAAyB,EACzB,QAAgB,EAChB,QAAoC,EAAE,EAC7B,EAAE;QACX,IAAI,iBAAiB;YAAE,OAAO,CAAC,CAAA;QAC/B,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QAC9F,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAClC,uBAAuB,EAAE,IAAI,CAAC,KAAK;YACnC,uBAAuB,EAAE,IAAI,CAAC,KAAK;YACnC,uBAAuB,EAAE,MAAM;SAC/B,CAAC,CAAA;QACF,OAAO,QAAQ,CAAA;IAChB,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,QAAQ,GAAG,CAAC,EAAU,EAAE,CACxD,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAE/C,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;IAEpE,yEAAyE;IACzE,IAAI,GAA4B,CAAA;IAChC,IAAI,CAAC;QACJ,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACvE,CAAC;IACD,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,4CAA4C,CAAC,CAAA;IACtE,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,OAAO,CACb,yBAAyB,GAAG,CAAC,QAAQ,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CACjF,CAAA;IACF,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACrE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CACb,gFAAgF,GAAG,CAAC,IAAI,EAAE,CAC1F,CAAA;IACF,CAAC;IAED,yEAAyE;IACzE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACzE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACjD,IAAI,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5F,OAAO,OAAO,CACb,6BAA6B,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,SAAS,+BAA+B,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAC5H,EAAE,CACF,CAAA;IACF,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC/F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CACb,uDAAuD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,IAAI,EAAE,CACpH,CAAA;IACF,CAAC;IAED,yEAAyE;IACzE,IAAI,UAA0B,CAAA;IAC9B,IAAI,MAA+C,CAAA;IACnD,IAAI,CAAC;QACJ,UAAU,GAAG,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAChE,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,GAAG,oBAAoB,CAAC;YAC7B,GAAG,EAAE,MAAM,CAAC,SAAS;YACrB,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE;SAC7D,CAAC,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,OAAO,CACb,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAA;IACF,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE;QAChD,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,MAAM,EAAE,GAAG,CAAC,MAAM;KAClB,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,mEAAmE;QACnE,0BAA0B;QAC1B,OAAO,OAAO,CAAC,oCAAoC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,yEAAyE;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAA;IACrC,IAAI,OAA4D,CAAA;IAChE,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACpF,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;SAC5B,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/C,OAAO,GAAG,OAAO,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,yEAAyE;IACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAChE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,OAAO,CACb,qBAAqB,GAAG,CAAC,KAAK,CAAC,QAAQ,uEAAuE,KAAK,CAAC,SAAS,EAAE,CAC/H,CAAA;IACF,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAA0B,CAAC,CAAA;IACpE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;IAC9B,IAAI,MAAM,CAAC,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAgB;QAC1B,OAAO,EAAE,CAAC;QACV,SAAS,EAAE;YACV;gBACC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,QAAsB;gBACpC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD;SACD;QACD,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KACzB,CAAA;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACvD,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE/B,yEAAyE;IACzE,IAAI,QAAkD,CAAA;IACtD,IAAI,CAAC;QACJ,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC3B,SAAS,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;YAC7C,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAW;SACpD,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAA;QAC3C,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACrE,MAAM,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC1B,MAAM,EAAE,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC1G,CAAC,CAAA;IACH,CAAC;IACD,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;IAEpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;QACjE,GAAG,EAAE,MAAM,CAAC,SAAS;QACrB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,oBAAoB,EAAE,QAAQ;QAC9B,KAAK,EAAE;YACN,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC3B;QACD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,IAAI;QAC3B,aAAa,EAAE,QAAQ;QACvB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,EACN,GAAG,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;YAC9C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,qBAAqB;YACxC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAE;YACvE,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,KAAK,IAAI,OAAO;YACnB,CAAC,CAAC;gBACA,OAAO,EAAE;oBACR,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,QAAkB;oBACjE,2DAA2D;oBAC3D,4DAA4D;oBAC5D,gBAAgB;oBAChB,KAAK,EAAE;wBACN,GAAG,KAAK,CAAC,KAAK;wBACd,GAAG,MAAM,CAAC,WAAW,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAClF;wBACD,GAAG,EAAE,MAAM;qBACX;oBACD,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,YAAqB;iBAC3B;aACD;YACF,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,EAAE;YACP,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa;YACvC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;YACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;SAC/B;KACD,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QAC1C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC5C,aAAa,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,QAAQ,EAAE,CAAA;QAChB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,mCAAmC,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,EAAE,CAAA;QAChB,OAAO,OAAO,CACb,6BAA6B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjG,CAAA;IACF,CAAC;IAED,yEAAyE;IACzE,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,UAAU,CAC1B,GAAG,EAAE;QACJ,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,KAAK,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;gBACtB,MAAM,EAAE,wBAAwB,GAAG,CAAC,MAAM,CAAC,SAAS,gBAAgB;aACpE,CAAC,CAAA;YACF,iBAAiB,GAAG,IAAI,CAAA;YACxB,MAAM,wBAAwB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YACvD,IAAI,CAAC,CAAC,CAAC,CAAA;QACR,CAAC,CAAC,EAAE,CAAA;IACL,CAAC,EACD,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAC1D,CAAA;IACD,QAAQ,CAAC,KAAK,EAAE,CAAA;IAEhB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,WAA+B,CAAA;IACnC,IAAI,OAA2B,CAAA;IAC/B,IAAI,MAAM,GAAmD,IAAI,CAAA;IACjE,IAAI,MAAM,GAAkB,IAAI,CAAA;IAChC,IAAI,UAA8B,CAAA;IAClC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAiC,EAAiB,EAAE;QAC1E,MAAM,GAAG,IAAI,CAAA;QACb,MAAM,GAAG,IAAI,CAAA;QACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACX,IAAI,IAAI,KAAK,CAAC,IAAI,CAAA;oBAClB,MAAK;gBACN,KAAK,OAAO;oBACX,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;oBAC/B,OAAO,GAAI,KAAK,CAAC,IAA2C,EAAE,SAAS,CAAA;oBACvE,MAAK;gBACN,KAAK,QAAQ;oBACZ,MAAM,GAAG,KAAK,CAAA;oBACd,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;oBACrB,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;oBACxC,MAAK;gBACN,KAAK,OAAO;oBACX,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;oBACxC,MAAK;gBACN,KAAK,MAAM;oBACV,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;wBAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;oBAC/C,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;oBAC7B,IAAI,KAAK,CAAC,MAAM;wBAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;oBACvC,MAAK;gBACN,KAAK,YAAY;oBAChB,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;wBACnC,uBAAuB,EAAE,IAAI,CAAC,KAAK;wBACnC,iBAAiB,EAAE,KAAK,CAAC,QAAQ;qBACjC,CAAC,CAAA;oBACF,MAAK;gBACN,KAAK,UAAU;oBACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;oBACpB,MAAK;YACP,CAAC;QACF,CAAC;IACF,CAAC,CAAA;IACD,IAAI,CAAC;QACJ,MAAM,OAAO,CACZ,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5E,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;YACnC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE;gBACpC,OAAO,EAAE,KAAK,KAAK,SAAS;gBAC5B,GAAG,EAAE,GAAG,EAAE;gBACV,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE;aACnE,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CACF,CAAA;QACD,mEAAmE;QACnE,kDAAkD;QAClD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,SAAS,CAAC;YACT,MAAM,OAAO,GAAG,MAAwD,CAAA;YACxE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;gBAAE,MAAK;YAClE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YACnC,MAAM,QAAQ,GAAG,SAAS,CAAC;gBAC1B,MAAM,EAAE,KAAK;gBACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,QAAQ;gBACR,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB;aACtC,CAAC,CAAA;YACF,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,QAAQ,EAAE,CAAA;gBAChB,YAAY,CAAC,QAAQ,CAAC,CAAA;gBACtB,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE;oBAC3B,MAAM,EAAE,GAAG,MAAM,IAAI,8BAA8B,kBAAkB,QAAQ,CAAC,MAAM,EAAE;oBACtF,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD,CAAC,CAAA;YACH,CAAC;YACD,KAAK,EAAE,CAAA;YACP,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACrE,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAA;YAC5B,MAAM,OAAO,CACZ,OAAO,CAAC,YAAY,CAAC;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,cAAc,EAAE,MAAM,CAAC,IAAI;gBAC3B,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;aACnC,CAAC,CACF,CAAA;QACF,CAAC;IACF,CAAC;YAAS,CAAC;QACV,YAAY,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IACD,MAAM,QAAQ,EAAE,CAAA;IAEhB,MAAM,KAAK,GAAG;QACb,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAwD,CAAA;IACvE,IAAI,MAAM,EAAE,CAAC;QACZ,mEAAmE;QACnE,oEAAoE;QACpE,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtF,OAAO,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE;YACrC,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,MAAM;YAChC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,SAAS;SACZ,CAAC,CAAA;IACH,CAAC;IACD,IAAI,MAAM;QACT,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;IAC9F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;YAC7B,MAAM,EAAE,wBAAwB,GAAG,CAAC,MAAM,CAAC,SAAS,gBAAgB;YACpE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,SAAS;SACZ,CAAC,CAAA;IACH,CAAC;IACD,IAAI,UAAU,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC1B,MAAM,EAAE,qCAAqC,UAAU,EAAE;YACzD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,SAAS;SACZ,CAAC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAG7B;IACA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1F,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;AACjF,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,EAAsB;IACxD,IAAI,CAAC;QACJ,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACvC,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,OAAO;YAClB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,CAAA;IACX,CAAC;AACF,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC3C,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,QAAQ,EAAE,EAAE,CAAA;AACvI,CAAC"}
@@ -51,13 +51,19 @@
51
51
  * - **What the lexer cannot account for** — an opaque line (a command
52
52
  * substitution, `eval`-like constructs, a syntax error, a construct it does
53
53
  * not model), a command whose name expands, or a program that runs text as
54
- * code (`sh` reading its input, `sudo bash -c`, `python`, `xargs`, `watch`
55
- * …) — is denied when the line's text mentions anything the floor
56
- * protects: a scheduler word, `namzu`, NAMZU_HOME's name or a path into it.
57
- * That is the tripwire, deliberately textual and cheap. Text such a program
58
- * may run — an argument, a here-string, a here-document's body — is also
59
- * read as a command line of its own, so an escape only the inner shell
60
- * undoes does not hide it.
54
+ * code (`sh` reading its input, `sudo bash -c`, `powershell`, `python`,
55
+ * `xargs`, `watch` …) — is denied when the line's text holds something that
56
+ * could reach what the floor protects (see {@link Floor.tripwire}): a
57
+ * `schedule` subcommand that changes something with the CLI or an
58
+ * expansion in reach, the scheduler service's name, a service tool with a
59
+ * namzu name, a process killer, `NAMZU_HOME` by name or path, or the
60
+ * Windows browser's profile folder. That is the tripwire, deliberately
61
+ * textual and cheap. The product's name on its own is not in that list: a
62
+ * message box saying "Namzu: scheduled job running" reaches nothing, and a
63
+ * run that showed one was refused for it. Text such a program may run — an
64
+ * argument, a here-string, a here-document's body — is also read as a
65
+ * command line of its own, so an escape only the inner shell undoes does
66
+ * not hide it.
61
67
 
62
68
  * - **The Windows browser's profiles**, on the same words, spellings and
63
69
  * directories: a path whose segments run `AppData/Local/namzu` (any user,
@@ -101,8 +107,22 @@ export interface FloorOptions {
101
107
  export type FloorProtected = 'NAMZU_HOME' | 'the browser profiles';
102
108
  /** Why the floor denied a call: for tests and diagnostics. */
103
109
  export type FloorReason = `names ${FloorProtected}` | 'scheduler command' | `word names ${FloorProtected}` | `assigned value names ${FloorProtected}` | `redirection names ${FloorProtected}` | `loop or case word names ${FloorProtected}` | 'opaque line mentions a protected name' | 'unread text mentions a protected name' | 'too many spellings';
110
+ /** Why the floor denied a call, and what in it matched. */
111
+ export interface FloorFinding {
112
+ readonly reason: FloorReason;
113
+ /**
114
+ * The rule that matched, in words: the token or word, and the argument,
115
+ * redirection or text it stands in. This, not the list of everything the
116
+ * floor protects, is what a refusal says.
117
+ */
118
+ readonly detail: string;
119
+ }
104
120
  /** The floor's reason for denying a call, or null: what the rule below decides on. */
105
121
  export declare function scheduledRunFloorVerdict(options: FloorOptions): (call: AuthorizationPredicateCall) => FloorReason | null;
122
+ /** The floor's finding for a call, or null: the reason and what matched. */
123
+ export declare function scheduledRunFloorFinding(options: FloorOptions): (call: AuthorizationPredicateCall) => FloorFinding | null;
124
+ /** What a refusal says: the rule that matched, and that another wording will not help. */
125
+ export declare function floorRefusal(finding: FloorFinding): string;
106
126
  /** Whether `rule` is the floor's, and so can only deny. */
107
127
  export declare function isFloorRule(rule: AuthorizationRule): boolean;
108
128
  /** The floor as one gate rule. */
@@ -1 +1 @@
1
- {"version":3,"file":"floor.d.ts","sourceRoot":"","sources":["../../src/schedule/floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,OAAO,EACN,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EAQtB,MAAM,YAAY,CAAA;AAEnB,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAkD,CAAA;AAE/F,MAAM,WAAW,YAAY;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAElE,8DAA8D;AAC9D,MAAM,MAAM,WAAW,GACpB,SAAS,cAAc,EAAE,GACzB,mBAAmB,GACnB,cAAc,cAAc,EAAE,GAC9B,wBAAwB,cAAc,EAAE,GACxC,qBAAqB,cAAc,EAAE,GACrC,2BAA2B,cAAc,EAAE,GAC3C,uCAAuC,GACvC,uCAAuC,GACvC,oBAAoB,CAAA;AAEvB,sFAAsF;AACtF,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,YAAY,GACnB,CAAC,IAAI,EAAE,0BAA0B,KAAK,WAAW,GAAG,IAAI,CAG1D;AAQD,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAE5D;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAS9E;AAk3BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAStD"}
1
+ {"version":3,"file":"floor.d.ts","sourceRoot":"","sources":["../../src/schedule/floor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AAEH,OAAO,EACN,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EAStB,MAAM,YAAY,CAAA;AAEnB,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAkD,CAAA;AAE/F,MAAM,WAAW,YAAY;IAC5B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,sBAAsB,CAAA;AAElE,8DAA8D;AAC9D,MAAM,MAAM,WAAW,GACpB,SAAS,cAAc,EAAE,GACzB,mBAAmB,GACnB,cAAc,cAAc,EAAE,GAC9B,wBAAwB,cAAc,EAAE,GACxC,qBAAqB,cAAc,EAAE,GACrC,2BAA2B,cAAc,EAAE,GAC3C,uCAAuC,GACvC,uCAAuC,GACvC,oBAAoB,CAAA;AAEvB,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACvB;AAED,sFAAsF;AACtF,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,YAAY,GACnB,CAAC,IAAI,EAAE,0BAA0B,KAAK,WAAW,GAAG,IAAI,CAG1D;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,YAAY,GACnB,CAAC,IAAI,EAAE,0BAA0B,KAAK,YAAY,GAAG,IAAI,CAG3D;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE1D;AAQD,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAE5D;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAe9E;AAimCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAStD"}