skillscript-runtime 0.2.4

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 (132) hide show
  1. package/ARCHITECTURE.md +70 -0
  2. package/LICENSE +21 -0
  3. package/README.md +346 -0
  4. package/dist/audit.d.ts +33 -0
  5. package/dist/audit.d.ts.map +1 -0
  6. package/dist/audit.js +76 -0
  7. package/dist/audit.js.map +1 -0
  8. package/dist/bootstrap.d.ts +69 -0
  9. package/dist/bootstrap.d.ts.map +1 -0
  10. package/dist/bootstrap.js +117 -0
  11. package/dist/bootstrap.js.map +1 -0
  12. package/dist/cli.d.ts +3 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +805 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/compile.d.ts +88 -0
  17. package/dist/compile.d.ts.map +1 -0
  18. package/dist/compile.js +544 -0
  19. package/dist/compile.js.map +1 -0
  20. package/dist/connectors/agent-noop.d.ts +23 -0
  21. package/dist/connectors/agent-noop.d.ts.map +1 -0
  22. package/dist/connectors/agent-noop.js +43 -0
  23. package/dist/connectors/agent-noop.js.map +1 -0
  24. package/dist/connectors/agent.d.ts +54 -0
  25. package/dist/connectors/agent.d.ts.map +1 -0
  26. package/dist/connectors/agent.js +21 -0
  27. package/dist/connectors/agent.js.map +1 -0
  28. package/dist/connectors/index.d.ts +13 -0
  29. package/dist/connectors/index.d.ts.map +1 -0
  30. package/dist/connectors/index.js +17 -0
  31. package/dist/connectors/index.js.map +1 -0
  32. package/dist/connectors/local-model.d.ts +41 -0
  33. package/dist/connectors/local-model.d.ts.map +1 -0
  34. package/dist/connectors/local-model.js +106 -0
  35. package/dist/connectors/local-model.js.map +1 -0
  36. package/dist/connectors/mcp.d.ts +22 -0
  37. package/dist/connectors/mcp.d.ts.map +1 -0
  38. package/dist/connectors/mcp.js +31 -0
  39. package/dist/connectors/mcp.js.map +1 -0
  40. package/dist/connectors/memory-store.d.ts +53 -0
  41. package/dist/connectors/memory-store.d.ts.map +1 -0
  42. package/dist/connectors/memory-store.js +169 -0
  43. package/dist/connectors/memory-store.js.map +1 -0
  44. package/dist/connectors/registry.d.ts +74 -0
  45. package/dist/connectors/registry.d.ts.map +1 -0
  46. package/dist/connectors/registry.js +127 -0
  47. package/dist/connectors/registry.js.map +1 -0
  48. package/dist/connectors/skill-store.d.ts +38 -0
  49. package/dist/connectors/skill-store.d.ts.map +1 -0
  50. package/dist/connectors/skill-store.js +314 -0
  51. package/dist/connectors/skill-store.js.map +1 -0
  52. package/dist/connectors/types.d.ts +188 -0
  53. package/dist/connectors/types.d.ts.map +1 -0
  54. package/dist/connectors/types.js +35 -0
  55. package/dist/connectors/types.js.map +1 -0
  56. package/dist/dashboard/server.d.ts +40 -0
  57. package/dist/dashboard/server.d.ts.map +1 -0
  58. package/dist/dashboard/server.js +122 -0
  59. package/dist/dashboard/server.js.map +1 -0
  60. package/dist/dashboard/spa/app.js +375 -0
  61. package/dist/dashboard/spa/index.html +26 -0
  62. package/dist/dashboard/spa/styles.css +99 -0
  63. package/dist/errors.d.ts +111 -0
  64. package/dist/errors.d.ts.map +1 -0
  65. package/dist/errors.js +187 -0
  66. package/dist/errors.js.map +1 -0
  67. package/dist/filters.d.ts +17 -0
  68. package/dist/filters.d.ts.map +1 -0
  69. package/dist/filters.js +40 -0
  70. package/dist/filters.js.map +1 -0
  71. package/dist/index.d.ts +41 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +33 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/lint.d.ts +97 -0
  76. package/dist/lint.d.ts.map +1 -0
  77. package/dist/lint.js +990 -0
  78. package/dist/lint.js.map +1 -0
  79. package/dist/mcp-server.d.ts +93 -0
  80. package/dist/mcp-server.d.ts.map +1 -0
  81. package/dist/mcp-server.js +505 -0
  82. package/dist/mcp-server.js.map +1 -0
  83. package/dist/metrics.d.ts +51 -0
  84. package/dist/metrics.d.ts.map +1 -0
  85. package/dist/metrics.js +107 -0
  86. package/dist/metrics.js.map +1 -0
  87. package/dist/parser.d.ts +160 -0
  88. package/dist/parser.d.ts.map +1 -0
  89. package/dist/parser.js +991 -0
  90. package/dist/parser.js.map +1 -0
  91. package/dist/provenance.d.ts +43 -0
  92. package/dist/provenance.d.ts.map +1 -0
  93. package/dist/provenance.js +58 -0
  94. package/dist/provenance.js.map +1 -0
  95. package/dist/runtime.d.ts +145 -0
  96. package/dist/runtime.d.ts.map +1 -0
  97. package/dist/runtime.js +1071 -0
  98. package/dist/runtime.js.map +1 -0
  99. package/dist/scheduler.d.ts +121 -0
  100. package/dist/scheduler.d.ts.map +1 -0
  101. package/dist/scheduler.js +271 -0
  102. package/dist/scheduler.js.map +1 -0
  103. package/dist/skill-manager.d.ts +121 -0
  104. package/dist/skill-manager.d.ts.map +1 -0
  105. package/dist/skill-manager.js +251 -0
  106. package/dist/skill-manager.js.map +1 -0
  107. package/dist/testing/conformance.d.ts +57 -0
  108. package/dist/testing/conformance.d.ts.map +1 -0
  109. package/dist/testing/conformance.js +365 -0
  110. package/dist/testing/conformance.js.map +1 -0
  111. package/dist/testing/index.d.ts +3 -0
  112. package/dist/testing/index.d.ts.map +1 -0
  113. package/dist/testing/index.js +5 -0
  114. package/dist/testing/index.js.map +1 -0
  115. package/dist/trace.d.ts +141 -0
  116. package/dist/trace.d.ts.map +1 -0
  117. package/dist/trace.js +226 -0
  118. package/dist/trace.js.map +1 -0
  119. package/examples/README.md +56 -0
  120. package/examples/classify-support-ticket.skill.md +30 -0
  121. package/examples/cut-release-tag.skill.md +40 -0
  122. package/examples/doc-qa-with-citations.skill.md +12 -0
  123. package/examples/feedback-sentiment-scan.skill.md +29 -0
  124. package/examples/hello.skill.md +9 -0
  125. package/examples/hello.skill.provenance.json +10 -0
  126. package/examples/morning-brief.skill.md +24 -0
  127. package/examples/programmatic-trace-demo.mjs +89 -0
  128. package/examples/service-health-watch.skill.md +18 -0
  129. package/package.json +100 -0
  130. package/scaffold/config.toml +35 -0
  131. package/scaffold/connectors.json +19 -0
  132. package/scaffold/examples/hello.skill.md +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import { type ExecuteResult } from "./runtime.js";
2
+ import type { Registry } from "./connectors/registry.js";
3
+ import type { SkillStore } from "./connectors/types.js";
4
+ import type { TriggerSource } from "./parser.js";
5
+ import type { TraceConfig, TraceStore } from "./trace.js";
6
+ /**
7
+ * Trigger scheduler — the autonomous-dispatch surface per ERD §6.
8
+ *
9
+ * Polls every `pollIntervalSeconds` (default 30s). On each tick, evaluates
10
+ * registered cron triggers against the current clock; for matching triggers
11
+ * whose skills are Approved, dispatches via runtime.execute().
12
+ *
13
+ * Session hooks fire on scheduler.start() (`session: start`) and on
14
+ * scheduler.stop() / SIGTERM (`session: end`). Event/agent-event/file-watch/
15
+ * sensor sources parse-register but never fire in v1 — dispatch attempts
16
+ * log a debug warning + skip.
17
+ *
18
+ * Concurrency: each fire is an independent execute() call. No shared mutable
19
+ * state; no serialization. Multiple skills firing the same tick run in
20
+ * parallel. No de-dup of overlapping triggers (per Open Q #1 resolution —
21
+ * authors dedup via skill body if needed).
22
+ */
23
+ export type ResolvableTriggerSource = TriggerSource;
24
+ export interface TriggerRegistration {
25
+ id: string;
26
+ skillName: string;
27
+ source: ResolvableTriggerSource;
28
+ /**
29
+ * Source-specific value: cron expression (`"0 9 * * *"`), session phase
30
+ * (`"start"` | `"end"`), event name, file path, etc.
31
+ */
32
+ name: string;
33
+ registeredAt: number;
34
+ expiresAt?: number;
35
+ /** True if from `# Triggers:` header at skill-write time; false if imperative. */
36
+ declarative: boolean;
37
+ }
38
+ export interface SchedulerConfig {
39
+ registry: Registry;
40
+ /** Required for status-state lookup at dispatch time. */
41
+ skillStore: SkillStore;
42
+ /** Cron tick interval. Default 30s. */
43
+ pollIntervalSeconds?: number;
44
+ /** Forwarded to runtime.execute(). */
45
+ enableUnsafeShell?: boolean;
46
+ absoluteTimeoutMs?: number;
47
+ /** Dispatch trace recording config. Forwarded to execute() ctx. */
48
+ trace?: TraceConfig;
49
+ /** Trace store backend. Forwarded to execute() ctx. */
50
+ traceStore?: TraceStore;
51
+ /** Optional clock source for tests. Default Date.now. */
52
+ now?: () => number;
53
+ /** Optional debug logger. Default console.warn. */
54
+ log?: (msg: string) => void;
55
+ }
56
+ export declare class Scheduler {
57
+ private readonly registry;
58
+ private readonly skillStore;
59
+ private readonly pollIntervalMs;
60
+ private readonly enableUnsafeShell;
61
+ private readonly absoluteTimeoutMs;
62
+ private readonly trace;
63
+ private readonly traceStore;
64
+ private readonly now;
65
+ private readonly log;
66
+ private readonly triggers;
67
+ private readonly cronState;
68
+ private pollTimer;
69
+ private sigtermHandler;
70
+ private nextId;
71
+ constructor(config: SchedulerConfig);
72
+ registerTrigger(reg: Omit<TriggerRegistration, "id" | "registeredAt">): TriggerRegistration;
73
+ unregisterTrigger(id: string): boolean;
74
+ listTriggers(filter?: {
75
+ skillName?: string;
76
+ source?: ResolvableTriggerSource;
77
+ }): TriggerRegistration[];
78
+ /**
79
+ * Begin polling + fire session-start hooks. Idempotent — calling start()
80
+ * twice has no extra effect.
81
+ */
82
+ start(): void;
83
+ /**
84
+ * Stop polling + fire session-end hooks. Returns a promise that resolves
85
+ * when session-end fires complete.
86
+ */
87
+ stop(): Promise<void>;
88
+ /**
89
+ * Run one tick of the poll loop. Public for tests — production callers
90
+ * use start() instead.
91
+ */
92
+ tick(): Promise<void>;
93
+ /**
94
+ * Immediate dispatch. Used by the poll loop, session-phase hooks, and
95
+ * tests. Status-state is checked at dispatch time (not registration) per
96
+ * spec — when a skill transitions Draft → Approved, its triggers
97
+ * activate without re-registration.
98
+ *
99
+ * Auto-populates `$(EVENT.fired_at_*_unix)` and `$(TRIGGER_TYPE)` from
100
+ * the current clock unless the caller's eventPayload overrides them.
101
+ * Callers invoking dispatchSkill directly (without going through a
102
+ * registered trigger) still get clock-time ambient refs out of the box.
103
+ */
104
+ dispatchSkill(skillName: string, eventPayload?: Record<string, unknown>, triggerCtx?: {
105
+ source: string;
106
+ name: string;
107
+ fired_at_ms: number;
108
+ trigger_id?: string;
109
+ }): Promise<ExecuteResult | null>;
110
+ /** Default EVENT.* ambient refs at the current clock; caller may override. */
111
+ private buildEventDefaults;
112
+ private dispatchTrigger;
113
+ private fireSessionPhase;
114
+ }
115
+ /**
116
+ * Match a 5-field cron expression against a Date. Supports star, integer
117
+ * literals, ranges (a-b), step syntax with / N, and comma-separated lists
118
+ * across MIN HOUR DOM MON DOW fields. Day-of-week uses 0=Sun convention.
119
+ */
120
+ export declare function cronMatches(expr: string, date: Date): boolean;
121
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ import { compile } from "./compile.js";
2
+ import { execute } from "./runtime.js";
3
+ export class Scheduler {
4
+ registry;
5
+ skillStore;
6
+ pollIntervalMs;
7
+ enableUnsafeShell;
8
+ absoluteTimeoutMs;
9
+ trace;
10
+ traceStore;
11
+ now;
12
+ log;
13
+ triggers = new Map();
14
+ cronState = new Map();
15
+ pollTimer = null;
16
+ sigtermHandler = null;
17
+ nextId = 1;
18
+ constructor(config) {
19
+ this.registry = config.registry;
20
+ this.skillStore = config.skillStore;
21
+ this.pollIntervalMs = (config.pollIntervalSeconds ?? 30) * 1000;
22
+ this.enableUnsafeShell = config.enableUnsafeShell ?? false;
23
+ this.absoluteTimeoutMs = config.absoluteTimeoutMs;
24
+ this.trace = config.trace;
25
+ this.traceStore = config.traceStore;
26
+ this.now = config.now ?? (() => Date.now());
27
+ this.log = config.log ?? ((msg) => process.stderr.write(`[scheduler] ${msg}\n`));
28
+ }
29
+ registerTrigger(reg) {
30
+ const id = `trig-${this.nextId++}`;
31
+ const full = {
32
+ ...reg,
33
+ id,
34
+ registeredAt: Math.floor(this.now() / 1000),
35
+ };
36
+ this.triggers.set(id, full);
37
+ return full;
38
+ }
39
+ unregisterTrigger(id) {
40
+ this.cronState.delete(id);
41
+ return this.triggers.delete(id);
42
+ }
43
+ listTriggers(filter) {
44
+ const result = [];
45
+ for (const t of this.triggers.values()) {
46
+ if (filter?.skillName !== undefined && t.skillName !== filter.skillName)
47
+ continue;
48
+ if (filter?.source !== undefined && t.source !== filter.source)
49
+ continue;
50
+ result.push(t);
51
+ }
52
+ return result;
53
+ }
54
+ /**
55
+ * Begin polling + fire session-start hooks. Idempotent — calling start()
56
+ * twice has no extra effect.
57
+ */
58
+ start() {
59
+ if (this.pollTimer !== null)
60
+ return;
61
+ this.fireSessionPhase("start").catch((err) => {
62
+ this.log(`session:start dispatch failed: ${err.message}`);
63
+ });
64
+ this.pollTimer = setInterval(() => {
65
+ this.tick().catch((err) => {
66
+ this.log(`scheduler tick failed: ${err.message}`);
67
+ });
68
+ }, this.pollIntervalMs);
69
+ // SIGTERM handler — graceful stop fires session-end. Don't install on
70
+ // Windows or when process.on isn't available (e.g., browser-like env).
71
+ if (typeof process !== "undefined" && typeof process.on === "function") {
72
+ this.sigtermHandler = () => {
73
+ this.stop().catch((err) => {
74
+ this.log(`session:end dispatch failed during SIGTERM: ${err.message}`);
75
+ });
76
+ };
77
+ process.on("SIGTERM", this.sigtermHandler);
78
+ }
79
+ }
80
+ /**
81
+ * Stop polling + fire session-end hooks. Returns a promise that resolves
82
+ * when session-end fires complete.
83
+ */
84
+ async stop() {
85
+ if (this.pollTimer !== null) {
86
+ clearInterval(this.pollTimer);
87
+ this.pollTimer = null;
88
+ }
89
+ if (this.sigtermHandler !== null && typeof process !== "undefined" && typeof process.off === "function") {
90
+ process.off("SIGTERM", this.sigtermHandler);
91
+ this.sigtermHandler = null;
92
+ }
93
+ await this.fireSessionPhase("end");
94
+ }
95
+ /**
96
+ * Run one tick of the poll loop. Public for tests — production callers
97
+ * use start() instead.
98
+ */
99
+ async tick() {
100
+ const nowMs = this.now();
101
+ // Expiry sweep.
102
+ const nowSec = Math.floor(nowMs / 1000);
103
+ for (const [id, t] of this.triggers) {
104
+ if (t.expiresAt !== undefined && t.expiresAt <= nowSec) {
105
+ this.triggers.delete(id);
106
+ this.cronState.delete(id);
107
+ }
108
+ }
109
+ // Cron evaluation.
110
+ const date = new Date(nowMs);
111
+ const minuteEpoch = Math.floor(nowMs / 60_000);
112
+ const fires = [];
113
+ for (const trig of this.triggers.values()) {
114
+ if (trig.source !== "cron")
115
+ continue;
116
+ const state = this.cronState.get(trig.id) ?? { lastFiredMinuteEpoch: -1 };
117
+ if (state.lastFiredMinuteEpoch === minuteEpoch)
118
+ continue;
119
+ if (!cronMatches(trig.name, date))
120
+ continue;
121
+ this.cronState.set(trig.id, { lastFiredMinuteEpoch: minuteEpoch });
122
+ fires.push(this.dispatchTrigger(trig, nowMs).then(() => undefined));
123
+ }
124
+ await Promise.all(fires);
125
+ }
126
+ /**
127
+ * Immediate dispatch. Used by the poll loop, session-phase hooks, and
128
+ * tests. Status-state is checked at dispatch time (not registration) per
129
+ * spec — when a skill transitions Draft → Approved, its triggers
130
+ * activate without re-registration.
131
+ *
132
+ * Auto-populates `$(EVENT.fired_at_*_unix)` and `$(TRIGGER_TYPE)` from
133
+ * the current clock unless the caller's eventPayload overrides them.
134
+ * Callers invoking dispatchSkill directly (without going through a
135
+ * registered trigger) still get clock-time ambient refs out of the box.
136
+ */
137
+ async dispatchSkill(skillName, eventPayload, triggerCtx) {
138
+ let meta;
139
+ try {
140
+ meta = await this.skillStore.metadata(skillName);
141
+ }
142
+ catch (err) {
143
+ this.log(`dispatch '${skillName}': metadata lookup failed (${err.message}); skipping`);
144
+ return null;
145
+ }
146
+ if (meta.status !== "Approved") {
147
+ this.log(`dispatch '${skillName}': skill status is '${meta.status}' (not Approved); skipping`);
148
+ return null;
149
+ }
150
+ const loaded = await this.skillStore.load(skillName);
151
+ const compiled = await compile(loaded.source);
152
+ const nowMs = this.now();
153
+ const ctx = {
154
+ registry: this.registry,
155
+ enableUnsafeShell: this.enableUnsafeShell,
156
+ ...(this.absoluteTimeoutMs !== undefined ? { absoluteTimeoutMs: this.absoluteTimeoutMs } : {}),
157
+ ...(this.trace !== undefined ? { trace: this.trace } : {}),
158
+ ...(this.traceStore !== undefined ? { traceStore: this.traceStore } : {}),
159
+ triggerCtx: triggerCtx ?? { source: "manual", name: "", fired_at_ms: nowMs },
160
+ skillVersion: loaded.metadata.version,
161
+ };
162
+ const defaults = this.buildEventDefaults();
163
+ return execute(compiled.parsed, { ...compiled.resolvedVariables, ...defaults, ...(eventPayload ?? {}) }, compiled.targetOrder, ctx);
164
+ }
165
+ /** Default EVENT.* ambient refs at the current clock; caller may override. */
166
+ buildEventDefaults() {
167
+ const nowMs = this.now();
168
+ const nowSec = Math.floor(nowMs / 1000);
169
+ return {
170
+ TRIGGER_TYPE: "manual",
171
+ "EVENT.fired_at": nowMs,
172
+ "EVENT.fired_at_unix": nowSec,
173
+ "EVENT.fired_at_plus_1h_unix": nowSec + 3600,
174
+ "EVENT.fired_at_plus_1d_unix": nowSec + 86_400,
175
+ "EVENT.fired_at_plus_7d_unix": nowSec + 604_800,
176
+ };
177
+ }
178
+ // ─── Internals ────────────────────────────────────────────────────────────
179
+ async dispatchTrigger(trig, firedAtMs) {
180
+ const firedAtUnix = Math.floor(firedAtMs / 1000);
181
+ const eventPayload = {
182
+ TRIGGER_TYPE: trig.source,
183
+ TRIGGER_PAYLOAD: trig.name,
184
+ "EVENT.fired_at": firedAtMs,
185
+ "EVENT.fired_at_unix": firedAtUnix,
186
+ "EVENT.fired_at_plus_1h_unix": firedAtUnix + 3600,
187
+ "EVENT.fired_at_plus_1d_unix": firedAtUnix + 86_400,
188
+ "EVENT.fired_at_plus_7d_unix": firedAtUnix + 604_800,
189
+ };
190
+ try {
191
+ const result = await this.dispatchSkill(trig.skillName, eventPayload, {
192
+ source: trig.source,
193
+ name: trig.name,
194
+ fired_at_ms: firedAtMs,
195
+ trigger_id: trig.id,
196
+ });
197
+ if (result !== null && result.errors.length > 0) {
198
+ for (const e of result.errors) {
199
+ this.log(`trigger ${trig.id} (${trig.source}: ${trig.name}) → ${trig.skillName} → ${e.target}/${e.opKind}: ${e.message}`);
200
+ }
201
+ }
202
+ }
203
+ catch (err) {
204
+ this.log(`trigger ${trig.id} (${trig.source}: ${trig.name}) dispatch threw: ${err.message}`);
205
+ }
206
+ }
207
+ async fireSessionPhase(phase) {
208
+ const matching = Array.from(this.triggers.values()).filter((t) => t.source === "session" && t.name === phase);
209
+ const nowMs = this.now();
210
+ await Promise.all(matching.map((t) => this.dispatchTrigger(t, nowMs)));
211
+ }
212
+ }
213
+ // ─── Cron evaluator ─────────────────────────────────────────────────────────
214
+ /**
215
+ * Match a 5-field cron expression against a Date. Supports star, integer
216
+ * literals, ranges (a-b), step syntax with / N, and comma-separated lists
217
+ * across MIN HOUR DOM MON DOW fields. Day-of-week uses 0=Sun convention.
218
+ */
219
+ export function cronMatches(expr, date) {
220
+ const fields = expr.trim().split(/\s+/);
221
+ if (fields.length !== 5)
222
+ return false;
223
+ const [min, hour, dom, mon, dow] = fields;
224
+ return (matchCronField(min, date.getMinutes(), 0, 59) &&
225
+ matchCronField(hour, date.getHours(), 0, 23) &&
226
+ matchCronField(dom, date.getDate(), 1, 31) &&
227
+ matchCronField(mon, date.getMonth() + 1, 1, 12) &&
228
+ matchCronField(dow, date.getDay(), 0, 6));
229
+ }
230
+ function matchCronField(field, value, min, max) {
231
+ for (const part of field.split(",")) {
232
+ if (matchCronPart(part, value, min, max))
233
+ return true;
234
+ }
235
+ return false;
236
+ }
237
+ function matchCronPart(part, value, min, max) {
238
+ // Step form: */N or A-B/N
239
+ const stepIdx = part.indexOf("/");
240
+ let base = part;
241
+ let step = 1;
242
+ if (stepIdx >= 0) {
243
+ base = part.slice(0, stepIdx);
244
+ const stepNum = parseInt(part.slice(stepIdx + 1), 10);
245
+ if (!Number.isFinite(stepNum) || stepNum <= 0)
246
+ return false;
247
+ step = stepNum;
248
+ }
249
+ if (base === "*") {
250
+ return (value - min) % step === 0;
251
+ }
252
+ const rangeIdx = base.indexOf("-");
253
+ if (rangeIdx >= 0) {
254
+ const a = parseInt(base.slice(0, rangeIdx), 10);
255
+ const b = parseInt(base.slice(rangeIdx + 1), 10);
256
+ if (!Number.isFinite(a) || !Number.isFinite(b))
257
+ return false;
258
+ if (value < a || value > b)
259
+ return false;
260
+ return (value - a) % step === 0;
261
+ }
262
+ const n = parseInt(base, 10);
263
+ if (!Number.isFinite(n))
264
+ return false;
265
+ if (value !== n)
266
+ return false;
267
+ if (n < min || n > max)
268
+ return false;
269
+ return true;
270
+ }
271
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import type { SkillStore } from "./connectors/types.js";
2
+ import type { Registry } from "./connectors/registry.js";
3
+ /**
4
+ * Thrown by `deleteSkill()` when the target skill is referenced by other
5
+ * skills and `opts.force` is not set. Runtime-layer error, distinct from
6
+ * the `ConnectorError` hierarchy in `src/errors.ts`.
7
+ */
8
+ export declare class ReferentialIntegrityError extends Error {
9
+ readonly skill_name: string;
10
+ readonly referenced_by: string[];
11
+ constructor(skill_name: string, referenced_by: string[]);
12
+ }
13
+ export interface DeleteSkillOptions {
14
+ /** Skip the referential-integrity check; substrate may still refuse for its own policy reasons. */
15
+ force?: boolean;
16
+ }
17
+ /**
18
+ * Runtime reference index. Maps `referencedSkill → set of skills that
19
+ * reference it`. Bidirectional bookkeeping lets storeSkill/delete updates
20
+ * stay O(refs) instead of O(N) scans.
21
+ *
22
+ * **Out-of-band edit tolerance.** If someone edits a `.skill` file directly
23
+ * (bypassing storeSkill), the index goes stale until the runtime restarts
24
+ * or `runtime.invalidateConnector()` triggers a rebuild. Not a correctness
25
+ * issue — the next startup scan re-derives — but operators editing files
26
+ * by hand will see incorrect referential-integrity checks until they
27
+ * either restart or invalidate.
28
+ *
29
+ * The runtime ships an explicit `rebuildIndex()` escape hatch for live
30
+ * recovery without restart.
31
+ */
32
+ export declare class ReferenceIndex {
33
+ /** `name → skills that reference name` (deleteSkill consumes this). */
34
+ private referencedBy;
35
+ /** `name → skills that name references` (storeSkill bookkeeping). */
36
+ private referencing;
37
+ /** Skills that reference the given target. Empty array if none. */
38
+ referencesTo(name: string): string[];
39
+ /** Skills that the given source references. Empty array if none. */
40
+ referencesFrom(name: string): string[];
41
+ /** Update edges for one skill — replaces its outgoing edges. Used after storeSkill. */
42
+ setOutgoing(name: string, targets: string[]): void;
43
+ /** Drop all edges originating from `name`. Used after deleteSkill. */
44
+ drop(name: string): void;
45
+ /** Total edge count — for tests + diagnostics. */
46
+ size(): number;
47
+ /**
48
+ * Replace this index's edges with another's. Used by
49
+ * `invalidateConnector()` when rebuilding from disk — the caller passes
50
+ * the long-lived index, we rebuild a fresh one off the store, then
51
+ * atomically swap the edges.
52
+ */
53
+ replaceAll(other: ReferenceIndex): void;
54
+ }
55
+ /**
56
+ * Walk a skill's parsed AST and extract names of skills it references via
57
+ * the `&` op. Returns a deduplicated, sorted list. Includes references to
58
+ * both data-skills (which inline at compile time) and procedural skills
59
+ * (which compile to runtime invocations) — the integrity check should fire
60
+ * for either, since deleting any referenced skill breaks the source.
61
+ *
62
+ * Walks foreach + if bodies recursively. T3+ grammar; T1 returns empty.
63
+ */
64
+ export declare function extractReferences(source: string): string[];
65
+ /**
66
+ * Build a fresh reference index from a SkillStore by scanning every skill.
67
+ * Called once at runtime startup; subsequent storeSkill/deleteSkill calls
68
+ * maintain incrementally.
69
+ */
70
+ export declare function buildReferenceIndex(store: SkillStore): Promise<ReferenceIndex>;
71
+ /**
72
+ * Store (create or update) a skill, then update the reference index for
73
+ * its outgoing edges. Returns the substrate's `VersionInfo`.
74
+ */
75
+ export declare function storeSkill(name: string, source: string, options: {
76
+ registry: Registry;
77
+ index: ReferenceIndex;
78
+ metadata?: Parameters<SkillStore["store"]>[2];
79
+ storeName?: string;
80
+ }): Promise<Awaited<ReturnType<SkillStore["store"]>>>;
81
+ /**
82
+ * Delete a skill. Default behavior: index lookup; if any skill references
83
+ * the target, throw `ReferentialIntegrityError`. With `opts.force`, skip
84
+ * the check and dispatch directly to the substrate (which may still
85
+ * refuse for its own reasons, e.g., a signed-artifact store).
86
+ */
87
+ export declare function deleteSkill(name: string, options: {
88
+ registry: Registry;
89
+ index: ReferenceIndex;
90
+ force?: boolean;
91
+ storeName?: string;
92
+ }): Promise<void>;
93
+ /**
94
+ * Invalidate a connector's cached state. **"Refresh everything dependent
95
+ * on this connector."** Type-aware behavior:
96
+ *
97
+ * - Any connector kind: calls `instance.invalidateManifest()` if defined.
98
+ * Triggers a refresh on the next `manifest()` call.
99
+ * - SkillStore (when an `index` is passed in `options`): also rebuilds
100
+ * the reference index by re-scanning the store. The recovery path for
101
+ * stale reference state after operators edit `.skill` files directly
102
+ * without going through `storeSkill()`.
103
+ *
104
+ * Used in dev/hot-reload loops and after operators change connector state
105
+ * out-of-band (new Ollama model loaded, new MCP server wired, manual
106
+ * .skill file edit).
107
+ *
108
+ * Convention reminder: connectors bump their internal `capabilities_version`
109
+ * on schema/structural changes, NOT on every query. This invalidate hook
110
+ * is the explicit escape valve for cases where the version-bump didn't
111
+ * fire (e.g., live model installation that the connector didn't observe,
112
+ * or out-of-band .skill file edits the runtime didn't mediate).
113
+ *
114
+ * Returns `Promise<void>` because the SkillStore reference-index rebuild
115
+ * is async. Non-SkillStore invalidations complete synchronously but the
116
+ * surface is uniform.
117
+ */
118
+ export declare function invalidateConnector(name: string, registry: Registry, options?: {
119
+ index?: ReferenceIndex;
120
+ }): Promise<void>;
121
+ //# sourceMappingURL=skill-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../src/skill-manager.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,UAAU,EAAE,MAAM;aAClB,aAAa,EAAE,MAAM,EAAE;gBADvB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EAAE;CAQ1C;AAED,MAAM,WAAW,kBAAkB;IACjC,mGAAmG;IACnG,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAc;IACzB,uEAAuE;IACvE,OAAO,CAAC,YAAY,CAAkC;IACtD,qEAAqE;IACrE,OAAO,CAAC,WAAW,CAAkC;IAErD,mEAAmE;IACnE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAKpC,oEAAoE;IACpE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAKtC,uFAAuF;IACvF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IA2BlD,sEAAsE;IACtE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB,kDAAkD;IAClD,IAAI,IAAI,MAAM;IAMd;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAOxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1D;AAeD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAapF;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAKnD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,cAAc,CAAA;CAAO,GACvC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}