@namzu/sdk 45.0.0 → 45.1.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 (230) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/authorization/gate.d.ts.map +1 -1
  3. package/dist/authorization/gate.js +12 -2
  4. package/dist/authorization/gate.js.map +1 -1
  5. package/dist/authorization/rules.d.ts.map +1 -1
  6. package/dist/authorization/rules.js +37 -6
  7. package/dist/authorization/rules.js.map +1 -1
  8. package/dist/authorization/shell-lexer.d.ts +14 -0
  9. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  10. package/dist/authorization/shell-lexer.js +19 -6
  11. package/dist/authorization/shell-lexer.js.map +1 -1
  12. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  13. package/dist/bridge/a2a/mapper.js +2 -0
  14. package/dist/bridge/a2a/mapper.js.map +1 -1
  15. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  16. package/dist/bridge/sse/mapper.js +1 -0
  17. package/dist/bridge/sse/mapper.js.map +1 -1
  18. package/dist/directory/types.d.ts +2 -0
  19. package/dist/directory/types.d.ts.map +1 -1
  20. package/dist/directory/types.js.map +1 -1
  21. package/dist/manager/resident/outbox.d.ts +4 -4
  22. package/dist/prompt/coding-agent-doctrine.d.ts +1 -1
  23. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  24. package/dist/prompt/coding-agent-doctrine.js +1 -0
  25. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  26. package/dist/public-runtime.d.ts +4 -1
  27. package/dist/public-runtime.d.ts.map +1 -1
  28. package/dist/public-runtime.js +11 -1
  29. package/dist/public-runtime.js.map +1 -1
  30. package/dist/public-tools.d.ts +4 -0
  31. package/dist/public-tools.d.ts.map +1 -1
  32. package/dist/public-tools.js +10 -0
  33. package/dist/public-tools.js.map +1 -1
  34. package/dist/public-types.d.ts +7 -1
  35. package/dist/public-types.d.ts.map +1 -1
  36. package/dist/runtime/query/declined.d.ts +12 -0
  37. package/dist/runtime/query/declined.d.ts.map +1 -0
  38. package/dist/runtime/query/declined.js +12 -0
  39. package/dist/runtime/query/declined.js.map +1 -0
  40. package/dist/runtime/query/executor.d.ts +3 -1
  41. package/dist/runtime/query/executor.d.ts.map +1 -1
  42. package/dist/runtime/query/executor.js +14 -2
  43. package/dist/runtime/query/executor.js.map +1 -1
  44. package/dist/runtime/query/index.d.ts.map +1 -1
  45. package/dist/runtime/query/index.js +1 -0
  46. package/dist/runtime/query/index.js.map +1 -1
  47. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  48. package/dist/runtime/query/iteration/index.js +7 -0
  49. package/dist/runtime/query/iteration/index.js.map +1 -1
  50. package/dist/runtime/query/iteration/phases/context.d.ts +6 -0
  51. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  52. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  53. package/dist/runtime/query/iteration/phases/handoff.d.ts +22 -0
  54. package/dist/runtime/query/iteration/phases/handoff.d.ts.map +1 -0
  55. package/dist/runtime/query/iteration/phases/handoff.js +65 -0
  56. package/dist/runtime/query/iteration/phases/handoff.js.map +1 -0
  57. package/dist/runtime/query/iteration/phases/index.d.ts +1 -0
  58. package/dist/runtime/query/iteration/phases/index.d.ts.map +1 -1
  59. package/dist/runtime/query/iteration/phases/index.js +1 -0
  60. package/dist/runtime/query/iteration/phases/index.js.map +1 -1
  61. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  62. package/dist/runtime/query/iteration/phases/tool-review.js +8 -3
  63. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  64. package/dist/runtime/query/resume-pending.d.ts.map +1 -1
  65. package/dist/runtime/query/resume-pending.js +3 -2
  66. package/dist/runtime/query/resume-pending.js.map +1 -1
  67. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  68. package/dist/runtime/query/review-policy.js +4 -3
  69. package/dist/runtime/query/review-policy.js.map +1 -1
  70. package/dist/schedules/cron.d.ts +21 -0
  71. package/dist/schedules/cron.d.ts.map +1 -0
  72. package/dist/schedules/cron.js +167 -0
  73. package/dist/schedules/cron.js.map +1 -0
  74. package/dist/schedules/describe.d.ts +14 -0
  75. package/dist/schedules/describe.d.ts.map +1 -0
  76. package/dist/schedules/describe.js +133 -0
  77. package/dist/schedules/describe.js.map +1 -0
  78. package/dist/schedules/errors.d.ts +11 -0
  79. package/dist/schedules/errors.d.ts.map +1 -0
  80. package/dist/schedules/errors.js +15 -0
  81. package/dist/schedules/errors.js.map +1 -0
  82. package/dist/schedules/evaluate.d.ts +35 -0
  83. package/dist/schedules/evaluate.d.ts.map +1 -0
  84. package/dist/schedules/evaluate.js +158 -0
  85. package/dist/schedules/evaluate.js.map +1 -0
  86. package/dist/schedules/index.d.ts +11 -0
  87. package/dist/schedules/index.d.ts.map +1 -0
  88. package/dist/schedules/index.js +8 -0
  89. package/dist/schedules/index.js.map +1 -0
  90. package/dist/schedules/next-fire.d.ts +50 -0
  91. package/dist/schedules/next-fire.d.ts.map +1 -0
  92. package/dist/schedules/next-fire.js +250 -0
  93. package/dist/schedules/next-fire.js.map +1 -0
  94. package/dist/schedules/spec.d.ts +30 -0
  95. package/dist/schedules/spec.d.ts.map +1 -0
  96. package/dist/schedules/spec.js +169 -0
  97. package/dist/schedules/spec.js.map +1 -0
  98. package/dist/schedules/types.d.ts +144 -0
  99. package/dist/schedules/types.d.ts.map +1 -0
  100. package/dist/schedules/types.js +11 -0
  101. package/dist/schedules/types.js.map +1 -0
  102. package/dist/schedules/tz.d.ts +44 -0
  103. package/dist/schedules/tz.d.ts.map +1 -0
  104. package/dist/schedules/tz.js +141 -0
  105. package/dist/schedules/tz.js.map +1 -0
  106. package/dist/skills/index.d.ts +1 -1
  107. package/dist/skills/index.d.ts.map +1 -1
  108. package/dist/skills/index.js +1 -1
  109. package/dist/skills/index.js.map +1 -1
  110. package/dist/skills/loader.d.ts +16 -3
  111. package/dist/skills/loader.d.ts.map +1 -1
  112. package/dist/skills/loader.js +48 -4
  113. package/dist/skills/loader.js.map +1 -1
  114. package/dist/tools/builtins/browser-url.d.ts +83 -0
  115. package/dist/tools/builtins/browser-url.d.ts.map +1 -0
  116. package/dist/tools/builtins/browser-url.js +240 -0
  117. package/dist/tools/builtins/browser-url.js.map +1 -0
  118. package/dist/tools/builtins/browser.d.ts +367 -0
  119. package/dist/tools/builtins/browser.d.ts.map +1 -0
  120. package/dist/tools/builtins/browser.js +704 -0
  121. package/dist/tools/builtins/browser.js.map +1 -0
  122. package/dist/tools/builtins/skill.d.ts.map +1 -1
  123. package/dist/tools/builtins/skill.js +15 -0
  124. package/dist/tools/builtins/skill.js.map +1 -1
  125. package/dist/tools/defineTool.d.ts +2 -0
  126. package/dist/tools/defineTool.d.ts.map +1 -1
  127. package/dist/tools/defineTool.js +1 -0
  128. package/dist/tools/defineTool.js.map +1 -1
  129. package/dist/tools/schedules/index.d.ts +5 -0
  130. package/dist/tools/schedules/index.d.ts.map +1 -0
  131. package/dist/tools/schedules/index.js +4 -0
  132. package/dist/tools/schedules/index.js.map +1 -0
  133. package/dist/tools/schedules/loop-tool.d.ts +14 -0
  134. package/dist/tools/schedules/loop-tool.d.ts.map +1 -0
  135. package/dist/tools/schedules/loop-tool.js +81 -0
  136. package/dist/tools/schedules/loop-tool.js.map +1 -0
  137. package/dist/tools/schedules/present.d.ts +16 -0
  138. package/dist/tools/schedules/present.d.ts.map +1 -0
  139. package/dist/tools/schedules/present.js +69 -0
  140. package/dist/tools/schedules/present.js.map +1 -0
  141. package/dist/tools/schedules/prompt-scan.d.ts +17 -0
  142. package/dist/tools/schedules/prompt-scan.d.ts.map +1 -0
  143. package/dist/tools/schedules/prompt-scan.js +92 -0
  144. package/dist/tools/schedules/prompt-scan.js.map +1 -0
  145. package/dist/tools/schedules/schedule-tool.d.ts +16 -0
  146. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -0
  147. package/dist/tools/schedules/schedule-tool.js +327 -0
  148. package/dist/tools/schedules/schedule-tool.js.map +1 -0
  149. package/dist/tools/schedules/types.d.ts +184 -0
  150. package/dist/tools/schedules/types.d.ts.map +1 -0
  151. package/dist/tools/schedules/types.js +11 -0
  152. package/dist/tools/schedules/types.js.map +1 -0
  153. package/dist/types/authorization/index.d.ts +86 -9
  154. package/dist/types/authorization/index.d.ts.map +1 -1
  155. package/dist/types/authorization/index.js +11 -1
  156. package/dist/types/authorization/index.js.map +1 -1
  157. package/dist/types/browser/index.d.ts +280 -0
  158. package/dist/types/browser/index.d.ts.map +1 -0
  159. package/dist/types/browser/index.js +12 -0
  160. package/dist/types/browser/index.js.map +1 -0
  161. package/dist/types/session/events.d.ts +6 -0
  162. package/dist/types/session/events.d.ts.map +1 -1
  163. package/dist/types/session/events.js.map +1 -1
  164. package/dist/types/session/records.d.ts +23 -0
  165. package/dist/types/session/records.d.ts.map +1 -1
  166. package/dist/types/session/records.js +9 -0
  167. package/dist/types/session/records.js.map +1 -1
  168. package/dist/types/tool/index.d.ts +41 -0
  169. package/dist/types/tool/index.d.ts.map +1 -1
  170. package/dist/types/tool/index.js.map +1 -1
  171. package/dist/types/tool/presentation.d.ts +7 -0
  172. package/dist/types/tool/presentation.d.ts.map +1 -1
  173. package/dist/utils/frontmatter.d.ts +18 -2
  174. package/dist/utils/frontmatter.d.ts.map +1 -1
  175. package/dist/utils/frontmatter.js +13 -3
  176. package/dist/utils/frontmatter.js.map +1 -1
  177. package/dist/utils/id.d.ts +8 -0
  178. package/dist/utils/id.d.ts.map +1 -1
  179. package/dist/utils/id.js +12 -0
  180. package/dist/utils/id.js.map +1 -1
  181. package/package.json +1 -1
  182. package/src/authorization/gate.ts +14 -2
  183. package/src/authorization/rules.ts +37 -7
  184. package/src/authorization/shell-lexer.ts +36 -6
  185. package/src/bridge/a2a/mapper.ts +2 -0
  186. package/src/bridge/sse/mapper.ts +1 -0
  187. package/src/directory/types.ts +2 -0
  188. package/src/prompt/coding-agent-doctrine.ts +1 -0
  189. package/src/public-runtime.ts +28 -0
  190. package/src/public-tools.ts +35 -0
  191. package/src/public-types.ts +50 -0
  192. package/src/runtime/query/declined.ts +12 -0
  193. package/src/runtime/query/executor.ts +17 -1
  194. package/src/runtime/query/index.ts +1 -0
  195. package/src/runtime/query/iteration/index.ts +8 -0
  196. package/src/runtime/query/iteration/phases/context.ts +6 -0
  197. package/src/runtime/query/iteration/phases/handoff.ts +74 -0
  198. package/src/runtime/query/iteration/phases/index.ts +1 -0
  199. package/src/runtime/query/iteration/phases/tool-review.ts +11 -4
  200. package/src/runtime/query/resume-pending.ts +3 -2
  201. package/src/runtime/query/review-policy.ts +4 -3
  202. package/src/schedules/cron.ts +202 -0
  203. package/src/schedules/describe.ts +138 -0
  204. package/src/schedules/errors.ts +15 -0
  205. package/src/schedules/evaluate.ts +178 -0
  206. package/src/schedules/index.ts +18 -0
  207. package/src/schedules/next-fire.ts +257 -0
  208. package/src/schedules/spec.ts +210 -0
  209. package/src/schedules/types.ts +163 -0
  210. package/src/schedules/tz.ts +155 -0
  211. package/src/skills/index.ts +1 -1
  212. package/src/skills/loader.ts +55 -4
  213. package/src/tools/builtins/browser-url.ts +251 -0
  214. package/src/tools/builtins/browser.ts +817 -0
  215. package/src/tools/builtins/skill.ts +18 -0
  216. package/src/tools/defineTool.ts +3 -0
  217. package/src/tools/schedules/index.ts +4 -0
  218. package/src/tools/schedules/loop-tool.ts +85 -0
  219. package/src/tools/schedules/present.ts +86 -0
  220. package/src/tools/schedules/prompt-scan.ts +96 -0
  221. package/src/tools/schedules/schedule-tool.ts +376 -0
  222. package/src/tools/schedules/types.ts +197 -0
  223. package/src/types/authorization/index.ts +60 -2
  224. package/src/types/browser/index.ts +341 -0
  225. package/src/types/session/events.ts +6 -0
  226. package/src/types/session/records.ts +10 -0
  227. package/src/types/tool/index.ts +42 -0
  228. package/src/types/tool/presentation.ts +7 -0
  229. package/src/utils/frontmatter.ts +29 -3
  230. package/src/utils/id.ts +14 -0
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Time-zone arithmetic over `Intl` alone.
3
+ *
4
+ * The SDK carries no time-zone database of its own: the runtime's ICU data is
5
+ * the source, read through `Intl.DateTimeFormat#formatToParts`. Everything in
6
+ * this file is expressed in "wall" milliseconds — a local date and time
7
+ * written as if it were UTC (`Date.UTC(y, m - 1, d, h, min)`) — so local
8
+ * arithmetic is plain integer arithmetic and only the conversions touch Intl.
9
+ */
10
+ /**
11
+ * Throw unless `tz` is an IANA zone this runtime knows. Returns the zone as
12
+ * the runtime spells it (`europe/istanbul` → `Europe/Istanbul`).
13
+ */
14
+ export declare function validateTimeZone(tz: string): string;
15
+ /** The zone this host is in, as the runtime reports it. */
16
+ export declare function hostTimeZone(): string;
17
+ /** The wall clock of `instant` in `tz`, as wall milliseconds (seconds dropped). */
18
+ export declare function wallOf(instant: number, tz: string): number;
19
+ /** `tz`'s offset from UTC at `instant`, in milliseconds, minute precision. */
20
+ export declare function offsetAt(instant: number, tz: string): number;
21
+ /**
22
+ * Every instant whose wall clock in `tz` reads `wall`.
23
+ *
24
+ * One instant normally, two in the hour a fall-back repeats (earliest first),
25
+ * none in the hour a spring-forward skips.
26
+ */
27
+ export declare function instantsForWall(wall: number, tz: string): number[];
28
+ /**
29
+ * The first instant whose wall clock is later than `wall`, for a `wall` that
30
+ * falls inside a spring-forward gap: the moment the clocks jumped.
31
+ */
32
+ export declare function firstInstantAfterGap(wall: number, tz: string): number;
33
+ /** Civil date parts of a wall value. */
34
+ export declare function civil(wall: number): {
35
+ year: number;
36
+ month: number;
37
+ day: number;
38
+ hour: number;
39
+ minute: number;
40
+ weekday: number;
41
+ };
42
+ /** `YYYY-MM-DD HH:MM` for an instant in `tz`. */
43
+ export declare function formatWall(instant: number, tz: string): string;
44
+ //# sourceMappingURL=tz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tz.d.ts","sourceRoot":"","sources":["../../src/schedules/tz.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,2DAA2D;AAC3D,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAYlE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED,wCAAwC;AACxC,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CACf,CAUA;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAI9D"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Time-zone arithmetic over `Intl` alone.
3
+ *
4
+ * The SDK carries no time-zone database of its own: the runtime's ICU data is
5
+ * the source, read through `Intl.DateTimeFormat#formatToParts`. Everything in
6
+ * this file is expressed in "wall" milliseconds — a local date and time
7
+ * written as if it were UTC (`Date.UTC(y, m - 1, d, h, min)`) — so local
8
+ * arithmetic is plain integer arithmetic and only the conversions touch Intl.
9
+ */
10
+ import { ScheduleValidationError } from './errors.js';
11
+ const MINUTE = 60_000;
12
+ const HOUR = 60 * MINUTE;
13
+ const formatters = new Map();
14
+ function formatterFor(tz) {
15
+ let f = formatters.get(tz);
16
+ if (!f) {
17
+ f = new Intl.DateTimeFormat('en-US', {
18
+ timeZone: tz,
19
+ hourCycle: 'h23',
20
+ year: 'numeric',
21
+ month: 'numeric',
22
+ day: 'numeric',
23
+ hour: 'numeric',
24
+ minute: 'numeric',
25
+ second: 'numeric',
26
+ });
27
+ formatters.set(tz, f);
28
+ }
29
+ return f;
30
+ }
31
+ /**
32
+ * Throw unless `tz` is an IANA zone this runtime knows. Returns the zone as
33
+ * the runtime spells it (`europe/istanbul` → `Europe/Istanbul`).
34
+ */
35
+ export function validateTimeZone(tz) {
36
+ if (typeof tz !== 'string' || tz.trim() === '') {
37
+ throw new ScheduleValidationError('a time zone is required', String(tz));
38
+ }
39
+ try {
40
+ return new Intl.DateTimeFormat('en-US', { timeZone: tz.trim() }).resolvedOptions().timeZone;
41
+ }
42
+ catch {
43
+ throw new ScheduleValidationError(`unknown time zone "${tz}"`, tz);
44
+ }
45
+ }
46
+ /** The zone this host is in, as the runtime reports it. */
47
+ export function hostTimeZone() {
48
+ return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
49
+ }
50
+ /** The wall clock of `instant` in `tz`, as wall milliseconds (seconds dropped). */
51
+ export function wallOf(instant, tz) {
52
+ const parts = formatterFor(tz).formatToParts(new Date(instant));
53
+ let year = 0;
54
+ let month = 1;
55
+ let day = 1;
56
+ let hour = 0;
57
+ let minute = 0;
58
+ for (const part of parts) {
59
+ switch (part.type) {
60
+ case 'year':
61
+ year = Number(part.value);
62
+ break;
63
+ case 'month':
64
+ month = Number(part.value);
65
+ break;
66
+ case 'day':
67
+ day = Number(part.value);
68
+ break;
69
+ case 'hour':
70
+ hour = Number(part.value) % 24;
71
+ break;
72
+ case 'minute':
73
+ minute = Number(part.value);
74
+ break;
75
+ }
76
+ }
77
+ return Date.UTC(year, month - 1, day, hour, minute);
78
+ }
79
+ /** `tz`'s offset from UTC at `instant`, in milliseconds, minute precision. */
80
+ export function offsetAt(instant, tz) {
81
+ const floored = Math.floor(instant / MINUTE) * MINUTE;
82
+ return wallOf(floored, tz) - floored;
83
+ }
84
+ /**
85
+ * Every instant whose wall clock in `tz` reads `wall`.
86
+ *
87
+ * One instant normally, two in the hour a fall-back repeats (earliest first),
88
+ * none in the hour a spring-forward skips.
89
+ */
90
+ export function instantsForWall(wall, tz) {
91
+ const offsets = new Set([
92
+ offsetAt(wall - 26 * HOUR, tz),
93
+ offsetAt(wall, tz),
94
+ offsetAt(wall + 26 * HOUR, tz),
95
+ ]);
96
+ const found = new Set();
97
+ for (const offset of offsets) {
98
+ const candidate = wall - offset;
99
+ if (wallOf(candidate, tz) === wall)
100
+ found.add(candidate);
101
+ }
102
+ return [...found].sort((a, b) => a - b);
103
+ }
104
+ /**
105
+ * The first instant whose wall clock is later than `wall`, for a `wall` that
106
+ * falls inside a spring-forward gap: the moment the clocks jumped.
107
+ */
108
+ export function firstInstantAfterGap(wall, tz) {
109
+ const a = offsetAt(wall - 26 * HOUR, tz);
110
+ const b = offsetAt(wall + 26 * HOUR, tz);
111
+ let lo = Math.floor((wall - Math.max(a, b)) / MINUTE);
112
+ let hi = Math.ceil((wall - Math.min(a, b)) / MINUTE);
113
+ // Smallest minute m in [lo, hi] with wallOf(m) > wall.
114
+ while (lo < hi) {
115
+ const mid = Math.floor((lo + hi) / 2);
116
+ if (wallOf(mid * MINUTE, tz) > wall)
117
+ hi = mid;
118
+ else
119
+ lo = mid + 1;
120
+ }
121
+ return lo * MINUTE;
122
+ }
123
+ /** Civil date parts of a wall value. */
124
+ export function civil(wall) {
125
+ const d = new Date(wall);
126
+ return {
127
+ year: d.getUTCFullYear(),
128
+ month: d.getUTCMonth() + 1,
129
+ day: d.getUTCDate(),
130
+ hour: d.getUTCHours(),
131
+ minute: d.getUTCMinutes(),
132
+ weekday: d.getUTCDay(),
133
+ };
134
+ }
135
+ /** `YYYY-MM-DD HH:MM` for an instant in `tz`. */
136
+ export function formatWall(instant, tz) {
137
+ const c = civil(wallOf(instant, tz));
138
+ const p = (n) => String(n).padStart(2, '0');
139
+ return `${c.year}-${p(c.month)}-${p(c.day)} ${p(c.hour)}:${p(c.minute)}`;
140
+ }
141
+ //# sourceMappingURL=tz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tz.js","sourceRoot":"","sources":["../../src/schedules/tz.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { loadSkill, discoverSkills } from './loader.js';
1
+ export { SKILL_FRONTMATTER_KEYS, loadSkill, discoverSkills } from './loader.js';
2
2
  export { SkillRegistry, resolveSkillChain } from './registry.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
@@ -1,3 +1,3 @@
1
- export { loadSkill, discoverSkills } from './loader.js';
1
+ export { SKILL_FRONTMATTER_KEYS, loadSkill, discoverSkills } from './loader.js';
2
2
  export { SkillRegistry, resolveSkillChain } from './registry.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
@@ -2,12 +2,25 @@ import type { SkillDisclosureLevel, SkillLoadResult } from '../types/skills/inde
2
2
  import { type Logger } from '../utils/logger.js';
3
3
  export declare const SKILL_FILENAME = "SKILL.md";
4
4
  /**
5
- * `allowed-tools` may be a YAML list. The Agent Skills format writes it
6
- * space-separated, comma-separated or as a list, and all three must mean the
7
- * same grant; the reader joins a list into the comma form.
5
+ * The frontmatter keys this loader reads.
6
+ *
7
+ * Every other key is skipped whole, whatever YAML it is written in, so a
8
+ * skill written for another agent — `argument-hint: [file]`, a `hooks:`
9
+ * block, `user-invocable: false` — loads here with those fields ignored
10
+ * instead of being refused over syntax in a field nothing reads. The keys
11
+ * listed are still parsed strictly: a value this loader USES is never read
12
+ * wrongly.
13
+ */
14
+ export declare const SKILL_FRONTMATTER_KEYS: readonly string[];
15
+ /**
16
+ * How this loader reads frontmatter. `allowed-tools` may be a YAML list: the
17
+ * Agent Skills format writes it space-separated, comma-separated or as a
18
+ * list, and all three must mean the same grant; the reader joins a list into
19
+ * the comma form. Keys the loader does not read are skipped whole.
8
20
  */
9
21
  export declare const SKILL_FRONTMATTER_OPTIONS: {
10
22
  readonly lists: readonly ["allowed-tools"];
23
+ readonly readsKey: (key: string) => boolean;
11
24
  };
12
25
  export declare function loadSkill(dirPath: string, level?: SkillDisclosureLevel, log?: Logger): Promise<SkillLoadResult>;
13
26
  export declare function discoverSkills(parentDir: string, log?: Logger): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,oBAAoB,EACpB,eAAe,EAEf,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAE/D,eAAO,MAAM,cAAc,aAAa,CAAA;AAExC;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;CAAwC,CAAA;AAuI9E,wBAAsB,SAAS,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,oBAAiC,EACxC,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBvF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,oBAAoB,EACpB,eAAe,EAEf,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAA;AAE/D,eAAO,MAAM,cAAc,aAAa,CAAA;AAExC;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EASlD,CAAA;AAIF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;6BARR,MAAM,KAAG,OAAO;CAWpC,CAAA;AA+JV,wBAAsB,SAAS,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,oBAAiC,EACxC,GAAG,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBvF"}
@@ -5,11 +5,36 @@ import { SCOPE_ATTRIBUTE } from '../utils/log/types.js';
5
5
  import { resolveLogger } from '../utils/logger.js';
6
6
  export const SKILL_FILENAME = 'SKILL.md';
7
7
  /**
8
- * `allowed-tools` may be a YAML list. The Agent Skills format writes it
9
- * space-separated, comma-separated or as a list, and all three must mean the
10
- * same grant; the reader joins a list into the comma form.
8
+ * The frontmatter keys this loader reads.
9
+ *
10
+ * Every other key is skipped whole, whatever YAML it is written in, so a
11
+ * skill written for another agent — `argument-hint: [file]`, a `hooks:`
12
+ * block, `user-invocable: false` — loads here with those fields ignored
13
+ * instead of being refused over syntax in a field nothing reads. The keys
14
+ * listed are still parsed strictly: a value this loader USES is never read
15
+ * wrongly.
16
+ */
17
+ export const SKILL_FRONTMATTER_KEYS = Object.freeze([
18
+ 'name',
19
+ 'description',
20
+ 'license',
21
+ 'compatibility',
22
+ 'allowed-tools',
23
+ 'invocation',
24
+ 'disable-model-invocation',
25
+ 'metadata',
26
+ ]);
27
+ const READS_SKILL_KEY = (key) => SKILL_FRONTMATTER_KEYS.includes(key);
28
+ /**
29
+ * How this loader reads frontmatter. `allowed-tools` may be a YAML list: the
30
+ * Agent Skills format writes it space-separated, comma-separated or as a
31
+ * list, and all three must mean the same grant; the reader joins a list into
32
+ * the comma form. Keys the loader does not read are skipped whole.
11
33
  */
12
- export const SKILL_FRONTMATTER_OPTIONS = { lists: ['allowed-tools'] };
34
+ export const SKILL_FRONTMATTER_OPTIONS = {
35
+ lists: ['allowed-tools'],
36
+ readsKey: READS_SKILL_KEY,
37
+ };
13
38
  /**
14
39
  * How this file's errors name themselves. Passed to the shared reader so a
15
40
  * frontmatter failure still reads as a `SKILL.md` failure — the reader is
@@ -86,6 +111,25 @@ function toSkillMetadata(parsed, dirPath) {
86
111
  }
87
112
  skillMetadata.invocation = invocation;
88
113
  }
114
+ // The other common spelling of "the model may not pick this":
115
+ // `disable-model-invocation: true` is `invocation: operator`. Read here,
116
+ // at the one parser, so a registry that re-reads the file on every load
117
+ // cannot lose it — a host-side override would be dropped by the first
118
+ // freshness reload and the model could then load an operator-only skill.
119
+ const disableModel = scalarAt(values, 'disable-model-invocation');
120
+ if (disableModel !== undefined) {
121
+ if (disableModel !== 'true' && disableModel !== 'false') {
122
+ // Refused for the reason `invocation` is: `yes` quietly reading as
123
+ // "not disabled" would put the skill back in front of the model.
124
+ throw new Error(`${source}: disable-model-invocation must be true or false — got "${disableModel}"`);
125
+ }
126
+ if (disableModel === 'true') {
127
+ if (skillMetadata.invocation !== undefined && skillMetadata.invocation !== 'operator') {
128
+ throw new Error(`${source}: disable-model-invocation: true contradicts invocation: ${skillMetadata.invocation}`);
129
+ }
130
+ skillMetadata.invocation = 'operator';
131
+ }
132
+ }
89
133
  const extra = mappingAt(values, 'metadata');
90
134
  if (extra && Object.keys(extra).length > 0) {
91
135
  skillMetadata.metadata = { ...extra };
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/skills/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * One spelling per address, decided before anyone judges the address.
3
+ *
4
+ * The browser tools' `url` and `origin` arguments are canonicalised by their
5
+ * input schema, and the registry hands the gate and the reviewer the schema's
6
+ * OUTPUT (`ToolRegistry.prepareExecution`). So a site rule written as
7
+ * `^https://github\.com(?:[/?#]|$)` is tested against the one spelling the
8
+ * browser will load, never against `HTTPS://GitHub.com:443/`,
9
+ * `https://github.com./` or `https://%67ithub.com/`, which name the same page
10
+ * and would each slip past a deny written for the plain form.
11
+ *
12
+ * The canonical form is the WHATWG URL serialisation (`new URL(x).href`),
13
+ * which already lowercases the scheme and host, converts an internationalised
14
+ * host to punycode, drops a default port, decodes percent-encoded host bytes
15
+ * and reads every IPv4 spelling (`2852039166`, `0xA9FEA9FE`,
16
+ * `0251.0376.0251.0376`, `169.254.43518`) as dotted-quad. On top of that:
17
+ *
18
+ * - trailing dots on the host are removed (`github.com.` is `github.com` to
19
+ * DNS and to a person, and a different string to a pattern);
20
+ * - only `http:` and `https:` are accepted, plus the literal `about:blank`;
21
+ * - an address carrying a user name or password is refused — it is how
22
+ * `https://github.com@evil.example/` reads as GitHub to a person;
23
+ * - cloud metadata endpoints are refused outright, in every spelling the
24
+ * parser folds into them. This is a floor, not the site policy: a private
25
+ * or loopback address is left to the operator's site rules, and a DNS name
26
+ * that RESOLVES to a metadata address is the host's to catch after the
27
+ * navigation lands.
28
+ */
29
+ export type BrowserUrlVerdict = {
30
+ readonly ok: true;
31
+ readonly url: string;
32
+ readonly origin: string;
33
+ } | {
34
+ readonly ok: false;
35
+ readonly reason: string;
36
+ };
37
+ export type BrowserOriginVerdict = {
38
+ readonly ok: true;
39
+ readonly origin: string;
40
+ } | {
41
+ readonly ok: false;
42
+ readonly reason: string;
43
+ };
44
+ /** Longest address the tools accept. Longer is not a page anyone meant to name. */
45
+ export declare const BROWSER_URL_MAX_LENGTH = 8192;
46
+ /**
47
+ * Is this host a cloud metadata endpoint, in any spelling the URL parser
48
+ * folds into one? `hostname` is a URL's `hostname` (IPv6 in brackets) or a
49
+ * bare name or address.
50
+ */
51
+ export declare function isCloudMetadataHost(hostname: string): boolean;
52
+ /**
53
+ * The one spelling of an address the browser may be sent to, or why not.
54
+ *
55
+ * Accepts absolute `http:` and `https:` URLs and `about:blank`. See the
56
+ * module comment for what is folded and what is refused.
57
+ */
58
+ export declare function canonicalizeBrowserUrl(raw: string): BrowserUrlVerdict;
59
+ /**
60
+ * The canonical origin (`scheme://host[:port]`) a `browser_act` call names,
61
+ * or why it is not one. A trailing `/` is accepted; a path, query or fragment
62
+ * is not — the argument is an origin, copied from the snapshot header.
63
+ */
64
+ export declare function canonicalizeBrowserOrigin(raw: string): BrowserOriginVerdict;
65
+ export type BrowserSitePatternVerdict = {
66
+ readonly ok: true;
67
+ readonly pattern: string;
68
+ } | {
69
+ readonly ok: false;
70
+ readonly reason: string;
71
+ };
72
+ /**
73
+ * The canonical spelling of a site key an operator or a job grants —
74
+ * `https://github.com`, `https://*.example.com`, `http://localhost:*` — or
75
+ * why it is not one.
76
+ *
77
+ * The scheme is literal (`http` or `https`). The host may begin with `*.`,
78
+ * meaning one or more labels in front of the rest. The port may be `*`, any
79
+ * port; a default port is dropped. The host is lowercased and punycoded like
80
+ * a URL's. A bare `*`, a path, credentials and metadata hosts are refused.
81
+ */
82
+ export declare function canonicalizeBrowserSitePattern(raw: string): BrowserSitePatternVerdict;
83
+ //# sourceMappingURL=browser-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-url.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/browser-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,iBAAiB,GAC1B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD,MAAM,MAAM,oBAAoB,GAC7B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,OAAO,CAAA;AA+D1C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAiB7D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CA+CrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAa3E;AAED,MAAM,MAAM,yBAAyB,GAClC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAoCrF"}