@plurnk/plurnk-execs 1.6.1 → 1.8.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.
package/.env.defaults CHANGED
@@ -4,7 +4,7 @@
4
4
  # package sets no operative default; the comments below ARE the operator docs.
5
5
 
6
6
  # Allowlist: register ONLY these tags (comma-separated); every other tag is off.
7
- # PLURNK_EXECS_ONLY=sh,jq,search
7
+ # PLURNK_EXECS_ONLY=sh,jq
8
8
 
9
9
  # Per-tag kill-switch (case-insensitive): set any registered tag to 0 to drop it.
10
10
  # Absent ⇒ the runtime stays enabled. e.g.:
package/README.md CHANGED
@@ -36,6 +36,7 @@ runtime declarations, and a default-exported `BaseExecutor` subclass.
36
36
  {
37
37
  "name": "cobol",
38
38
  "glyph": "🗄",
39
+ "summary": "Run a COBOL program.",
39
40
  "invocation": {
40
41
  "body": { "role": "COBOL program", "required": true },
41
42
  "example": { "body": "DISPLAY 'HELLO'." }
@@ -48,10 +49,11 @@ runtime declarations, and a default-exported `BaseExecutor` subclass.
48
49
 
49
50
  One package may claim several tags; the consumer instantiates and probes each
50
51
  tag independently. A name uses lowercase URI-scheme syntax
51
- `[a-z][a-z0-9+.-]*`; `only` is reserved by runtime policy. `invocation`
52
- defines the body and optional target buckets plus one canonical example used
53
- for both dispatch enforcement and the generated tool table. A `docs/<tag>.md` file supplies full reference
54
- material. See {§executor-runtime-declaration}.
52
+ `[a-z][a-z0-9+.-]*`; `only` is reserved by runtime policy. `summary` is the
53
+ one-line capability description. `invocation` defines the body and optional
54
+ target buckets plus one canonical example used for dispatch enforcement and the
55
+ generated `worker://plurnk/tools/` document. A `docs/<tag>.md` file supplies
56
+ supplemental detail. See {§executor-runtime-declaration}.
55
57
 
56
58
  ### Implement the executor
57
59
 
package/SPEC.md CHANGED
@@ -42,6 +42,7 @@ abstract class BaseExecutor {
42
42
  abstract run(args: ExecArgs): Promise<ExecResult>;
43
43
  probe(signal?: AbortSignal): Promise<RuntimeAvailability>;
44
44
  effect(target: string | null): Effect;
45
+ toolRegistry?(): RuntimeToolRegistry;
45
46
  }
46
47
 
47
48
  interface ChannelDecl {
@@ -59,6 +60,7 @@ interface ExecArgs {
59
60
  write(channel: string, chunk: string, mimetype?: string): void;
60
61
  setState(channel: string, state: ChannelState): void;
61
62
  emit(notice: Notice): void;
63
+ interact(request: ClientInteractionRequest): Promise<ClientInteractionResolution>;
62
64
  entry?(
63
65
  path: string,
64
66
  content: string | null,
@@ -95,6 +97,7 @@ surface.
95
97
  | `write` | Append to a declared channel. An optional mimetype replaces that channel's per-call output type. |
96
98
  | `setState` | Move a declared channel from `active` to terminal `closed` or `errored`. |
97
99
  | `emit` | Publish a transient, nonterminal Notice. |
100
+ | §executor-interaction-sink `interact` | Await one contracts-owned client interaction ({§client-interaction-wire}). Core owns identity, pending-state durability, client presentation, and cancellation; the executor owns the request and returned payload's meaning. |
98
101
  | `entry` | Optionally request consumer-owned entry materialization and receive its canonical model-facing address. |
99
102
 
100
103
  The executor receives callbacks, never a database, subscription registry,
@@ -228,6 +231,7 @@ carries the canonical attribution fact from {§plugin-attribution}.
228
231
  {
229
232
  "name": "cobol",
230
233
  "glyph": "🗄",
234
+ "summary": "Run a COBOL program.",
231
235
  "invocation": {
232
236
  "body": { "role": "COBOL program", "required": true },
233
237
  "example": { "body": "DISPLAY 'HELLO'." }
@@ -266,24 +270,31 @@ at boot; changing package membership or configuration requires a restart.
266
270
 
267
271
  ### §executor-runtime-declaration Runtime metadata
268
272
 
269
- | Field | Meaning |
270
- | --------------- | -------------------------------------------------------------------------------------------------- |
271
- | `name` | Canonical runtime tag and derived output-scheme name, admitted below. |
272
- | `glyph` | Optional presentation glyph. |
273
- | `invocation` | Required body and target contract, validated and normalized below. |
274
- | `documentation` | Optional full Markdown reference. `docs/<tag>.md` wins over the inline manifest field. |
275
- | `attribution` | Published per-tag projection of the validated package declaration ({§plugin-attribution}). |
276
- | `packageName` | Package that owns and default-exports the executor implementation. |
277
-
278
- The framework carries invocation metadata and documentation content unchanged
279
- after validating the invocation. The consumer derives its complete always-on
280
- tools directory, including one concise invocation example per selector, from
281
- that metadata; detailed instruction remains in on-demand documentation. A
273
+ | Field | Meaning |
274
+ | ------------- | -------------------------------------------------------------------------------------------------- |
275
+ | `name` | Canonical runtime tag and derived output-scheme name, admitted below. |
276
+ | `glyph` | Optional presentation glyph. |
277
+ | `summary` | Required one-line description of the capability. |
278
+ | `invocation` | Required body and target contract, validated and normalized below. |
279
+ | `details` | Optional supplemental Markdown. `docs/<tag>.md` wins over the inline manifest field. |
280
+ | `attribution` | Published per-tag projection of the validated package declaration ({§plugin-attribution}). |
281
+ | `packageName` | Package that owns and default-exports the executor implementation. |
282
+
283
+ The framework validates and carries the summary, invocation, and supplemental
284
+ details as separate facts. The consumer deterministically renders the
285
+ model-facing tool document from either the static invocation or the executor's exact
286
+ {§executor-tool-registry}; authors never duplicate Summary or Invocation in
287
+ prose. A
282
288
  multi-tag package appears at most once in `Discovery.packageAttributions`, and
283
289
  only when at least one of its tags survives discovery policy. An instantiated
284
290
  executor may add attempt-time tags through the shared runtime hook
285
291
  ({§plugin-attribution}).
286
292
 
293
+ A package `docs/<tag>.md` remains a valid standalone Markdown document. When
294
+ its first line is the exact authoring title `# <tag>`, discovery removes that
295
+ line and its following blank line before carrying the remainder as supplemental
296
+ details; the generated tool document owns the one model-facing H1.
297
+
287
298
  §executor-invocation Every runtime declares exactly one invocation contract:
288
299
 
289
300
  | Field | Contract |
@@ -296,7 +307,8 @@ executor may add attempt-time tags through the shared runtime hook
296
307
  | `target.kind` | One of the structural realization modes below. |
297
308
  | `target.directory` | Optional `"cwd"`: only a local directory becomes `cwd`; every non-directory remains the declared target. |
298
309
  | `exclusive` | Optional `true`: body and target are alternative inputs and supplying both is refused. |
299
- | `example` | Required concise invocation witness with a one-line `body`, `target`, or both as the declared shape permits. |
310
+ | `example` | Concise executable witness with a one-line `body`, `target`, or both as the declared shape permits. |
311
+ | `signature` | One-line structural body signature for a schema-backed invocation; no fabricated argument values. |
300
312
 
301
313
  | Target kind | Consumer realization |
302
314
  | ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
@@ -307,26 +319,75 @@ executor may add attempt-time tags through the shared runtime hook
307
319
  Every EXEC must supply at least a body or target even when neither field is
308
320
  independently required. A target's meaning never changes because the body is
309
321
  empty or non-empty. `exclusive` requires a target declaration; `directory` is
310
- valid only for `path` and `resource` target kinds. The example must satisfy the
311
- same required, refused, and exclusive buckets and parse as exactly one EXEC
312
- section for the runtime. An invocation declaration
322
+ valid only for `path` and `resource` target kinds. Exactly one of `example` or
323
+ `signature` is present. An example must satisfy the same required, refused,
324
+ and exclusive buckets and parse as exactly one EXEC section for the runtime. A
325
+ signature is presentation, not an executable example; dispatch still enforces
326
+ the invocation's body and target declarations. An invocation declaration
313
327
  with a missing field, unknown field, invalid combination, multiline role, or
314
328
  wrong primitive type is a fail-hard plugin contract violation before
315
329
  registration. Static, dynamic-hook, and module-owned runtimes use this same
316
330
  validation path. The enclosing runtime declaration is closed to `name`,
317
- `glyph`, `invocation`, and `documentation`; unknown or mistyped metadata is a
331
+ `glyph`, `summary`, `invocation`, and `details`; unknown or mistyped metadata is a
318
332
  contract violation rather than silently ignored teaching.
319
333
 
334
+ §executor-tool-registry A runtime representing a finite family of exact tools
335
+ may implement `toolRegistry()` and return one immutable snapshot:
336
+
337
+ ```ts
338
+ interface RuntimeToolRegistry {
339
+ tools: readonly {
340
+ target: string;
341
+ summary: string;
342
+ invocation: RuntimeInvocation;
343
+ details?: string;
344
+ }[];
345
+ }
346
+ ```
347
+
348
+ Each entry owns one canonical literal target, one nonempty one-line summary,
349
+ its complete invocation contract, and optional supplemental Markdown. Its
350
+ invocation declares that target bucket as required and
351
+ `literal`; duplicate targets, divergent example targets, or malformed
352
+ invocations fail the plugin boundary. The exact target must round-trip through
353
+ the language's canonical target-slot escaping. The closed `tools` set replaces the
354
+ runtime's generic invocation for model presentation and dispatch admission:
355
+ an empty set exposes and admits no target, with no generic fallback. Core uses
356
+ the selected entry's invocation for bucket validation before calling
357
+ `effect()`.
358
+
359
+ The same snapshot owns every exact tool document, so enabled summaries,
360
+ invocations, admitted targets, and effect-classification inputs cannot describe
361
+ different tool sets. The hook is synchronous and
362
+ side-effect-free; a protocol executor refreshes its cached snapshot at its own
363
+ I/O boundary rather than making packet assembly perform network discovery.
364
+
365
+ §executor-tool-document **Tool documents are the model-facing executor
366
+ directory.** A general runtime's document carries exact H2 `Summary` and
367
+ `Invocation` sections plus its executable witness. Its Summary is that compact
368
+ invocation witness in inline code, with the authored description as an
369
+ operation annotation on its invocation line and a literal `\n` before a
370
+ one-line body. An exact registry instead renders one compact family document
371
+ whose Summary remains the family description and whose H2 `Invocation`
372
+ contains one `plurnk` fence with
373
+ every exact annotated EXEC heading and signature, plus one child document per
374
+ tool. Each child's Summary is its annotated invocation form; its H2 `Invocation`
375
+ contains the literal target, signature, and supplemental input details.
376
+ Supplemental `details` follows framework-owned sections and cannot own identity,
377
+ invocation, or admission. The consumer chooses resource addresses, materializes
378
+ the documents, and exposes each Summary through ordinary FIND metadata. No
379
+ executor table or executor-specific discovery protocol exists.
380
+
320
381
  Runtime-name admission is one identity contract:
321
382
 
322
383
  | Constraint | Contract |
323
384
  | ----------- | ------------------------------------------------------------------------------------------------------------- |
324
385
  | Syntax | `[a-z][a-z0-9+.-]*`: canonical lowercase RFC-scheme syntax that is also an admitted EXEC identifier. |
325
- | Identity | The exact name is the EXEC selector, registry key, `docs/<tag>.md` basename, and output URI-scheme name. |
386
+ | Identity | The exact name is the EXEC selector, registry key, tool-family identity, and output URI-scheme name. |
326
387
  | Reservation | `only` is unavailable because `PLURNK_EXECS_ONLY` owns that case-insensitive configuration key. |
327
388
 
328
389
  Installed static declarations, trusted dynamic-hook declarations, and
329
- module-owned declarations use the same validator before documentation lookup,
390
+ module-owned declarations use the same validator before detail lookup,
330
391
  policy filtering, or registry mutation. A malformed claimed declaration fails
331
392
  hard and names its package or module boundary; discovery still ignores an
332
393
  unreadable package that never forms an executor manifest.
@@ -390,7 +451,6 @@ tags are offered in a particular workspace ({§bundled-set}).
390
451
  | -------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------- | ---------------------------------- |
391
452
  | `common` | `sh`, `bash`, `node`, `python`, `python3`, `perl`, `ruby`, `php`, `lua`, `deno`, `bun`, `tcl`, `bc`, `awk` | `host` | `stdout`, `stderr` / `text/stream` |
392
453
  | `git` | `git` | `host` | `stdout`, `stderr` / `text/stream` |
393
- | `search` | `search`, `news` | `read` | `results` / `application/json` |
394
454
  | `jq` | `jq` | no target `pure`; target `read` | `results` / `application/jsonl` |
395
455
  | `sqlite` | `sqlite` | memory `pure`; file `host` | `results` / `application/json` |
396
456
  | `wasm` | `wat`, `wasm` | no target `pure`; file `read` | `results` / `application/json` |
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeDeclaration.d.ts","sourceRoot":"","sources":["../src/RuntimeDeclaration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CA4BxD;CACJ"}
1
+ {"version":3,"file":"RuntimeDeclaration.d.ts","sourceRoot":"","sources":["../src/RuntimeDeclaration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CA6CxD;CACJ"}
@@ -1,6 +1,7 @@
1
1
  import RuntimeInvocation from "./RuntimeInvocation.js";
2
+ import RuntimeSummary from "./RuntimeSummary.js";
2
3
  import RuntimeTag from "./RuntimeTag.js";
3
- const FIELDS = new Set(["name", "glyph", "invocation", "documentation"]);
4
+ const FIELDS = new Set(["name", "glyph", "summary", "invocation", "details", "resourcesPath", "expandTools"]);
4
5
  export default class RuntimeDeclaration {
5
6
  static assert(value, owner) {
6
7
  const fail = (detail) => {
@@ -14,20 +15,37 @@ export default class RuntimeDeclaration {
14
15
  if (unknown !== undefined)
15
16
  fail(`declaration has unknown field '${unknown}'`);
16
17
  const name = RuntimeTag.assert(declaration.name, owner);
18
+ const summary = RuntimeSummary.assert(declaration.summary, "summary", fail);
17
19
  const invocation = RuntimeInvocation.assert(declaration.invocation, owner, name);
18
20
  if ("glyph" in declaration && typeof declaration.glyph !== "string") {
19
21
  fail("glyph must be a string");
20
22
  }
21
- if ("documentation" in declaration && typeof declaration.documentation !== "string") {
22
- fail("documentation must be a string");
23
+ if ("details" in declaration && typeof declaration.details !== "string") {
24
+ fail("details must be a string");
25
+ }
26
+ if ("resourcesPath" in declaration
27
+ && (typeof declaration.resourcesPath !== "string"
28
+ || declaration.resourcesPath.length === 0
29
+ || !declaration.resourcesPath.startsWith("/"))) {
30
+ fail("resourcesPath must be a non-empty absolute pathname like /tools");
31
+ }
32
+ if ("expandTools" in declaration && typeof declaration.expandTools !== "boolean") {
33
+ fail("expandTools must be a boolean");
23
34
  }
24
35
  return {
25
36
  name,
37
+ summary,
26
38
  invocation,
27
39
  ...(declaration.glyph === undefined ? {} : { glyph: declaration.glyph }),
28
- ...(declaration.documentation === undefined
40
+ ...(declaration.details === undefined
41
+ ? {}
42
+ : { details: declaration.details }),
43
+ ...(declaration.resourcesPath === undefined
44
+ ? {}
45
+ : { resourcesPath: declaration.resourcesPath }),
46
+ ...(declaration.expandTools === undefined
29
47
  ? {}
30
- : { documentation: declaration.documentation }),
48
+ : { expandTools: declaration.expandTools }),
31
49
  };
32
50
  }
33
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeDeclaration.js","sourceRoot":"","sources":["../src/RuntimeDeclaration.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAGzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACnC,MAAM,CAAC,MAAM,CAAC,KAAc,EAAE,KAAa;QACvC,MAAM,IAAI,GAAG,CAAC,MAAc,EAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC;QACF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,WAAW,GAAG,KAAgC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,kCAAkC,OAAO,GAAG,CAAC,CAAC;QAE9E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClE,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,eAAe,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YAClF,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO;YACH,IAAI;YACJ,UAAU;YACV,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAe,EAAE,CAAC;YAClF,GAAG,CAAC,WAAW,CAAC,aAAa,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,aAAuB,EAAE,CAAC;SAChE,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"RuntimeDeclaration.js","sourceRoot":"","sources":["../src/RuntimeDeclaration.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { RuntimeInvocation as RuntimeInvocationDecl } from "./types.ts";
1
+ import type { RuntimeInvocation as RuntimeInvocationDecl, RuntimeToolRegistry } from "./types.ts";
2
2
  export default class RuntimeInvocation {
3
3
  static assert(value: unknown, packageName: string, runtime: string): RuntimeInvocationDecl;
4
+ static assertToolRegistry(value: unknown, packageName: string, runtime: string): RuntimeToolRegistry;
4
5
  }
5
6
  //# sourceMappingURL=RuntimeInvocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeInvocation.d.ts","sourceRoot":"","sources":["../src/RuntimeInvocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGR,iBAAiB,IAAI,qBAAqB,EAG7C,MAAM,YAAY,CAAC;AAwDpB,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,qBAAqB,CA0EzF;CACJ"}
1
+ {"version":3,"file":"RuntimeInvocation.d.ts","sourceRoot":"","sources":["../src/RuntimeInvocation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGR,iBAAiB,IAAI,qBAAqB,EAE1C,mBAAmB,EAGtB,MAAM,YAAY,CAAC;AAoEpB,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,qBAAqB,CA2FzF;IAED,MAAM,CAAC,kBAAkB,CACrB,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAChB,mBAAmB,CA4CrB;CACJ"}
@@ -1,4 +1,5 @@
1
- import { PlurnkParser } from "@plurnk/plurnk-contracts";
1
+ import { PathSyntax, PlurnkParser } from "@plurnk/plurnk-contracts";
2
+ import RuntimeSummary from "./RuntimeSummary.js";
2
3
  const TARGET_KINDS = new Set(["literal", "path", "resource"]);
3
4
  const recordOf = (value, field, fail) => {
4
5
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -28,13 +29,24 @@ const exampleLineOf = (value, field, fail) => {
28
29
  }
29
30
  return value;
30
31
  };
32
+ const oneExecSection = (source, expectedTarget) => {
33
+ const parsed = PlurnkParser.parseStatements(source);
34
+ const statements = parsed.items.filter((item) => item.kind === "statement");
35
+ const errors = parsed.items.filter((item) => item.kind === "error");
36
+ const statement = statements[0]?.statement;
37
+ return statements.length === 1
38
+ && statement?.op === "EXEC"
39
+ && (expectedTarget === undefined || statement.target?.raw === expectedTarget)
40
+ && errors.length === 0
41
+ && parsed.unparsedTail === undefined;
42
+ };
31
43
  export default class RuntimeInvocation {
32
44
  static assert(value, packageName, runtime) {
33
45
  const fail = (detail) => {
34
46
  throw new Error(`runtime declaration invalid: ${packageName} '${runtime}' ${detail}`);
35
47
  };
36
48
  const invocation = recordOf(value, "invocation", fail);
37
- assertKnownFields(invocation, new Set(["body", "target", "exclusive", "example"]), "invocation", fail);
49
+ assertKnownFields(invocation, new Set(["body", "target", "exclusive", "example", "signature"]), "invocation", fail);
38
50
  const bodyValue = recordOf(invocation.body, "invocation.body", fail);
39
51
  assertKnownFields(bodyValue, new Set(["role", "required"]), "invocation.body", fail);
40
52
  const body = {
@@ -71,6 +83,22 @@ export default class RuntimeInvocation {
71
83
  else if (exclusive) {
72
84
  fail("exclusive invocation must declare a target");
73
85
  }
86
+ const hasExample = "example" in invocation;
87
+ const hasSignature = "signature" in invocation;
88
+ if (hasExample === hasSignature) {
89
+ fail("invocation must provide exactly one example or signature");
90
+ }
91
+ const shape = {
92
+ body,
93
+ ...(target === undefined ? {} : { target }),
94
+ ...(exclusive ? { exclusive: true } : {}),
95
+ };
96
+ if (hasSignature) {
97
+ return {
98
+ ...shape,
99
+ signature: exampleLineOf(invocation.signature, "invocation.signature", fail),
100
+ };
101
+ }
74
102
  const exampleValue = recordOf(invocation.example, "invocation.example", fail);
75
103
  assertKnownFields(exampleValue, new Set(["body", "target"]), "invocation.example", fail);
76
104
  const example = {
@@ -93,19 +121,57 @@ export default class RuntimeInvocation {
93
121
  fail("invocation.example must provide the required target");
94
122
  if (exclusive && hasBody && hasTarget)
95
123
  fail("invocation.example must provide exactly one exclusive input");
96
- const source = `## EXEC0 [${runtime}]${hasTarget ? ` (${example.target})` : ""}${hasBody ? `\n${example.body}` : ""}`;
97
- const parsed = PlurnkParser.parseStatements(source);
98
- const statements = parsed.items.filter((item) => item.kind === "statement");
99
- const errors = parsed.items.filter((item) => item.kind === "error");
100
- if (statements.length !== 1 || statements[0]?.statement.op !== "EXEC" || errors.length > 0 || parsed.unparsedTail !== undefined) {
124
+ const exampleTarget = example.target === undefined
125
+ ? ""
126
+ : ` (${PathSyntax.escapeTarget(example.target)})`;
127
+ const source = `## EXEC0 [${runtime}]${exampleTarget}${hasBody ? `\n${example.body}` : ""}`;
128
+ if (!oneExecSection(source)) {
101
129
  fail("invocation.example must render one valid EXEC section");
102
130
  }
103
- return {
104
- body,
105
- ...(target === undefined ? {} : { target }),
106
- ...(exclusive ? { exclusive: true } : {}),
107
- example,
131
+ return { ...shape, example };
132
+ }
133
+ static assertToolRegistry(value, packageName, runtime) {
134
+ const fail = (detail) => {
135
+ throw new Error(`runtime declaration invalid: ${packageName} '${runtime}' ${detail}`);
108
136
  };
137
+ const registry = recordOf(value, "tool registry", fail);
138
+ assertKnownFields(registry, new Set(["tools"]), "tool registry", fail);
139
+ const toolValues = Array.isArray(registry.tools)
140
+ ? registry.tools
141
+ : fail("tool registry.tools must be an array");
142
+ const targets = new Set();
143
+ const tools = toolValues.map((value, index) => {
144
+ const tool = recordOf(value, `tool registry.tools[${index}]`, fail);
145
+ assertKnownFields(tool, new Set(["target", "summary", "invocation", "details"]), `tool registry.tools[${index}]`, fail);
146
+ const exactTarget = exampleLineOf(tool.target, `tool registry.tools[${index}].target`, fail);
147
+ const summary = RuntimeSummary.assert(tool.summary, `tool registry.tools[${index}].summary`, fail);
148
+ if ("details" in tool && typeof tool.details !== "string") {
149
+ fail(`tool registry.tools[${index}].details must be a string`);
150
+ }
151
+ const escapedTarget = PathSyntax.escapeTarget(exactTarget);
152
+ if (!oneExecSection(`## EXEC0 [${runtime}] (${escapedTarget})`, exactTarget)) {
153
+ fail(`tool registry.tools[${index}] target '${exactTarget}' must render one valid EXEC section`);
154
+ }
155
+ const invocation = RuntimeInvocation.assert(tool.invocation, packageName, runtime);
156
+ if (invocation.target?.required !== true
157
+ || invocation.target.kind !== "literal") {
158
+ fail(`tool registry.tools[${index}].invocation must declare a required literal target`);
159
+ }
160
+ if (invocation.example?.target !== undefined && invocation.example.target !== exactTarget) {
161
+ fail(`tool registry.tools[${index}] target '${exactTarget}' conflicts with invocation.example.target '${invocation.example.target}'`);
162
+ }
163
+ if (targets.has(exactTarget)) {
164
+ fail(`tool registry contains duplicate exact target '${exactTarget}'`);
165
+ }
166
+ targets.add(exactTarget);
167
+ return {
168
+ target: exactTarget,
169
+ summary,
170
+ invocation,
171
+ ...(tool.details === undefined ? {} : { details: tool.details }),
172
+ };
173
+ });
174
+ return { tools };
109
175
  }
110
176
  }
111
177
  //# sourceMappingURL=RuntimeInvocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeInvocation.js","sourceRoot":"","sources":["../src/RuntimeInvocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeInvocation.js","sourceRoot":"","sources":["../src/RuntimeInvocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAWjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjF,MAAM,QAAQ,GAAG,CACb,KAAc,EACd,KAAa,EACb,IAA+B,EACR,EAAE;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAgC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACtB,KAAwC,EACxC,OAA4B,EAC5B,KAAa,EACb,IAA+B,EAC3B,EAAE;IACN,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,KAAK,uBAAuB,OAAO,GAAG,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CACX,KAAc,EACd,KAAa,EACb,IAA+B,EACzB,EAAE;IACR,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACf,KAAc,EACd,KAAa,EACb,IAA+B,EACxB,EAAE;IACT,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAClB,KAAc,EACd,KAAa,EACb,IAA+B,EACzB,EAAE;IACR,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrG,IAAI,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,cAAuB,EAAW,EAAE;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;IAC3C,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;WACvB,SAAS,EAAE,EAAE,KAAK,MAAM;WACxB,CAAC,cAAc,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC;WAC1E,MAAM,CAAC,MAAM,KAAK,CAAC;WACnB,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAClC,MAAM,CAAC,MAAM,CAAC,KAAc,EAAE,WAAmB,EAAE,OAAe;QAC9D,MAAM,IAAI,GAAG,CAAC,MAAc,EAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,KAAK,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,iBAAiB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAEpH,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACrE,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACrF,MAAM,IAAI,GAAoB;YAC1B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC;YAC1D,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,0BAA0B,EAAE,IAAI,CAAC;SAC7E,CAAC;QAEF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC5B,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAqC,CAAC;QAC1C,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAC3E,iBAAiB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAC9G,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAyB,CAAC,EAAE,CAAC;gBACnG,IAAI,CAAC,2DAA2D,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAyB,CAAC;YACnD,IAAI,SAA4B,CAAC;YACjC,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;gBAC7B,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK;oBAAE,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACrF,IAAI,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC/E,SAAS,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,MAAM,GAAG;gBACL,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,CAAC;gBAC9D,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,CAAC;gBAC9E,IAAI;gBACJ,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;aACpD,CAAC;QACN,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,IAAI,UAAU,CAAC;QAC3C,MAAM,YAAY,GAAG,WAAW,IAAI,UAAU,CAAC;QAC/C,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,KAAK,GAIP;YACA,IAAI;YACJ,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACf,OAAO;gBACH,GAAG,KAAK;gBACR,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,sBAAsB,EAAE,IAAI,CAAC;aAC/E,CAAC;QACN,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC9E,iBAAiB,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACzF,MAAM,OAAO,GAA6B;YACtC,GAAG,CAAC,MAAM,IAAI,YAAY;gBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE;gBAC7E,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,QAAQ,IAAI,YAAY;gBACxB,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,2BAA2B,EAAE,IAAI,CAAC,EAAE;gBACnF,CAAC,CAAC,EAAE,CAAC;SACZ,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;QAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACzF,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS;YAAE,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAClG,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACzG,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS;YAAE,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAE3G,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,aAAa,OAAO,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5F,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,uDAAuD,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,kBAAkB,CACrB,KAAc,EACd,WAAmB,EACnB,OAAe;QAEf,MAAM,IAAI,GAAG,CAAC,MAAc,EAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,KAAK,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACxD,iBAAiB,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,UAAU,GAAc,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvD,CAAC,CAAC,QAAQ,CAAC,KAAK;YAChB,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAyB,EAAE;YACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC;YACpE,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,EAAE,uBAAuB,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC;YACxH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,KAAK,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,KAAK,WAAW,EAAE,IAAI,CAAC,CAAC;YACnG,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxD,IAAI,CAAC,uBAAuB,KAAK,4BAA4B,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,aAAa,OAAO,MAAM,aAAa,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,uBAAuB,KAAK,aAAa,WAAW,sCAAsC,CAAC,CAAC;YACrG,CAAC;YACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACnF,IACI,UAAU,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI;mBACjC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EACzC,CAAC;gBACC,IAAI,CAAC,uBAAuB,KAAK,qDAAqD,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACxF,IAAI,CAAC,uBAAuB,KAAK,aAAa,WAAW,+CAA+C,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1I,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,kDAAkD,WAAW,GAAG,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO;gBACH,MAAM,EAAE,WAAW;gBACnB,OAAO;gBACP,UAAU;gBACV,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAiB,EAAE,CAAC;aAC7E,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,4 @@
1
+ export default class RuntimeSummary {
2
+ static assert(value: unknown, field: string, fail: (detail: string) => never): string;
3
+ }
4
+ //# sourceMappingURL=RuntimeSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeSummary.d.ts","sourceRoot":"","sources":["../src/RuntimeSummary.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,MAAM,CACT,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,GAChC,MAAM,CAKR;CACJ"}
@@ -0,0 +1,9 @@
1
+ export default class RuntimeSummary {
2
+ static assert(value, field, fail) {
3
+ if (typeof value !== "string" || value.trim() === "" || /[\r\n]/u.test(value)) {
4
+ fail(`${field} must be one non-empty line`);
5
+ }
6
+ return value.trim();
7
+ }
8
+ }
9
+ //# sourceMappingURL=RuntimeSummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeSummary.js","sourceRoot":"","sources":["../src/RuntimeSummary.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,MAAM,CACT,KAAc,EACd,KAAa,EACb,IAA+B;QAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AA8BpF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IACzB,OAAa,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAwCnE;CAkIJ"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AA8BpF,MAAM,CAAC,OAAO,OAAO,QAAQ;;IACzB,OAAa,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAwCnE;CA0IJ"}
package/dist/discover.js CHANGED
@@ -24,12 +24,12 @@ import RuntimeDeclaration from "./RuntimeDeclaration.js";
24
24
  //
25
25
  // Trust precedes executable hooks ({§executor-trust}). A package is recognized
26
26
  // only when its manifest declares `plurnk.kind === "exec"`; tags come from:
27
- // - STATIC: `plurnk.runtimes: { name, glyph?, invocation, documentation? }[]` —
27
+ // - STATIC: `plurnk.runtimes: { name, glyph?, summary, invocation, details? }[]` —
28
28
  // tags known at publish time.
29
29
  // - DYNAMIC: `plurnk.runtimesModule: "<export-subpath>"` — a trusted hook that
30
30
  // returns deployment-configured declarations ({§executor-dynamic-runtimes}).
31
31
  // Each decl registers its tag separately; one package can claim many tags
32
- // backed by the same default export. Invocation, documentation, and attribution
32
+ // backed by the same default export. Summary, invocation, details, and attribution
33
33
  // projection are defined by {§executor-runtime-declaration}.
34
34
  //
35
35
  // Tags occupy one flat namespace. Two packages claiming one tag are a fail-hard
@@ -116,15 +116,18 @@ export default class Discover {
116
116
  const infos = [];
117
117
  for (const raw of await Discover.#runtimeDecls(dir, packageName, plurnk)) {
118
118
  const decl = RuntimeDeclaration.assert(raw, packageName);
119
- // A package doc file wins over inline documentation
119
+ // A package doc file wins over inline details
120
120
  // ({§executor-runtime-declaration}).
121
- const documentation = await Discover.#readDocFile(dir, decl.name) ?? decl.documentation ?? "";
121
+ const details = await Discover.#readDocFile(dir, decl.name) ?? decl.details ?? "";
122
122
  infos.push({
123
123
  runtime: decl.name,
124
124
  glyph: decl.glyph ?? "",
125
+ summary: decl.summary,
125
126
  invocation: decl.invocation,
126
- documentation,
127
+ details,
127
128
  packageName,
129
+ ...(decl.resourcesPath === undefined ? {} : { resourcesPath: decl.resourcesPath }),
130
+ ...(decl.expandTools === undefined ? {} : { expandTools: decl.expandTools }),
128
131
  ...(attribution !== undefined ? { attribution } : {}),
129
132
  });
130
133
  }
@@ -187,11 +190,19 @@ export default class Discover {
187
190
  }
188
191
  return decls;
189
192
  }
190
- // A tag's documentation file under the package's `docs/` folder — the docs
193
+ // A tag's supplemental detail file under the package's `docs/` folder — the
191
194
  // convention's source of truth. Returns null when the package ships none.
192
195
  static async #readDocFile(dir, tag) {
193
196
  try {
194
- return await fs.readFile(path.join(dir, "docs", `${tag}.md`), "utf-8");
197
+ const source = await fs.readFile(path.join(dir, "docs", `${tag}.md`), "utf-8");
198
+ const title = `# ${tag}`;
199
+ if (source === title || source === `${title}\n`)
200
+ return "";
201
+ if (source.startsWith(`${title}\r\n`))
202
+ return source.slice(title.length + 2).replace(/^\r?\n/u, "");
203
+ if (source.startsWith(`${title}\n`))
204
+ return source.slice(title.length + 1).replace(/^\r?\n/u, "");
205
+ return source;
195
206
  }
196
207
  catch {
197
208
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export { default as Advertise } from "./advertise.ts";
12
12
  export { Results } from "@plurnk/plurnk-schemes";
13
13
  export type { ProblemDetails, SchemeResult } from "@plurnk/plurnk-schemes";
14
14
  export { renderJsonResult } from "@plurnk/plurnk-contracts";
15
- export type { ChannelState, ChannelDecl, ExecutorMetadata, ExecArgs, ExecResult, Effect, RuntimeAvailability, RuntimeBodyDecl, RuntimeTargetKind, RuntimeTargetDecl, RuntimeInvocationExample, RuntimeInvocation as RuntimeInvocationDecl, RuntimeDecl, RuntimesHook, ExecInfo, ExecRegistry, Discovery, DiscoverOptions, SpawnArgs, } from "./types.ts";
15
+ export type { ChannelState, ChannelDecl, ExecutorMetadata, ExecArgs, ExecResult, Effect, RuntimeAvailability, RuntimeBodyDecl, RuntimeTargetKind, RuntimeTargetDecl, RuntimeInvocationExample, RuntimeInvocation as RuntimeInvocationDecl, RuntimeRegisteredTool, RuntimeToolRegistry, RuntimeDecl, RuntimesHook, ExecInfo, ExecRegistry, Discovery, DiscoverOptions, SpawnArgs, } from "./types.ts";
16
16
  export type { Notice, NoticeLevel, ContentOffset, LogCoordinate } from "./Notice.ts";
17
17
  export type { PluginAttributionContext, PluginAttributionDeclaration, PluginAttributionSource, } from "@plurnk/plurnk-meta";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKxE,eAAO,MAAM,QAAQ,sBAAgB,CAAC;AAMtC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,YAAY,EACR,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKxE,eAAO,MAAM,QAAQ,sBAAgB,CAAC;AAMtC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,YAAY,EACR,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,GACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrF,YAAY,EACR,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { SchemeResult } from "@plurnk/plurnk-schemes";
2
+ import type { ClientInteractionRequest, ClientInteractionResolution } from "@plurnk/plurnk-contracts";
2
3
  import type { PackageAttributions } from "@plurnk/plurnk-meta";
3
4
  import type { Notice } from "./Notice.ts";
4
5
  export type ChannelState = "active" | "closed" | "errored";
@@ -20,6 +21,7 @@ export interface ExecArgs {
20
21
  write: (channel: string, chunk: string, mimetype?: string) => void;
21
22
  setState: (channel: string, state: ChannelState) => void;
22
23
  emit: (notice: Notice) => void;
24
+ interact: (request: ClientInteractionRequest) => Promise<ClientInteractionResolution>;
23
25
  entry?: (path: string, content: string | null, opts: {
24
26
  tags: string[];
25
27
  mimetype?: string;
@@ -48,25 +50,46 @@ export interface RuntimeInvocationExample {
48
50
  readonly body?: string;
49
51
  readonly target?: string;
50
52
  }
51
- export interface RuntimeInvocation {
53
+ interface RuntimeInvocationShape {
52
54
  readonly body: RuntimeBodyDecl;
53
55
  readonly target?: RuntimeTargetDecl;
54
56
  readonly exclusive?: true;
57
+ }
58
+ export type RuntimeInvocation = RuntimeInvocationShape & ({
55
59
  readonly example: RuntimeInvocationExample;
60
+ readonly signature?: never;
61
+ } | {
62
+ readonly example?: never;
63
+ readonly signature: string;
64
+ });
65
+ export interface RuntimeRegisteredTool {
66
+ readonly target: string;
67
+ readonly summary: string;
68
+ readonly invocation: RuntimeInvocation;
69
+ readonly details?: string;
70
+ }
71
+ export interface RuntimeToolRegistry {
72
+ readonly tools: readonly RuntimeRegisteredTool[];
56
73
  }
57
74
  export interface ExecInfo {
58
75
  runtime: string;
59
76
  glyph: string;
77
+ summary: string;
60
78
  invocation: RuntimeInvocation;
61
- documentation: string;
79
+ details: string;
80
+ resourcesPath?: string;
81
+ expandTools?: boolean;
62
82
  packageName: string;
63
83
  attribution?: string | string[];
64
84
  }
65
85
  export interface RuntimeDecl {
66
86
  name: string;
67
87
  glyph?: string;
88
+ summary: string;
68
89
  invocation: RuntimeInvocation;
69
- documentation?: string;
90
+ details?: string;
91
+ resourcesPath?: string;
92
+ expandTools?: boolean;
70
93
  }
71
94
  export type RuntimesHook = () => RuntimeDecl[] | Promise<RuntimeDecl[]>;
72
95
  export type ExecRegistry = ReadonlyMap<string, ExecInfo>;
@@ -94,4 +117,5 @@ export interface SpawnArgs {
94
117
  */
95
118
  stdin?: string;
96
119
  }
120
+ export {};
97
121
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Runtime executor contract. Each `@plurnk/plurnk-execs-*` sibling declares
2
- // one or more runtime tags (`sh`, `bash`, `python`, `search`, `news`) in
2
+ // one or more runtime tags (`sh`, `bash`, `python`, `jq`, …) in
3
3
  // its `package.json` `plurnk.runtimes[]` block, and provides a BaseExecutor
4
4
  // subclass implementing the dispatch for those tags.
5
5
  //
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,qDAAqD;AACrD,EAAE;AACF,gEAAgE"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gEAAgE;AAChE,4EAA4E;AAC5E,qDAAqD;AACrD,EAAE;AACF,gEAAgE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-execs",
3
- "version": "1.6.1",
3
+ "version": "1.8.0",
4
4
  "description": "Framework + contract for the @plurnk/plurnk-execs-* runtime executor packages.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -51,8 +51,8 @@
51
51
  "prepublishOnly": "npm audit --audit-level=moderate && npm test"
52
52
  },
53
53
  "dependencies": {
54
- "@plurnk/plurnk-contracts": "1.6.1",
55
- "@plurnk/plurnk-meta": "1.6.1",
56
- "@plurnk/plurnk-schemes": "1.6.1"
54
+ "@plurnk/plurnk-contracts": "1.8.0",
55
+ "@plurnk/plurnk-meta": "1.8.0",
56
+ "@plurnk/plurnk-schemes": "1.8.0"
57
57
  }
58
58
  }