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.
- package/ARCHITECTURE.md +70 -0
- package/LICENSE +21 -0
- package/README.md +346 -0
- package/dist/audit.d.ts +33 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +76 -0
- package/dist/audit.js.map +1 -0
- package/dist/bootstrap.d.ts +69 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +117 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +805 -0
- package/dist/cli.js.map +1 -0
- package/dist/compile.d.ts +88 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +544 -0
- package/dist/compile.js.map +1 -0
- package/dist/connectors/agent-noop.d.ts +23 -0
- package/dist/connectors/agent-noop.d.ts.map +1 -0
- package/dist/connectors/agent-noop.js +43 -0
- package/dist/connectors/agent-noop.js.map +1 -0
- package/dist/connectors/agent.d.ts +54 -0
- package/dist/connectors/agent.d.ts.map +1 -0
- package/dist/connectors/agent.js +21 -0
- package/dist/connectors/agent.js.map +1 -0
- package/dist/connectors/index.d.ts +13 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +17 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/local-model.d.ts +41 -0
- package/dist/connectors/local-model.d.ts.map +1 -0
- package/dist/connectors/local-model.js +106 -0
- package/dist/connectors/local-model.js.map +1 -0
- package/dist/connectors/mcp.d.ts +22 -0
- package/dist/connectors/mcp.d.ts.map +1 -0
- package/dist/connectors/mcp.js +31 -0
- package/dist/connectors/mcp.js.map +1 -0
- package/dist/connectors/memory-store.d.ts +53 -0
- package/dist/connectors/memory-store.d.ts.map +1 -0
- package/dist/connectors/memory-store.js +169 -0
- package/dist/connectors/memory-store.js.map +1 -0
- package/dist/connectors/registry.d.ts +74 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +127 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/connectors/skill-store.d.ts +38 -0
- package/dist/connectors/skill-store.d.ts.map +1 -0
- package/dist/connectors/skill-store.js +314 -0
- package/dist/connectors/skill-store.js.map +1 -0
- package/dist/connectors/types.d.ts +188 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +35 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/dashboard/server.d.ts +40 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.js +122 -0
- package/dist/dashboard/server.js.map +1 -0
- package/dist/dashboard/spa/app.js +375 -0
- package/dist/dashboard/spa/index.html +26 -0
- package/dist/dashboard/spa/styles.css +99 -0
- package/dist/errors.d.ts +111 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +187 -0
- package/dist/errors.js.map +1 -0
- package/dist/filters.d.ts +17 -0
- package/dist/filters.d.ts.map +1 -0
- package/dist/filters.js +40 -0
- package/dist/filters.js.map +1 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/lint.d.ts +97 -0
- package/dist/lint.d.ts.map +1 -0
- package/dist/lint.js +990 -0
- package/dist/lint.js.map +1 -0
- package/dist/mcp-server.d.ts +93 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +505 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/metrics.d.ts +51 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +107 -0
- package/dist/metrics.js.map +1 -0
- package/dist/parser.d.ts +160 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +991 -0
- package/dist/parser.js.map +1 -0
- package/dist/provenance.d.ts +43 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +58 -0
- package/dist/provenance.js.map +1 -0
- package/dist/runtime.d.ts +145 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1071 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scheduler.d.ts +121 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +271 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/skill-manager.d.ts +121 -0
- package/dist/skill-manager.d.ts.map +1 -0
- package/dist/skill-manager.js +251 -0
- package/dist/skill-manager.js.map +1 -0
- package/dist/testing/conformance.d.ts +57 -0
- package/dist/testing/conformance.d.ts.map +1 -0
- package/dist/testing/conformance.js +365 -0
- package/dist/testing/conformance.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/trace.d.ts +141 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +226 -0
- package/dist/trace.js.map +1 -0
- package/examples/README.md +56 -0
- package/examples/classify-support-ticket.skill.md +30 -0
- package/examples/cut-release-tag.skill.md +40 -0
- package/examples/doc-qa-with-citations.skill.md +12 -0
- package/examples/feedback-sentiment-scan.skill.md +29 -0
- package/examples/hello.skill.md +9 -0
- package/examples/hello.skill.provenance.json +10 -0
- package/examples/morning-brief.skill.md +24 -0
- package/examples/programmatic-trace-demo.mjs +89 -0
- package/examples/service-health-watch.skill.md +18 -0
- package/package.json +100 -0
- package/scaffold/config.toml +35 -0
- package/scaffold/connectors.json +19 -0
- 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"}
|