@archmax-ai/harness 0.0.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/LICENSE +21 -0
- package/README.md +219 -0
- package/dist/agent.d.ts +174 -0
- package/dist/agent.js +140 -0
- package/dist/agent.js.map +1 -0
- package/dist/assembly/compose.d.ts +170 -0
- package/dist/assembly/compose.js +391 -0
- package/dist/assembly/compose.js.map +1 -0
- package/dist/assembly/delegation-registry.d.ts +5 -0
- package/dist/assembly/delegation-registry.js +118 -0
- package/dist/assembly/delegation-registry.js.map +1 -0
- package/dist/assembly/index.d.ts +192 -0
- package/dist/assembly/index.js +265 -0
- package/dist/assembly/index.js.map +1 -0
- package/dist/assembly/plain.d.ts +7 -0
- package/dist/assembly/plain.js +41 -0
- package/dist/assembly/plain.js.map +1 -0
- package/dist/authoring-skill/archmax-harness/README.md +76 -0
- package/dist/authoring-skill/archmax-harness/SKILL.md +241 -0
- package/dist/authoring-skill/archmax-harness/references/backend-integration.md +626 -0
- package/dist/authoring-skill/archmax-harness/references/cases.md +41 -0
- package/dist/authoring-skill/archmax-harness/references/diagnostics.md +51 -0
- package/dist/authoring-skill/archmax-harness/references/hook-and-test-scripts.md +1070 -0
- package/dist/authoring-skill/archmax-harness/references/hooks-and-scripts.md +82 -0
- package/dist/authoring-skill/archmax-harness/references/wiring.md +101 -0
- package/dist/authoring-skill/archmax-harness/references/workflow-schema.md +1631 -0
- package/dist/authoring-skill/archmax-harness/references/workflow-yaml.md +241 -0
- package/dist/behaviour/support.d.ts +232 -0
- package/dist/behaviour/support.js +339 -0
- package/dist/behaviour/support.js.map +1 -0
- package/dist/cli/banner.d.ts +11 -0
- package/dist/cli/banner.js +29 -0
- package/dist/cli/banner.js.map +1 -0
- package/dist/cli/bootstrap.d.ts +33 -0
- package/dist/cli/bootstrap.js +153 -0
- package/dist/cli/bootstrap.js.map +1 -0
- package/dist/cli/command.d.ts +39 -0
- package/dist/cli/command.js +97 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/state-flow.d.ts +46 -0
- package/dist/cli/state-flow.js +268 -0
- package/dist/cli/state-flow.js.map +1 -0
- package/dist/cli/style.d.ts +41 -0
- package/dist/cli/style.js +64 -0
- package/dist/cli/style.js.map +1 -0
- package/dist/cli/turn.d.ts +41 -0
- package/dist/cli/turn.js +161 -0
- package/dist/cli/turn.js.map +1 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.js +426 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/code-description.d.ts +22 -0
- package/dist/core/code-description.js +38 -0
- package/dist/core/code-description.js.map +1 -0
- package/dist/core/deepagents.d.ts +183 -0
- package/dist/core/deepagents.js +128 -0
- package/dist/core/deepagents.js.map +1 -0
- package/dist/core/events.d.ts +350 -0
- package/dist/core/events.js +205 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/frontmatter.d.ts +15 -0
- package/dist/core/frontmatter.js +32 -0
- package/dist/core/frontmatter.js.map +1 -0
- package/dist/core/listing-redact.d.ts +37 -0
- package/dist/core/listing-redact.js +88 -0
- package/dist/core/listing-redact.js.map +1 -0
- package/dist/core/match.d.ts +26 -0
- package/dist/core/match.js +75 -0
- package/dist/core/match.js.map +1 -0
- package/dist/core/message-readers.d.ts +84 -0
- package/dist/core/message-readers.js +159 -0
- package/dist/core/message-readers.js.map +1 -0
- package/dist/core/messages.d.ts +49 -0
- package/dist/core/messages.js +85 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/mount-prompt.d.ts +28 -0
- package/dist/core/mount-prompt.js +55 -0
- package/dist/core/mount-prompt.js.map +1 -0
- package/dist/core/mount-redact.d.ts +28 -0
- package/dist/core/mount-redact.js +32 -0
- package/dist/core/mount-redact.js.map +1 -0
- package/dist/core/mounts.d.ts +88 -0
- package/dist/core/mounts.js +147 -0
- package/dist/core/mounts.js.map +1 -0
- package/dist/core/path-mapping.d.ts +52 -0
- package/dist/core/path-mapping.js +113 -0
- package/dist/core/path-mapping.js.map +1 -0
- package/dist/core/platform-prompt.generated.d.ts +2 -0
- package/dist/core/platform-prompt.generated.js +4 -0
- package/dist/core/platform-prompt.generated.js.map +1 -0
- package/dist/core/prompt.d.ts +42 -0
- package/dist/core/prompt.js +75 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/session-id.d.ts +38 -0
- package/dist/core/session-id.js +61 -0
- package/dist/core/session-id.js.map +1 -0
- package/dist/core/session-store.d.ts +85 -0
- package/dist/core/session-store.js +149 -0
- package/dist/core/session-store.js.map +1 -0
- package/dist/core/session-zone.d.ts +54 -0
- package/dist/core/session-zone.js +82 -0
- package/dist/core/session-zone.js.map +1 -0
- package/dist/core/skill-prompt.d.ts +31 -0
- package/dist/core/skill-prompt.js +54 -0
- package/dist/core/skill-prompt.js.map +1 -0
- package/dist/core/skill-redact.d.ts +15 -0
- package/dist/core/skill-redact.js +27 -0
- package/dist/core/skill-redact.js.map +1 -0
- package/dist/core/skills.d.ts +172 -0
- package/dist/core/skills.js +214 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/tool-mocks.d.ts +23 -0
- package/dist/core/tool-mocks.js +39 -0
- package/dist/core/tool-mocks.js.map +1 -0
- package/dist/core/tool-telemetry.d.ts +16 -0
- package/dist/core/tool-telemetry.js +40 -0
- package/dist/core/tool-telemetry.js.map +1 -0
- package/dist/core/usage.d.ts +114 -0
- package/dist/core/usage.js +226 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/core/workspace-context.d.ts +136 -0
- package/dist/core/workspace-context.js +178 -0
- package/dist/core/workspace-context.js.map +1 -0
- package/dist/core/workspace-prompt.d.ts +7 -0
- package/dist/core/workspace-prompt.js +102 -0
- package/dist/core/workspace-prompt.js.map +1 -0
- package/dist/core/workspace-router.d.ts +61 -0
- package/dist/core/workspace-router.js +145 -0
- package/dist/core/workspace-router.js.map +1 -0
- package/dist/core/workspace.d.ts +85 -0
- package/dist/core/workspace.js +193 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/core/zones.d.ts +181 -0
- package/dist/core/zones.js +202 -0
- package/dist/core/zones.js.map +1 -0
- package/dist/env.d.ts +99 -0
- package/dist/env.js +271 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +265 -0
- package/dist/index.js +197 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/kernel.d.ts +192 -0
- package/dist/kernel/kernel.js +751 -0
- package/dist/kernel/kernel.js.map +1 -0
- package/dist/lifecycle/hook-shape.d.ts +44 -0
- package/dist/lifecycle/hook-shape.js +66 -0
- package/dist/lifecycle/hook-shape.js.map +1 -0
- package/dist/lifecycle/runner.d.ts +177 -0
- package/dist/lifecycle/runner.js +372 -0
- package/dist/lifecycle/runner.js.map +1 -0
- package/dist/lifecycle/transcript.d.ts +27 -0
- package/dist/lifecycle/transcript.js +43 -0
- package/dist/lifecycle/transcript.js.map +1 -0
- package/dist/machine/allow.d.ts +65 -0
- package/dist/machine/allow.js +107 -0
- package/dist/machine/allow.js.map +1 -0
- package/dist/machine/delegation.d.ts +9 -0
- package/dist/machine/delegation.js +10 -0
- package/dist/machine/delegation.js.map +1 -0
- package/dist/machine/diagnostic.d.ts +14 -0
- package/dist/machine/diagnostic.js +2 -0
- package/dist/machine/diagnostic.js.map +1 -0
- package/dist/machine/lint-spec.d.ts +4 -0
- package/dist/machine/lint-spec.js +266 -0
- package/dist/machine/lint-spec.js.map +1 -0
- package/dist/machine/load-spec.d.ts +90 -0
- package/dist/machine/load-spec.js +120 -0
- package/dist/machine/load-spec.js.map +1 -0
- package/dist/machine/machine.d.ts +273 -0
- package/dist/machine/machine.js +551 -0
- package/dist/machine/machine.js.map +1 -0
- package/dist/machine/mount-grants.d.ts +25 -0
- package/dist/machine/mount-grants.js +24 -0
- package/dist/machine/mount-grants.js.map +1 -0
- package/dist/machine/slug.d.ts +14 -0
- package/dist/machine/slug.js +17 -0
- package/dist/machine/slug.js.map +1 -0
- package/dist/machine/spec-schema.d.ts +662 -0
- package/dist/machine/spec-schema.js +717 -0
- package/dist/machine/spec-schema.js.map +1 -0
- package/dist/machine/tool-names.d.ts +98 -0
- package/dist/machine/tool-names.js +144 -0
- package/dist/machine/tool-names.js.map +1 -0
- package/dist/machine/triggers.d.ts +114 -0
- package/dist/machine/triggers.js +165 -0
- package/dist/machine/triggers.js.map +1 -0
- package/dist/machine/types.d.ts +186 -0
- package/dist/machine/types.js +12 -0
- package/dist/machine/types.js.map +1 -0
- package/dist/machine/validate-spec.d.ts +42 -0
- package/dist/machine/validate-spec.js +29 -0
- package/dist/machine/validate-spec.js.map +1 -0
- package/dist/machine/variables.d.ts +196 -0
- package/dist/machine/variables.js +415 -0
- package/dist/machine/variables.js.map +1 -0
- package/dist/public/cli.d.ts +15 -0
- package/dist/public/cli.js +14 -0
- package/dist/public/cli.js.map +1 -0
- package/dist/public/messages.d.ts +33 -0
- package/dist/public/messages.js +33 -0
- package/dist/public/messages.js.map +1 -0
- package/dist/public/sandbox.d.ts +99 -0
- package/dist/public/sandbox.js +32 -0
- package/dist/public/sandbox.js.map +1 -0
- package/dist/public/spec.d.ts +147 -0
- package/dist/public/spec.js +149 -0
- package/dist/public/spec.js.map +1 -0
- package/dist/public/testing.d.ts +71 -0
- package/dist/public/testing.js +39 -0
- package/dist/public/testing.js.map +1 -0
- package/dist/rubrics/rubrics.d.ts +135 -0
- package/dist/rubrics/rubrics.js +145 -0
- package/dist/rubrics/rubrics.js.map +1 -0
- package/dist/runtime/contract.d.ts +73 -0
- package/dist/runtime/contract.js +96 -0
- package/dist/runtime/contract.js.map +1 -0
- package/dist/sandbox/assets/parts/core.js +22 -0
- package/dist/sandbox/assets/parts/lifecycle-hook.js +47 -0
- package/dist/sandbox/bridge.d.ts +16 -0
- package/dist/sandbox/bridge.js +95 -0
- package/dist/sandbox/bridge.js.map +1 -0
- package/dist/sandbox/executor.d.ts +46 -0
- package/dist/sandbox/executor.js +119 -0
- package/dist/sandbox/executor.js.map +1 -0
- package/dist/sandbox/imports.d.ts +33 -0
- package/dist/sandbox/imports.js +67 -0
- package/dist/sandbox/imports.js.map +1 -0
- package/dist/sandbox/prelude.d.ts +12 -0
- package/dist/sandbox/prelude.js +51 -0
- package/dist/sandbox/prelude.js.map +1 -0
- package/dist/sandbox/ptc-gateway.d.ts +104 -0
- package/dist/sandbox/ptc-gateway.js +167 -0
- package/dist/sandbox/ptc-gateway.js.map +1 -0
- package/dist/sandbox/runtime.d.ts +59 -0
- package/dist/sandbox/runtime.js +51 -0
- package/dist/sandbox/runtime.js.map +1 -0
- package/dist/sandbox/tools.d.ts +34 -0
- package/dist/sandbox/tools.js +147 -0
- package/dist/sandbox/tools.js.map +1 -0
- package/dist/sessions/operations.d.ts +79 -0
- package/dist/sessions/operations.js +121 -0
- package/dist/sessions/operations.js.map +1 -0
- package/dist/sessions/resolve.d.ts +97 -0
- package/dist/sessions/resolve.js +145 -0
- package/dist/sessions/resolve.js.map +1 -0
- package/dist/sessions/resume.d.ts +242 -0
- package/dist/sessions/resume.js +288 -0
- package/dist/sessions/resume.js.map +1 -0
- package/dist/sessions/scope.d.ts +99 -0
- package/dist/sessions/scope.js +145 -0
- package/dist/sessions/scope.js.map +1 -0
- package/dist/sessions/summary.d.ts +65 -0
- package/dist/sessions/summary.js +56 -0
- package/dist/sessions/summary.js.map +1 -0
- package/dist/testing/assertions.d.ts +30 -0
- package/dist/testing/assertions.js +231 -0
- package/dist/testing/assertions.js.map +1 -0
- package/dist/testing/case-document.d.ts +141 -0
- package/dist/testing/case-document.js +51 -0
- package/dist/testing/case-document.js.map +1 -0
- package/dist/testing/case-schema.d.ts +29 -0
- package/dist/testing/case-schema.js +519 -0
- package/dist/testing/case-schema.js.map +1 -0
- package/dist/testing/discovery.d.ts +10 -0
- package/dist/testing/discovery.js +24 -0
- package/dist/testing/discovery.js.map +1 -0
- package/dist/testing/driver.d.ts +78 -0
- package/dist/testing/driver.js +117 -0
- package/dist/testing/driver.js.map +1 -0
- package/dist/testing/grade.d.ts +116 -0
- package/dist/testing/grade.js +261 -0
- package/dist/testing/grade.js.map +1 -0
- package/dist/testing/interpreter.d.ts +55 -0
- package/dist/testing/interpreter.js +103 -0
- package/dist/testing/interpreter.js.map +1 -0
- package/dist/testing/mock-middleware.d.ts +5 -0
- package/dist/testing/mock-middleware.js +33 -0
- package/dist/testing/mock-middleware.js.map +1 -0
- package/dist/testing/runner.d.ts +205 -0
- package/dist/testing/runner.js +266 -0
- package/dist/testing/runner.js.map +1 -0
- package/dist/testing/target.d.ts +27 -0
- package/dist/testing/target.js +21 -0
- package/dist/testing/target.js.map +1 -0
- package/dist/validate/validate.d.ts +41 -0
- package/dist/validate/validate.js +669 -0
- package/dist/validate/validate.js.map +1 -0
- package/dist/workflow/agent-tools.d.ts +10 -0
- package/dist/workflow/agent-tools.js +10 -0
- package/dist/workflow/agent-tools.js.map +1 -0
- package/dist/workflow/checkpointer.d.ts +52 -0
- package/dist/workflow/checkpointer.js +200 -0
- package/dist/workflow/checkpointer.js.map +1 -0
- package/dist/workflow/control-tools.d.ts +174 -0
- package/dist/workflow/control-tools.js +468 -0
- package/dist/workflow/control-tools.js.map +1 -0
- package/dist/workflow/governance.d.ts +104 -0
- package/dist/workflow/governance.js +546 -0
- package/dist/workflow/governance.js.map +1 -0
- package/dist/workflow/middleware.d.ts +85 -0
- package/dist/workflow/middleware.js +283 -0
- package/dist/workflow/middleware.js.map +1 -0
- package/dist/workflow/on-error.d.ts +25 -0
- package/dist/workflow/on-error.js +58 -0
- package/dist/workflow/on-error.js.map +1 -0
- package/dist/workflow/parks.d.ts +46 -0
- package/dist/workflow/parks.js +513 -0
- package/dist/workflow/parks.js.map +1 -0
- package/dist/workflow/paths.d.ts +67 -0
- package/dist/workflow/paths.js +108 -0
- package/dist/workflow/paths.js.map +1 -0
- package/dist/workflow/prompt-cache.d.ts +70 -0
- package/dist/workflow/prompt-cache.js +103 -0
- package/dist/workflow/prompt-cache.js.map +1 -0
- package/dist/workflow/prompt-pruning.d.ts +20 -0
- package/dist/workflow/prompt-pruning.js +83 -0
- package/dist/workflow/prompt-pruning.js.map +1 -0
- package/dist/workflow/render-prompt.d.ts +45 -0
- package/dist/workflow/render-prompt.js +140 -0
- package/dist/workflow/render-prompt.js.map +1 -0
- package/dist/workflow/runtime-config.d.ts +7 -0
- package/dist/workflow/runtime-config.js +9 -0
- package/dist/workflow/runtime-config.js.map +1 -0
- package/dist/workflow/session-artifacts.d.ts +90 -0
- package/dist/workflow/session-artifacts.js +134 -0
- package/dist/workflow/session-artifacts.js.map +1 -0
- package/dist/workflow/session-view.d.ts +31 -0
- package/dist/workflow/session-view.js +94 -0
- package/dist/workflow/session-view.js.map +1 -0
- package/dist/workflow/snapshot.d.ts +14 -0
- package/dist/workflow/snapshot.js +97 -0
- package/dist/workflow/snapshot.js.map +1 -0
- package/dist/workflow/state.d.ts +347 -0
- package/dist/workflow/state.js +322 -0
- package/dist/workflow/state.js.map +1 -0
- package/dist/workflow/sub-workflow.d.ts +174 -0
- package/dist/workflow/sub-workflow.js +392 -0
- package/dist/workflow/sub-workflow.js.map +1 -0
- package/dist/workflow/tool-service.d.ts +48 -0
- package/dist/workflow/tool-service.js +291 -0
- package/dist/workflow/tool-service.js.map +1 -0
- package/dist/workflow/turn-boundary.d.ts +39 -0
- package/dist/workflow/turn-boundary.js +128 -0
- package/dist/workflow/turn-boundary.js.map +1 -0
- package/dist/workflow/turn-runner.d.ts +40 -0
- package/dist/workflow/turn-runner.js +122 -0
- package/dist/workflow/turn-runner.js.map +1 -0
- package/dist/workflow/workflow-tools.d.ts +46 -0
- package/dist/workflow/workflow-tools.js +90 -0
- package/dist/workflow/workflow-tools.js.map +1 -0
- package/package.json +119 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-schema.js","sourceRoot":"","sources":["../../src/machine/spec-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The names of the agent-facing control tools the harness owns. Every one
|
|
3
|
+
* carries the reserved `archmax_` prefix, so a host-bound or MCP tool can never
|
|
4
|
+
* shadow (or be shadowed by) a runtime control, and a reader can tell the
|
|
5
|
+
* runtime's controls from the workspace's integrations. Deep Agents' built-ins
|
|
6
|
+
* (`read_file`, `task`, …) keep their names. Disclosure, the always-allowed set,
|
|
7
|
+
* the PTC exclusion set and governance matching all derive from this one list.
|
|
8
|
+
*/
|
|
9
|
+
/** Reserved prefix for harness-owned agent tools. Host tools may not use it. */
|
|
10
|
+
export declare const ARCHMAX_TOOL_PREFIX = "archmax_";
|
|
11
|
+
/** Graph movement: request a transition declared by the current state. */
|
|
12
|
+
export declare const ADVANCE_TOOL = "archmax_advance";
|
|
13
|
+
/** Return the run to the entry state it began in. */
|
|
14
|
+
export declare const RESET_TOOL = "archmax_reset";
|
|
15
|
+
/** Park the run in the state the call is made in, awaiting an external event. */
|
|
16
|
+
export declare const WAIT_TOOL = "archmax_wait";
|
|
17
|
+
/** Evaluate inline JavaScript in the QuickJS sandbox (the model's code interpreter). */
|
|
18
|
+
export declare const EVAL_TOOL = "archmax_eval";
|
|
19
|
+
/** Execute a workspace script *file* in the QuickJS sandbox. */
|
|
20
|
+
export declare const RUN_TOOL = "archmax_run";
|
|
21
|
+
/** Read the run's variables. */
|
|
22
|
+
export declare const GET_VARIABLES_TOOL = "archmax_get_variables";
|
|
23
|
+
/** Create, update, and lock the run's variables. */
|
|
24
|
+
export declare const SET_VARIABLES_TOOL = "archmax_set_variables";
|
|
25
|
+
/**
|
|
26
|
+
* Prefix of the tool that runs a sibling workflow as a sub-run:
|
|
27
|
+
* `archmax_workflow_<slug>`, with the slug **verbatim** so the tool name, the
|
|
28
|
+
* directory, the `tools.allow` entry, the mock key and the `ranWorkflow`
|
|
29
|
+
* assertion are one greppable string. Lossless: a slug is kebab-case and never
|
|
30
|
+
* contains `_`, so everything after the prefix is the slug. Reserved-prefixed,
|
|
31
|
+
* but deliberately **not** in {@link HARNESS_CONTROL_TOOLS}: a control tool moves
|
|
32
|
+
* the machine or rewrites variables (scripts may never call one); a delegation
|
|
33
|
+
* tool does work and returns a value, which scripts may call.
|
|
34
|
+
*/
|
|
35
|
+
export declare const WORKFLOW_TOOL_PREFIX = "archmax_workflow_";
|
|
36
|
+
/** The tool name that runs `workflows/<slug>/` as a sub-run. */
|
|
37
|
+
export declare function workflowToolName(slug: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* The workflow slug a delegation tool name addresses, or `undefined` for a name
|
|
40
|
+
* that is not one — the inverse of {@link workflowToolName}, shared by governance
|
|
41
|
+
* matching, disclosure, the dispatcher, mocking and `validate`. Shape is *not*
|
|
42
|
+
* checked: a non-slug remainder still resolves, so the caller can report it
|
|
43
|
+
* against the declaration that named it.
|
|
44
|
+
*/
|
|
45
|
+
export declare function workflowSlugFromToolName(name: string): string | undefined;
|
|
46
|
+
/** Whether a name addresses a sibling workflow rather than an ordinary tool. */
|
|
47
|
+
export declare function isWorkflowToolName(name: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The name on the synthetic call a runtime note is shaped as. **Not a tool**:
|
|
50
|
+
* nothing registers it, nothing may call it, and it is absent from
|
|
51
|
+
* {@link HARNESS_CONTROL_TOOLS}. A note is machine output in a transcript, and a
|
|
52
|
+
* tool result is the one portable shape that cannot be read as a person speaking.
|
|
53
|
+
* Reserved-prefixed so no host tool can claim the name.
|
|
54
|
+
*/
|
|
55
|
+
export declare const NOTE_TOOL = "archmax_note";
|
|
56
|
+
/** Every harness-owned control tool, by canonical name. */
|
|
57
|
+
export declare const HARNESS_CONTROL_TOOLS: ReadonlySet<string>;
|
|
58
|
+
/** Whether a name is reserved for harness-owned controls. */
|
|
59
|
+
export declare function isReservedToolName(name: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Tools permitted in every state regardless of its `tools` governance: the
|
|
62
|
+
* runtime's own controls. `archmax_advance`'s target is still checked against the
|
|
63
|
+
* state's `transitions`, and a variable write is decided by whether the target
|
|
64
|
+
* is locked. `policy.forbid_tools` can still block any of them workflow-wide.
|
|
65
|
+
*/
|
|
66
|
+
export declare const ALWAYS_ALLOWED_TOOLS: ReadonlySet<string>;
|
|
67
|
+
/**
|
|
68
|
+
* The built-in tools essential in every assembly — always disclosed, always
|
|
69
|
+
* permitted, never declared: the file tools, `write_todos`, and the two sandbox
|
|
70
|
+
* tools. A script's `tools.*` calls are governed against the active state like a
|
|
71
|
+
* direct call. A state entry naming an essential tool *narrows* the grant
|
|
72
|
+
* (`{ tool: archmax_run, paths: [...] }`); `policy.forbid_tools` closes one.
|
|
73
|
+
*/
|
|
74
|
+
export declare const ESSENTIAL_TOOLS: ReadonlySet<string>;
|
|
75
|
+
/**
|
|
76
|
+
* The framework's subagent-dispatch tool, which the runtime uses only to
|
|
77
|
+
* dispatch its own grading rubrics.
|
|
78
|
+
*
|
|
79
|
+
* It is never disclosed and never grantable. A rubric grades the agent rather
|
|
80
|
+
* than serving it, so the agent has no use for the tool: naming it in a
|
|
81
|
+
* `tools.allow` or `tools.allow_always` entry is a `validate` error, and the
|
|
82
|
+
* kernel refuses an agent-initiated call in every state. Registered rubrics make
|
|
83
|
+
* the tool *exist* in the assembled tool list — the runtime needs a runnable —
|
|
84
|
+
* so withholding it is enforced rather than incidental.
|
|
85
|
+
*/
|
|
86
|
+
export declare const UNGRANTABLE_TOOLS: ReadonlySet<string>;
|
|
87
|
+
/**
|
|
88
|
+
* Thrown when a host-bound tool claims the reserved `archmax_` prefix; refused at
|
|
89
|
+
* assembly rather than shadowed.
|
|
90
|
+
*/
|
|
91
|
+
export declare class ReservedToolNameError extends Error {
|
|
92
|
+
readonly names: string[];
|
|
93
|
+
constructor(names: string[]);
|
|
94
|
+
}
|
|
95
|
+
/** Refuse host tools that claim the `archmax_` namespace. */
|
|
96
|
+
export declare function assertNoReservedToolNames(tools: readonly {
|
|
97
|
+
name?: unknown;
|
|
98
|
+
}[] | undefined): void;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The names of the agent-facing control tools the harness owns. Every one
|
|
3
|
+
* carries the reserved `archmax_` prefix, so a host-bound or MCP tool can never
|
|
4
|
+
* shadow (or be shadowed by) a runtime control, and a reader can tell the
|
|
5
|
+
* runtime's controls from the workspace's integrations. Deep Agents' built-ins
|
|
6
|
+
* (`read_file`, `task`, …) keep their names. Disclosure, the always-allowed set,
|
|
7
|
+
* the PTC exclusion set and governance matching all derive from this one list.
|
|
8
|
+
*/
|
|
9
|
+
/** Reserved prefix for harness-owned agent tools. Host tools may not use it. */
|
|
10
|
+
export const ARCHMAX_TOOL_PREFIX = "archmax_";
|
|
11
|
+
/** Graph movement: request a transition declared by the current state. */
|
|
12
|
+
export const ADVANCE_TOOL = "archmax_advance";
|
|
13
|
+
/** Return the run to the entry state it began in. */
|
|
14
|
+
export const RESET_TOOL = "archmax_reset";
|
|
15
|
+
/** Park the run in the state the call is made in, awaiting an external event. */
|
|
16
|
+
export const WAIT_TOOL = "archmax_wait";
|
|
17
|
+
/** Evaluate inline JavaScript in the QuickJS sandbox (the model's code interpreter). */
|
|
18
|
+
export const EVAL_TOOL = "archmax_eval";
|
|
19
|
+
/** Execute a workspace script *file* in the QuickJS sandbox. */
|
|
20
|
+
export const RUN_TOOL = "archmax_run";
|
|
21
|
+
/** Read the run's variables. */
|
|
22
|
+
export const GET_VARIABLES_TOOL = "archmax_get_variables";
|
|
23
|
+
/** Create, update, and lock the run's variables. */
|
|
24
|
+
export const SET_VARIABLES_TOOL = "archmax_set_variables";
|
|
25
|
+
/**
|
|
26
|
+
* Prefix of the tool that runs a sibling workflow as a sub-run:
|
|
27
|
+
* `archmax_workflow_<slug>`, with the slug **verbatim** so the tool name, the
|
|
28
|
+
* directory, the `tools.allow` entry, the mock key and the `ranWorkflow`
|
|
29
|
+
* assertion are one greppable string. Lossless: a slug is kebab-case and never
|
|
30
|
+
* contains `_`, so everything after the prefix is the slug. Reserved-prefixed,
|
|
31
|
+
* but deliberately **not** in {@link HARNESS_CONTROL_TOOLS}: a control tool moves
|
|
32
|
+
* the machine or rewrites variables (scripts may never call one); a delegation
|
|
33
|
+
* tool does work and returns a value, which scripts may call.
|
|
34
|
+
*/
|
|
35
|
+
export const WORKFLOW_TOOL_PREFIX = "archmax_workflow_";
|
|
36
|
+
/** The tool name that runs `workflows/<slug>/` as a sub-run. */
|
|
37
|
+
export function workflowToolName(slug) {
|
|
38
|
+
return `${WORKFLOW_TOOL_PREFIX}${slug}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The workflow slug a delegation tool name addresses, or `undefined` for a name
|
|
42
|
+
* that is not one — the inverse of {@link workflowToolName}, shared by governance
|
|
43
|
+
* matching, disclosure, the dispatcher, mocking and `validate`. Shape is *not*
|
|
44
|
+
* checked: a non-slug remainder still resolves, so the caller can report it
|
|
45
|
+
* against the declaration that named it.
|
|
46
|
+
*/
|
|
47
|
+
export function workflowSlugFromToolName(name) {
|
|
48
|
+
return name.startsWith(WORKFLOW_TOOL_PREFIX)
|
|
49
|
+
? name.slice(WORKFLOW_TOOL_PREFIX.length)
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
/** Whether a name addresses a sibling workflow rather than an ordinary tool. */
|
|
53
|
+
export function isWorkflowToolName(name) {
|
|
54
|
+
return name.startsWith(WORKFLOW_TOOL_PREFIX);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The name on the synthetic call a runtime note is shaped as. **Not a tool**:
|
|
58
|
+
* nothing registers it, nothing may call it, and it is absent from
|
|
59
|
+
* {@link HARNESS_CONTROL_TOOLS}. A note is machine output in a transcript, and a
|
|
60
|
+
* tool result is the one portable shape that cannot be read as a person speaking.
|
|
61
|
+
* Reserved-prefixed so no host tool can claim the name.
|
|
62
|
+
*/
|
|
63
|
+
export const NOTE_TOOL = "archmax_note";
|
|
64
|
+
/** Every harness-owned control tool, by canonical name. */
|
|
65
|
+
export const HARNESS_CONTROL_TOOLS = new Set([
|
|
66
|
+
ADVANCE_TOOL,
|
|
67
|
+
RESET_TOOL,
|
|
68
|
+
WAIT_TOOL,
|
|
69
|
+
EVAL_TOOL,
|
|
70
|
+
RUN_TOOL,
|
|
71
|
+
GET_VARIABLES_TOOL,
|
|
72
|
+
SET_VARIABLES_TOOL,
|
|
73
|
+
]);
|
|
74
|
+
/** Whether a name is reserved for harness-owned controls. */
|
|
75
|
+
export function isReservedToolName(name) {
|
|
76
|
+
return name.startsWith(ARCHMAX_TOOL_PREFIX);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Tools permitted in every state regardless of its `tools` governance: the
|
|
80
|
+
* runtime's own controls. `archmax_advance`'s target is still checked against the
|
|
81
|
+
* state's `transitions`, and a variable write is decided by whether the target
|
|
82
|
+
* is locked. `policy.forbid_tools` can still block any of them workflow-wide.
|
|
83
|
+
*/
|
|
84
|
+
export const ALWAYS_ALLOWED_TOOLS = new Set([
|
|
85
|
+
ADVANCE_TOOL,
|
|
86
|
+
RESET_TOOL,
|
|
87
|
+
WAIT_TOOL,
|
|
88
|
+
GET_VARIABLES_TOOL,
|
|
89
|
+
SET_VARIABLES_TOOL,
|
|
90
|
+
]);
|
|
91
|
+
/**
|
|
92
|
+
* The built-in tools essential in every assembly — always disclosed, always
|
|
93
|
+
* permitted, never declared: the file tools, `write_todos`, and the two sandbox
|
|
94
|
+
* tools. A script's `tools.*` calls are governed against the active state like a
|
|
95
|
+
* direct call. A state entry naming an essential tool *narrows* the grant
|
|
96
|
+
* (`{ tool: archmax_run, paths: [...] }`); `policy.forbid_tools` closes one.
|
|
97
|
+
*/
|
|
98
|
+
export const ESSENTIAL_TOOLS = new Set([
|
|
99
|
+
"ls",
|
|
100
|
+
"read_file",
|
|
101
|
+
"write_file",
|
|
102
|
+
"edit_file",
|
|
103
|
+
"glob",
|
|
104
|
+
"grep",
|
|
105
|
+
"write_todos",
|
|
106
|
+
EVAL_TOOL,
|
|
107
|
+
RUN_TOOL,
|
|
108
|
+
]);
|
|
109
|
+
/**
|
|
110
|
+
* The framework's subagent-dispatch tool, which the runtime uses only to
|
|
111
|
+
* dispatch its own grading rubrics.
|
|
112
|
+
*
|
|
113
|
+
* It is never disclosed and never grantable. A rubric grades the agent rather
|
|
114
|
+
* than serving it, so the agent has no use for the tool: naming it in a
|
|
115
|
+
* `tools.allow` or `tools.allow_always` entry is a `validate` error, and the
|
|
116
|
+
* kernel refuses an agent-initiated call in every state. Registered rubrics make
|
|
117
|
+
* the tool *exist* in the assembled tool list — the runtime needs a runnable —
|
|
118
|
+
* so withholding it is enforced rather than incidental.
|
|
119
|
+
*/
|
|
120
|
+
export const UNGRANTABLE_TOOLS = new Set(["task"]);
|
|
121
|
+
/**
|
|
122
|
+
* Thrown when a host-bound tool claims the reserved `archmax_` prefix; refused at
|
|
123
|
+
* assembly rather than shadowed.
|
|
124
|
+
*/
|
|
125
|
+
export class ReservedToolNameError extends Error {
|
|
126
|
+
names;
|
|
127
|
+
constructor(names) {
|
|
128
|
+
const one = names.length === 1;
|
|
129
|
+
super(`Host tool${one ? "" : "s"} ${names.map((n) => `'${n}'`).join(", ")} use${one ? "s" : ""} ` +
|
|
130
|
+
`the reserved '${ARCHMAX_TOOL_PREFIX}' prefix, which names the runtime's own control ` +
|
|
131
|
+
`tools. Rename ${one ? "it" : "them"}.`);
|
|
132
|
+
this.names = names;
|
|
133
|
+
this.name = "ReservedToolNameError";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Refuse host tools that claim the `archmax_` namespace. */
|
|
137
|
+
export function assertNoReservedToolNames(tools) {
|
|
138
|
+
const claimed = (tools ?? [])
|
|
139
|
+
.map((tool) => tool.name)
|
|
140
|
+
.filter((name) => typeof name === "string" && isReservedToolName(name));
|
|
141
|
+
if (claimed.length > 0)
|
|
142
|
+
throw new ReservedToolNameError(claimed);
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=tool-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../../src/machine/tool-names.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { MachineSpec, MachineState } from "./types.js";
|
|
2
|
+
import type { WorkflowMachine } from "./machine.js";
|
|
3
|
+
/**
|
|
4
|
+
* The one reserved trigger id: the entry at which a machine is **started** by
|
|
5
|
+
* the CLI, an SDK invocation naming no trigger, a host firing that names it, or
|
|
6
|
+
* a delegation from another workflow.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MANUAL_TRIGGER = "manual";
|
|
9
|
+
/**
|
|
10
|
+
* The trigger ids a state declares, in declaration order: the keys of its
|
|
11
|
+
* `triggers:` mapping. The single interpretation point — nothing else narrows
|
|
12
|
+
* {@link MachineState.triggers} by hand.
|
|
13
|
+
*/
|
|
14
|
+
export declare function stateTriggerIds(state: MachineState): string[];
|
|
15
|
+
/** A parsed session path: the variable it reads, plus the steps into its value. */
|
|
16
|
+
export interface SessionPath {
|
|
17
|
+
/** Source text, for diagnostics. */
|
|
18
|
+
raw: string;
|
|
19
|
+
/** The variable name (first segment). */
|
|
20
|
+
name: string;
|
|
21
|
+
/** Remaining dotted segments; empty for a whole-variable reference. */
|
|
22
|
+
path: string[];
|
|
23
|
+
}
|
|
24
|
+
export type SessionPathParse = {
|
|
25
|
+
path: SessionPath;
|
|
26
|
+
error?: undefined;
|
|
27
|
+
} | {
|
|
28
|
+
path?: undefined;
|
|
29
|
+
error: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Parse a dotted session path (`conversation_id`, `triggers.-1.conversationId`).
|
|
33
|
+
* A `${{…}}`-wrapped value is refused rather than unwrapped, so there is one
|
|
34
|
+
* spelling. `error` is the reason, worded for whoever wrote the path.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseSessionPath(value: string): SessionPathParse;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve a session path against a firing's variables. Returns the id as a
|
|
39
|
+
* string (a number is stringified) or `undefined` when the path misses or
|
|
40
|
+
* resolves to something that cannot name a conversation — the caller falls back
|
|
41
|
+
* to the run's native session id.
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveSessionId(path: SessionPath, variables: Record<string, unknown>): string | undefined;
|
|
44
|
+
/** A trigger's declaration, read: the state it enters plus its declared keys. */
|
|
45
|
+
export interface TriggerBinding {
|
|
46
|
+
id: string;
|
|
47
|
+
/** The start state — the state whose `triggers:` declares this id. */
|
|
48
|
+
entry: string;
|
|
49
|
+
session?: SessionPath;
|
|
50
|
+
/**
|
|
51
|
+
* The host-resolved `message:` declaration: a parsed path, or `false` for a
|
|
52
|
+
* trigger whose firings carry no message. Absent when undeclared.
|
|
53
|
+
*/
|
|
54
|
+
message?: SessionPath | false;
|
|
55
|
+
/** The host-resolved `connection:` slug, opaque to the SDK. */
|
|
56
|
+
connection?: string;
|
|
57
|
+
/** Run variables a firing must supply for the run to start, if declared. */
|
|
58
|
+
requires?: string[];
|
|
59
|
+
/** Run variables the run guarantees are set when it completes, if declared. */
|
|
60
|
+
returns?: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Every trigger the spec declares, read from the states that declare them: one
|
|
64
|
+
* walk, in declaration order, with the state each id sits on as its entry. Two
|
|
65
|
+
* states declaring one id is a document-level error (`refineSpec`); here the
|
|
66
|
+
* later one wins, so the map is total either way.
|
|
67
|
+
*/
|
|
68
|
+
export declare function triggerBindings(spec: MachineSpec): Map<string, TriggerBinding>;
|
|
69
|
+
/**
|
|
70
|
+
* Every variable a declaration says will exist: any state's `requires`, and any
|
|
71
|
+
* trigger's. Half of the "is this guard reference guaranteed?" question (the
|
|
72
|
+
* other half is the host's seeded variables).
|
|
73
|
+
*/
|
|
74
|
+
export declare function declaredVariableNames(spec: MachineSpec): Set<string>;
|
|
75
|
+
/**
|
|
76
|
+
* The session id a firing of `triggerId` resolves to under `spec`, or `undefined`
|
|
77
|
+
* when the trigger declares no `session:` path, is not declared at all, or the
|
|
78
|
+
* path misses in `variables` — in each of which the runtime mints an id for the
|
|
79
|
+
* firing instead. The two halves are {@link triggerBindings} and
|
|
80
|
+
* {@link resolveSessionId}; this is the question a host actually asks.
|
|
81
|
+
*/
|
|
82
|
+
export declare function sessionIdForTrigger(spec: MachineSpec, triggerId: string, variables: Record<string, unknown>): string | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* How a session is started: a trigger `id`, and nothing else. The trigger
|
|
85
|
+
* selects the start state; the session's input arrives as variables.
|
|
86
|
+
*/
|
|
87
|
+
export interface TriggerInput {
|
|
88
|
+
/** Trigger id: `manual` (CLI/Deep Agent) or a tool/event name. */
|
|
89
|
+
id: string;
|
|
90
|
+
}
|
|
91
|
+
/** A resolved trigger: the requested id plus the start state it enters. */
|
|
92
|
+
export interface ResolvedTrigger extends TriggerInput {
|
|
93
|
+
/** The machine state the session begins in for this trigger. */
|
|
94
|
+
startState: string;
|
|
95
|
+
}
|
|
96
|
+
/** The default trigger when none is supplied to `createAgent`: the reserved `manual` entry. */
|
|
97
|
+
export declare const DEFAULT_TRIGGER_ID = "manual";
|
|
98
|
+
/**
|
|
99
|
+
* Thrown when a trigger `id` matches no start state declared by the workflow
|
|
100
|
+
* (no state whose `trigger` equals the id, and no `triggers` entry naming one).
|
|
101
|
+
* Fails closed rather than entering an arbitrary state.
|
|
102
|
+
*/
|
|
103
|
+
export declare class UnknownTriggerError extends Error {
|
|
104
|
+
readonly triggerId: string;
|
|
105
|
+
readonly available: string[];
|
|
106
|
+
constructor(triggerId: string, available: string[]);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Resolve a trigger against a machine's declared start states: map the trigger
|
|
110
|
+
* `id` (default `manual`) to the state whose `trigger` equals it. Throws
|
|
111
|
+
* {@link UnknownTriggerError} when no start state declares the id. The single
|
|
112
|
+
* resolution point shared by the CLI and programmatic callers.
|
|
113
|
+
*/
|
|
114
|
+
export declare function resolveTrigger(machine: Pick<WorkflowMachine, "startStateForTrigger" | "startStates">, trigger?: TriggerInput): ResolvedTrigger;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Triggers: the ids a state declares it is entered by, and what each of those
|
|
3
|
+
* declarations says — where its firings map to a session, its host-resolved
|
|
4
|
+
* keys, its `requires`/`returns` signature. A trigger is declared in one place,
|
|
5
|
+
* the `triggers:` mapping of the state it enters, so there is nothing to merge.
|
|
6
|
+
*
|
|
7
|
+
* Shape is the schema's business (`spec-schema.ts`); this module reads a spec
|
|
8
|
+
* the schema has already accepted and answers the questions the runtime asks.
|
|
9
|
+
*/
|
|
10
|
+
import { resolvePath, VARIABLE_NAME_PATTERN } from "./variables.js";
|
|
11
|
+
/**
|
|
12
|
+
* The one reserved trigger id: the entry at which a machine is **started** by
|
|
13
|
+
* the CLI, an SDK invocation naming no trigger, a host firing that names it, or
|
|
14
|
+
* a delegation from another workflow.
|
|
15
|
+
*/
|
|
16
|
+
export const MANUAL_TRIGGER = "manual";
|
|
17
|
+
// --- A state's own `triggers:` ----------------------------------------------
|
|
18
|
+
/**
|
|
19
|
+
* The trigger ids a state declares, in declaration order: the keys of its
|
|
20
|
+
* `triggers:` mapping. The single interpretation point — nothing else narrows
|
|
21
|
+
* {@link MachineState.triggers} by hand.
|
|
22
|
+
*/
|
|
23
|
+
export function stateTriggerIds(state) {
|
|
24
|
+
return Object.keys(state.triggers ?? {});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse a dotted session path (`conversation_id`, `triggers.-1.conversationId`).
|
|
28
|
+
* A `${{…}}`-wrapped value is refused rather than unwrapped, so there is one
|
|
29
|
+
* spelling. `error` is the reason, worded for whoever wrote the path.
|
|
30
|
+
*/
|
|
31
|
+
export function parseSessionPath(value) {
|
|
32
|
+
const raw = value.trim();
|
|
33
|
+
if (raw === "")
|
|
34
|
+
return { error: "it is empty." };
|
|
35
|
+
if (raw.includes("${{")) {
|
|
36
|
+
return { error: "write the bare path, not a '${{…}}' reference (e.g. 'conversation_id')." };
|
|
37
|
+
}
|
|
38
|
+
const [name, ...path] = raw.split(".");
|
|
39
|
+
if (!name || !VARIABLE_NAME_PATTERN.test(name)) {
|
|
40
|
+
return {
|
|
41
|
+
error: "its first segment must be a variable name (lowercase letters, digits and underscores, starting with a letter).",
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (path.some((segment) => segment === "")) {
|
|
45
|
+
return { error: "it has an empty segment — check for a doubled or trailing '.'." };
|
|
46
|
+
}
|
|
47
|
+
return { path: { raw, name, path } };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolve a session path against a firing's variables. Returns the id as a
|
|
51
|
+
* string (a number is stringified) or `undefined` when the path misses or
|
|
52
|
+
* resolves to something that cannot name a conversation — the caller falls back
|
|
53
|
+
* to the run's native session id.
|
|
54
|
+
*/
|
|
55
|
+
export function resolveSessionId(path, variables) {
|
|
56
|
+
if (!Object.hasOwn(variables, path.name))
|
|
57
|
+
return undefined;
|
|
58
|
+
const root = variables[path.name];
|
|
59
|
+
const value = path.path.length === 0 ? root : resolvePath(root, path.path);
|
|
60
|
+
if (typeof value === "string")
|
|
61
|
+
return value.trim() === "" ? undefined : value;
|
|
62
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
63
|
+
return String(value);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Every trigger the spec declares, read from the states that declare them: one
|
|
68
|
+
* walk, in declaration order, with the state each id sits on as its entry. Two
|
|
69
|
+
* states declaring one id is a document-level error (`refineSpec`); here the
|
|
70
|
+
* later one wins, so the map is total either way.
|
|
71
|
+
*/
|
|
72
|
+
export function triggerBindings(spec) {
|
|
73
|
+
const byId = new Map();
|
|
74
|
+
for (const [slug, state] of Object.entries(spec.states)) {
|
|
75
|
+
for (const [id, decl] of Object.entries(state.triggers ?? {})) {
|
|
76
|
+
const binding = { id, entry: slug };
|
|
77
|
+
if (decl) {
|
|
78
|
+
if (decl.session !== undefined) {
|
|
79
|
+
const parsed = parseSessionPath(decl.session);
|
|
80
|
+
if (parsed.path)
|
|
81
|
+
binding.session = parsed.path;
|
|
82
|
+
}
|
|
83
|
+
if (decl.message === false) {
|
|
84
|
+
binding.message = false;
|
|
85
|
+
}
|
|
86
|
+
else if (decl.message !== undefined) {
|
|
87
|
+
const parsed = parseSessionPath(decl.message);
|
|
88
|
+
if (parsed.path)
|
|
89
|
+
binding.message = parsed.path;
|
|
90
|
+
}
|
|
91
|
+
if (decl.connection !== undefined)
|
|
92
|
+
binding.connection = decl.connection.trim();
|
|
93
|
+
if (decl.requires !== undefined)
|
|
94
|
+
binding.requires = decl.requires;
|
|
95
|
+
if (decl.returns !== undefined)
|
|
96
|
+
binding.returns = decl.returns;
|
|
97
|
+
}
|
|
98
|
+
byId.set(id, binding);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return byId;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Every variable a declaration says will exist: any state's `requires`, and any
|
|
105
|
+
* trigger's. Half of the "is this guard reference guaranteed?" question (the
|
|
106
|
+
* other half is the host's seeded variables).
|
|
107
|
+
*/
|
|
108
|
+
export function declaredVariableNames(spec) {
|
|
109
|
+
const names = new Set();
|
|
110
|
+
for (const state of Object.values(spec.states)) {
|
|
111
|
+
for (const name of state.requires ?? [])
|
|
112
|
+
names.add(name);
|
|
113
|
+
}
|
|
114
|
+
for (const binding of triggerBindings(spec).values()) {
|
|
115
|
+
for (const name of binding.requires ?? [])
|
|
116
|
+
names.add(name);
|
|
117
|
+
}
|
|
118
|
+
return names;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The session id a firing of `triggerId` resolves to under `spec`, or `undefined`
|
|
122
|
+
* when the trigger declares no `session:` path, is not declared at all, or the
|
|
123
|
+
* path misses in `variables` — in each of which the runtime mints an id for the
|
|
124
|
+
* firing instead. The two halves are {@link triggerBindings} and
|
|
125
|
+
* {@link resolveSessionId}; this is the question a host actually asks.
|
|
126
|
+
*/
|
|
127
|
+
export function sessionIdForTrigger(spec, triggerId, variables) {
|
|
128
|
+
const path = triggerBindings(spec).get(triggerId)?.session;
|
|
129
|
+
return path ? resolveSessionId(path, variables) : undefined;
|
|
130
|
+
}
|
|
131
|
+
/** The default trigger when none is supplied to `createAgent`: the reserved `manual` entry. */
|
|
132
|
+
export const DEFAULT_TRIGGER_ID = MANUAL_TRIGGER;
|
|
133
|
+
/**
|
|
134
|
+
* Thrown when a trigger `id` matches no start state declared by the workflow
|
|
135
|
+
* (no state whose `trigger` equals the id, and no `triggers` entry naming one).
|
|
136
|
+
* Fails closed rather than entering an arbitrary state.
|
|
137
|
+
*/
|
|
138
|
+
export class UnknownTriggerError extends Error {
|
|
139
|
+
triggerId;
|
|
140
|
+
available;
|
|
141
|
+
constructor(triggerId, available) {
|
|
142
|
+
super(`No start state for trigger '${triggerId}'. ` +
|
|
143
|
+
(available.length
|
|
144
|
+
? `Declared triggers: ${available.join(", ")}.`
|
|
145
|
+
: `The workflow declares no start-state triggers.`));
|
|
146
|
+
this.triggerId = triggerId;
|
|
147
|
+
this.available = available;
|
|
148
|
+
this.name = "UnknownTriggerError";
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolve a trigger against a machine's declared start states: map the trigger
|
|
153
|
+
* `id` (default `manual`) to the state whose `trigger` equals it. Throws
|
|
154
|
+
* {@link UnknownTriggerError} when no start state declares the id. The single
|
|
155
|
+
* resolution point shared by the CLI and programmatic callers.
|
|
156
|
+
*/
|
|
157
|
+
export function resolveTrigger(machine, trigger) {
|
|
158
|
+
const id = trigger?.id ?? DEFAULT_TRIGGER_ID;
|
|
159
|
+
const startState = machine.startStateForTrigger(id);
|
|
160
|
+
if (!startState) {
|
|
161
|
+
throw new UnknownTriggerError(id, machine.startStates().map((s) => s.trigger));
|
|
162
|
+
}
|
|
163
|
+
return { id, startState };
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=triggers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../src/machine/triggers.ts"],"names":[],"mappings":"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"}
|