skillscript-runtime 0.2.7 → 0.2.9
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/README.md +4 -4
- package/dist/cli.js +1 -1
- package/dist/composition.d.ts +57 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +151 -0
- package/dist/composition.js.map +1 -0
- package/dist/help-content.d.ts +3 -0
- package/dist/help-content.d.ts.map +1 -0
- package/dist/help-content.js +469 -0
- package/dist/help-content.js.map +1 -0
- package/dist/mcp-server.d.ts +4 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +124 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/parser.js +2 -2
- package/dist/parser.js.map +1 -1
- package/dist/runtime.d.ts +12 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +16 -0
- package/dist/runtime.js.map +1 -1
- package/examples/hello.skill.provenance.json +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*A language for agents to write themselves in.*
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/skillscript-runtime)
|
|
6
|
-
[](#)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
[](#status)
|
|
9
9
|
|
|
@@ -114,7 +114,7 @@ Every skillscript skill is one of three shapes, determined by the relationship t
|
|
|
114
114
|
| **Augmenting** | a frontier agent's reasoning context, immediately at session start or wake | Session-start briefings, alerts, prepared context |
|
|
115
115
|
| **Template** | a frontier agent's execution loop, as a prompt the agent runs itself | Reusable recipes the agent fetches and follows |
|
|
116
116
|
|
|
117
|
-
The kinds compose. A Headless monitor fires on cron, evaluates a condition, and routes into an Augmenting skill that wakes an agent with context, which itself references a Template skill for the agent to execute. See the [Language Reference](https://github.com/sshwarts/skillscript
|
|
117
|
+
The kinds compose. A Headless monitor fires on cron, evaluates a condition, and routes into an Augmenting skill that wakes an agent with context, which itself references a Template skill for the agent to execute. See the [Language Reference](https://github.com/sshwarts/skillscript/blob/main/docs/language-reference.md) §1 for the full taxonomy.
|
|
118
118
|
|
|
119
119
|
### Waking agents
|
|
120
120
|
|
|
@@ -259,9 +259,9 @@ Each example is annotated with the language pattern it demonstrates. Authored fr
|
|
|
259
259
|
|
|
260
260
|
## Status
|
|
261
261
|
|
|
262
|
-
**v0.2.
|
|
262
|
+
**v0.2.9** — pre-1.0, breaking changes expected. The language is stable enough to author production skills; the surrounding tooling (CLI, dashboard, MCP server contract) may evolve before v1.0.
|
|
263
263
|
|
|
264
|
-
Test coverage:
|
|
264
|
+
Test coverage: 634/634 passing. Narrow-core LOC under the 5000/20-file ceiling per ERD.
|
|
265
265
|
|
|
266
266
|
What's coming next:
|
|
267
267
|
- AgentConnector reference adapters — bundled implementations for tmux pane / TTY-injection / file-watch / webhook substrates so adopters can plug `prompt-context:` / `template:` deliveries into real receivers without writing their own connector first
|
package/dist/cli.js
CHANGED
|
@@ -30,7 +30,7 @@ const MEMORY_DB = join(HOME_DIR, "memory.db");
|
|
|
30
30
|
const EXAMPLES_DIR = join(HOME_DIR, "examples");
|
|
31
31
|
const PLUGINS_DIR = join(HOME_DIR, "plugins");
|
|
32
32
|
const TRACE_DIR = join(HOME_DIR, "traces");
|
|
33
|
-
const VERSION = "0.2.
|
|
33
|
+
const VERSION = "0.2.9";
|
|
34
34
|
const COMMAND_HELP = {
|
|
35
35
|
init: {
|
|
36
36
|
description: "Scaffold ~/.skillscript/ tree + bundled example",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type ExecuteContext, type ExecuteResult } from "./runtime.js";
|
|
2
|
+
import type { SkillStore } from "./connectors/types.js";
|
|
3
|
+
export declare class RecursionDepthExceededError extends Error {
|
|
4
|
+
readonly chain: ReadonlyArray<string>;
|
|
5
|
+
readonly limit: number;
|
|
6
|
+
constructor(chain: ReadonlyArray<string>, limit: number);
|
|
7
|
+
}
|
|
8
|
+
export declare class SkillNotFoundForCompositionError extends Error {
|
|
9
|
+
readonly skillName: string;
|
|
10
|
+
constructor(skillName: string);
|
|
11
|
+
}
|
|
12
|
+
export interface ExecuteSkillOpts {
|
|
13
|
+
/** SkillStore for the child-skill lookup. Defaults to `registry.getSkillStore("primary")`. */
|
|
14
|
+
skillStore?: SkillStore;
|
|
15
|
+
/** Override or extend the parent's ExecuteContext (mechanical, agentId, registry, etc.). */
|
|
16
|
+
ctx: ExecuteContext;
|
|
17
|
+
/** Diagnostic chain of skill names already in flight; used for the recursion-error message. */
|
|
18
|
+
chain?: ReadonlyArray<string>;
|
|
19
|
+
}
|
|
20
|
+
export interface ExecuteSkillResult {
|
|
21
|
+
skill_name: string;
|
|
22
|
+
final_vars: Record<string, unknown>;
|
|
23
|
+
transcript: string[];
|
|
24
|
+
outputs: Record<string, unknown>;
|
|
25
|
+
errors: ExecuteResult["errors"];
|
|
26
|
+
target_order: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load + compile + execute a skill by name. Used by both the public
|
|
30
|
+
* `execute_skill` MCP tool and the in-skill `$ execute_skill` op
|
|
31
|
+
* intercept. Throws structured errors that the caller surfaces as
|
|
32
|
+
* either MCP error responses or op-error records.
|
|
33
|
+
*/
|
|
34
|
+
export declare function executeSkillByName(skillName: string, inputs: Record<string, string>, opts: ExecuteSkillOpts): Promise<ExecuteSkillResult>;
|
|
35
|
+
/**
|
|
36
|
+
* In-skill `$ execute_skill` op handler. Extracted from runtime.ts to
|
|
37
|
+
* keep that module's LOC under the ERD §1 narrow-core ceiling.
|
|
38
|
+
* Returns the child skill's result for binding to `$(VAR)`. Throws on
|
|
39
|
+
* malformed args, recursion overflow, or missing skill — the caller
|
|
40
|
+
* (the `$` op dispatcher) wraps with `makeOpError`.
|
|
41
|
+
*
|
|
42
|
+
* Two syntaxes for child-skill inputs are supported (v0.2.9 fix):
|
|
43
|
+
*
|
|
44
|
+
* Style 1 — bare kwargs (natural skill grammar):
|
|
45
|
+
* $ execute_skill skill_name="child" WHO="$(NAME)" -> R
|
|
46
|
+
*
|
|
47
|
+
* Style 2 — explicit `inputs={...}` JSON object (MCP-call parity):
|
|
48
|
+
* $ execute_skill skill_name="child" inputs={"WHO": "$(NAME)"} -> R
|
|
49
|
+
*
|
|
50
|
+
* Style 2 was silently dropped in v0.2.8: the `$` op parses kwargs as
|
|
51
|
+
* flat strings, so `inputs={...}` arrived as the literal JSON string,
|
|
52
|
+
* was passed to the child as a kwarg named `inputs`, and the child
|
|
53
|
+
* (which doesn't declare `inputs` as a variable) ignored it. Per
|
|
54
|
+
* Perry's thread `64445b4f`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function dispatchExecuteSkillIntercept(args: Record<string, unknown>, targetName: string, ctx: ExecuteContext): Promise<ExecuteSkillResult>;
|
|
57
|
+
//# sourceMappingURL=composition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAW,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,qBAAa,2BAA4B,SAAQ,KAAK;aACxB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;aAAkB,KAAK,EAAE,MAAM;gBAA3D,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAkB,KAAK,EAAE,MAAM;CAOxF;AAED,qBAAa,gCAAiC,SAAQ,KAAK;aAC7B,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAI9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4FAA4F;IAC5F,GAAG,EAAE,cAAc,CAAC;IACpB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAyC7B;AAUD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAU7B"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Public composition primitive (v0.2.8). Wraps the runtime's compile +
|
|
2
|
+
// execute pipeline behind a single function callable two ways:
|
|
3
|
+
//
|
|
4
|
+
// 1. From outside the runtime — `execute_skill` MCP tool handler in
|
|
5
|
+
// `mcp-server.ts` delegates here.
|
|
6
|
+
// 2. From inside a skill body — the `$` op handler in `runtime.ts`
|
|
7
|
+
// intercepts the literal tool name `execute_skill` (when no MCP
|
|
8
|
+
// connector is explicitly specified) and dispatches here, so
|
|
9
|
+
// skills can compose without requiring an MCP connector to be
|
|
10
|
+
// wired by the operator. Closes the gap Perry surfaced in thread
|
|
11
|
+
// `45c167bc`: prior to this, the only "invoke another skill" path
|
|
12
|
+
// was AMP's private `amp_execute_skill`.
|
|
13
|
+
//
|
|
14
|
+
// Recursion guard: each call increments `ctx.recursionDepth`. Throws a
|
|
15
|
+
// structured `RecursionDepthExceededError` when depth crosses
|
|
16
|
+
// `ctx.maxRecursionDepth` (default 10). The same execution context
|
|
17
|
+
// propagates `mechanical: true` through the whole sub-graph so a
|
|
18
|
+
// TestFlight preview at the parent never accidentally fires real ops
|
|
19
|
+
// in a child.
|
|
20
|
+
import { compile } from "./compile.js";
|
|
21
|
+
import { execute } from "./runtime.js";
|
|
22
|
+
const DEFAULT_MAX_RECURSION_DEPTH = 10;
|
|
23
|
+
export class RecursionDepthExceededError extends Error {
|
|
24
|
+
chain;
|
|
25
|
+
limit;
|
|
26
|
+
constructor(chain, limit) {
|
|
27
|
+
super(`execute_skill recursion depth exceeded (limit ${limit}). Chain: ${chain.join(" → ")}. ` +
|
|
28
|
+
`Likely an infinite-loop in skill composition; check for a child skill that calls back into a parent.`);
|
|
29
|
+
this.chain = chain;
|
|
30
|
+
this.limit = limit;
|
|
31
|
+
this.name = "RecursionDepthExceededError";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class SkillNotFoundForCompositionError extends Error {
|
|
35
|
+
skillName;
|
|
36
|
+
constructor(skillName) {
|
|
37
|
+
super(`execute_skill: skill '${skillName}' not found in SkillStore`);
|
|
38
|
+
this.skillName = skillName;
|
|
39
|
+
this.name = "SkillNotFoundForCompositionError";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Load + compile + execute a skill by name. Used by both the public
|
|
44
|
+
* `execute_skill` MCP tool and the in-skill `$ execute_skill` op
|
|
45
|
+
* intercept. Throws structured errors that the caller surfaces as
|
|
46
|
+
* either MCP error responses or op-error records.
|
|
47
|
+
*/
|
|
48
|
+
export async function executeSkillByName(skillName, inputs, opts) {
|
|
49
|
+
const { ctx, chain = [] } = opts;
|
|
50
|
+
const depth = (ctx.recursionDepth ?? 0) + 1;
|
|
51
|
+
const limit = ctx.maxRecursionDepth ?? DEFAULT_MAX_RECURSION_DEPTH;
|
|
52
|
+
if (depth > limit) {
|
|
53
|
+
throw new RecursionDepthExceededError([...chain, skillName], limit);
|
|
54
|
+
}
|
|
55
|
+
const skillStore = opts.skillStore ?? resolveSkillStore(ctx.registry);
|
|
56
|
+
let loaded;
|
|
57
|
+
try {
|
|
58
|
+
loaded = await skillStore.load(skillName);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
throw new SkillNotFoundForCompositionError(skillName);
|
|
62
|
+
}
|
|
63
|
+
const compiled = await compile(loaded.source, { inputs, skillStore });
|
|
64
|
+
// Propagate the parent context with the depth incremented and the
|
|
65
|
+
// child chain extended. Mechanical mode carries through unchanged.
|
|
66
|
+
const childCtx = {
|
|
67
|
+
...ctx,
|
|
68
|
+
recursionDepth: depth,
|
|
69
|
+
maxRecursionDepth: limit,
|
|
70
|
+
};
|
|
71
|
+
const result = await execute(compiled.parsed, compiled.resolvedVariables, compiled.targetOrder, childCtx);
|
|
72
|
+
return {
|
|
73
|
+
skill_name: compiled.skillName ?? skillName,
|
|
74
|
+
final_vars: result.finalVars,
|
|
75
|
+
transcript: result.emissions,
|
|
76
|
+
outputs: result.outputs,
|
|
77
|
+
errors: result.errors,
|
|
78
|
+
target_order: compiled.targetOrder,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function resolveSkillStore(registry) {
|
|
82
|
+
if (registry.hasSkillStore("primary"))
|
|
83
|
+
return registry.getSkillStore("primary");
|
|
84
|
+
throw new Error("execute_skill requires a SkillStore registered as 'primary' in the runtime registry. " +
|
|
85
|
+
"Wire one via `bootstrap()` or `registry.registerSkillStore('primary', ...)`.");
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* In-skill `$ execute_skill` op handler. Extracted from runtime.ts to
|
|
89
|
+
* keep that module's LOC under the ERD §1 narrow-core ceiling.
|
|
90
|
+
* Returns the child skill's result for binding to `$(VAR)`. Throws on
|
|
91
|
+
* malformed args, recursion overflow, or missing skill — the caller
|
|
92
|
+
* (the `$` op dispatcher) wraps with `makeOpError`.
|
|
93
|
+
*
|
|
94
|
+
* Two syntaxes for child-skill inputs are supported (v0.2.9 fix):
|
|
95
|
+
*
|
|
96
|
+
* Style 1 — bare kwargs (natural skill grammar):
|
|
97
|
+
* $ execute_skill skill_name="child" WHO="$(NAME)" -> R
|
|
98
|
+
*
|
|
99
|
+
* Style 2 — explicit `inputs={...}` JSON object (MCP-call parity):
|
|
100
|
+
* $ execute_skill skill_name="child" inputs={"WHO": "$(NAME)"} -> R
|
|
101
|
+
*
|
|
102
|
+
* Style 2 was silently dropped in v0.2.8: the `$` op parses kwargs as
|
|
103
|
+
* flat strings, so `inputs={...}` arrived as the literal JSON string,
|
|
104
|
+
* was passed to the child as a kwarg named `inputs`, and the child
|
|
105
|
+
* (which doesn't declare `inputs` as a variable) ignored it. Per
|
|
106
|
+
* Perry's thread `64445b4f`.
|
|
107
|
+
*/
|
|
108
|
+
export async function dispatchExecuteSkillIntercept(args, targetName, ctx) {
|
|
109
|
+
const childSkillName = typeof args["skill_name"] === "string" ? args["skill_name"] : "";
|
|
110
|
+
if (childSkillName === "") {
|
|
111
|
+
throw new Error(`\`$ execute_skill\` op missing required \`skill_name\` arg (target '${targetName}').`);
|
|
112
|
+
}
|
|
113
|
+
const childInputs = extractChildInputs(args);
|
|
114
|
+
return executeSkillByName(childSkillName, childInputs, {
|
|
115
|
+
ctx,
|
|
116
|
+
chain: [`target:${targetName}`],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function extractChildInputs(args) {
|
|
120
|
+
const out = {};
|
|
121
|
+
// Style 2 first — if `inputs` kwarg parses as a JSON object, unpack it
|
|
122
|
+
// into the inputs map. Symmetric with the MCP-call form.
|
|
123
|
+
const rawInputs = args["inputs"];
|
|
124
|
+
if (typeof rawInputs === "string") {
|
|
125
|
+
try {
|
|
126
|
+
const parsed = JSON.parse(rawInputs);
|
|
127
|
+
if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
128
|
+
for (const [k, v] of Object.entries(parsed)) {
|
|
129
|
+
out[k] = String(v);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
/* not JSON — fall through; `inputs` was a bare string kwarg, not a JSON object */
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (rawInputs !== null && typeof rawInputs === "object" && !Array.isArray(rawInputs)) {
|
|
138
|
+
for (const [k, v] of Object.entries(rawInputs)) {
|
|
139
|
+
out[k] = String(v);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Style 1 — bare kwargs become inputs directly. `inputs` and `skill_name`
|
|
143
|
+
// are handled separately so they don't leak into the child's variable scope.
|
|
144
|
+
for (const [k, v] of Object.entries(args)) {
|
|
145
|
+
if (k === "skill_name" || k === "inputs")
|
|
146
|
+
continue;
|
|
147
|
+
out[k] = String(v);
|
|
148
|
+
}
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=composition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-content.d.ts","sourceRoot":"","sources":["../src/help-content.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAyZzD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB"}
|