experimental-ash 0.2.0-alpha.2 → 0.2.0-alpha.21
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/dist/src/channel/http-channel.d.ts +26 -0
- package/dist/src/channel/http-channel.d.ts.map +1 -0
- package/dist/src/channel/http-channel.js +24 -0
- package/dist/src/channel/http-channel.js.map +1 -0
- package/dist/src/channel/resolve-text.d.ts +20 -0
- package/dist/src/channel/resolve-text.d.ts.map +1 -0
- package/dist/src/channel/resolve-text.js +60 -0
- package/dist/src/channel/resolve-text.js.map +1 -0
- package/dist/src/channel/schedule-channel.d.ts +16 -0
- package/dist/src/channel/schedule-channel.d.ts.map +1 -0
- package/dist/src/channel/schedule-channel.js +20 -0
- package/dist/src/channel/schedule-channel.js.map +1 -0
- package/dist/src/channel/schedule.d.ts +4 -6
- package/dist/src/channel/schedule.d.ts.map +1 -1
- package/dist/src/channel/schedule.js +6 -9
- package/dist/src/channel/schedule.js.map +1 -1
- package/dist/src/channel/slack-channel.d.ts +125 -0
- package/dist/src/channel/slack-channel.d.ts.map +1 -0
- package/dist/src/channel/slack-channel.js +320 -0
- package/dist/src/channel/slack-channel.js.map +1 -0
- package/dist/src/channel/subagent-channel.d.ts +41 -0
- package/dist/src/channel/subagent-channel.d.ts.map +1 -0
- package/dist/src/channel/{subagent-emitter.js → subagent-channel.js} +15 -19
- package/dist/src/channel/subagent-channel.js.map +1 -0
- package/dist/src/channel/types.d.ts +157 -90
- package/dist/src/channel/types.d.ts.map +1 -1
- package/dist/src/channel/types.js +64 -1
- package/dist/src/channel/types.js.map +1 -1
- package/dist/src/cli/dev/input-requests.d.ts +4 -4
- package/dist/src/cli/dev/input-requests.d.ts.map +1 -1
- package/dist/src/cli/dev/input-requests.js +34 -65
- package/dist/src/cli/dev/input-requests.js.map +1 -1
- package/dist/src/cli/dev/repl.d.ts.map +1 -1
- package/dist/src/cli/dev/repl.js +41 -24
- package/dist/src/cli/dev/repl.js.map +1 -1
- package/dist/src/client/index.d.ts +3 -2
- package/dist/src/client/index.d.ts.map +1 -1
- package/dist/src/client/index.js +1 -0
- package/dist/src/client/index.js.map +1 -1
- package/dist/src/client/message-response.d.ts +5 -5
- package/dist/src/client/message-response.d.ts.map +1 -1
- package/dist/src/client/message-response.js +6 -6
- package/dist/src/client/message-response.js.map +1 -1
- package/dist/src/client/open-stream.d.ts +1 -1
- package/dist/src/client/open-stream.d.ts.map +1 -1
- package/dist/src/client/open-stream.js +1 -1
- package/dist/src/client/open-stream.js.map +1 -1
- package/dist/src/client/session-utils.d.ts +3 -3
- package/dist/src/client/session-utils.d.ts.map +1 -1
- package/dist/src/client/session-utils.js +4 -4
- package/dist/src/client/session-utils.js.map +1 -1
- package/dist/src/client/session.d.ts +5 -5
- package/dist/src/client/session.js +28 -28
- package/dist/src/client/session.js.map +1 -1
- package/dist/src/client/types.d.ts +8 -8
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/compiler/channel-url.d.ts +1 -1
- package/dist/src/compiler/channel-url.js +1 -1
- package/dist/src/compiler/manifest.d.ts +38 -5
- package/dist/src/compiler/manifest.d.ts.map +1 -1
- package/dist/src/compiler/manifest.js +15 -1
- package/dist/src/compiler/manifest.js.map +1 -1
- package/dist/src/compiler/module-map.js +8 -0
- package/dist/src/compiler/module-map.js.map +1 -1
- package/dist/src/compiler/normalize-channel.d.ts +1 -1
- package/dist/src/compiler/normalize-channel.js +3 -3
- package/dist/src/compiler/normalize-channel.js.map +1 -1
- package/dist/src/compiler/normalize-connection.d.ts +14 -0
- package/dist/src/compiler/normalize-connection.d.ts.map +1 -0
- package/dist/src/compiler/normalize-connection.js +29 -0
- package/dist/src/compiler/normalize-connection.js.map +1 -0
- package/dist/src/compiler/normalize-manifest.d.ts.map +1 -1
- package/dist/src/compiler/normalize-manifest.js +2 -0
- package/dist/src/compiler/normalize-manifest.js.map +1 -1
- package/dist/src/context/accessors.d.ts +13 -12
- package/dist/src/context/accessors.d.ts.map +1 -1
- package/dist/src/context/accessors.js +16 -17
- package/dist/src/context/accessors.js.map +1 -1
- package/dist/src/context/container.d.ts +17 -19
- package/dist/src/context/container.d.ts.map +1 -1
- package/dist/src/context/container.js +21 -14
- package/dist/src/context/container.js.map +1 -1
- package/dist/src/context/durable-context.d.ts +18 -0
- package/dist/src/context/durable-context.d.ts.map +1 -0
- package/dist/src/context/durable-context.js +49 -0
- package/dist/src/context/durable-context.js.map +1 -0
- package/dist/src/context/key.d.ts +43 -83
- package/dist/src/context/key.d.ts.map +1 -1
- package/dist/src/context/key.js +58 -80
- package/dist/src/context/key.js.map +1 -1
- package/dist/src/context/keys.d.ts +8 -20
- package/dist/src/context/keys.d.ts.map +1 -1
- package/dist/src/context/keys.js +20 -34
- package/dist/src/context/keys.js.map +1 -1
- package/dist/src/context/provider.d.ts +2 -2
- package/dist/src/context/provider.d.ts.map +1 -1
- package/dist/src/context/providers/connection.d.ts +4 -0
- package/dist/src/context/providers/connection.d.ts.map +1 -0
- package/dist/src/context/providers/connection.js +18 -0
- package/dist/src/context/providers/connection.js.map +1 -0
- package/dist/src/context/providers/session.d.ts.map +1 -1
- package/dist/src/context/providers/session.js +1 -2
- package/dist/src/context/providers/session.js.map +1 -1
- package/dist/src/context/providers/skill.d.ts.map +1 -1
- package/dist/src/context/providers/skill.js +2 -15
- package/dist/src/context/providers/skill.js.map +1 -1
- package/dist/src/context/run-step.d.ts +6 -8
- package/dist/src/context/run-step.d.ts.map +1 -1
- package/dist/src/context/run-step.js +15 -17
- package/dist/src/context/run-step.js.map +1 -1
- package/dist/src/context/seed-keys.d.ts +21 -0
- package/dist/src/context/seed-keys.d.ts.map +1 -0
- package/dist/src/context/seed-keys.js +31 -0
- package/dist/src/context/seed-keys.js.map +1 -0
- package/dist/src/context/serialize.d.ts +8 -9
- package/dist/src/context/serialize.d.ts.map +1 -1
- package/dist/src/context/serialize.js +38 -15
- package/dist/src/context/serialize.js.map +1 -1
- package/dist/src/discover/connections.d.ts +48 -0
- package/dist/src/discover/connections.d.ts.map +1 -0
- package/dist/src/discover/connections.js +169 -0
- package/dist/src/discover/connections.js.map +1 -0
- package/dist/src/discover/discover-agent.d.ts +1 -0
- package/dist/src/discover/discover-agent.d.ts.map +1 -1
- package/dist/src/discover/discover-agent.js +8 -0
- package/dist/src/discover/discover-agent.js.map +1 -1
- package/dist/src/discover/discover-subagent.js +7 -0
- package/dist/src/discover/discover-subagent.js.map +1 -1
- package/dist/src/discover/filesystem.d.ts +3 -3
- package/dist/src/discover/filesystem.d.ts.map +1 -1
- package/dist/src/discover/filesystem.js +7 -0
- package/dist/src/discover/filesystem.js.map +1 -1
- package/dist/src/discover/grammar.d.ts +20 -4
- package/dist/src/discover/grammar.d.ts.map +1 -1
- package/dist/src/discover/grammar.js +31 -5
- package/dist/src/discover/grammar.js.map +1 -1
- package/dist/src/discover/manifest.d.ts +28 -1
- package/dist/src/discover/manifest.d.ts.map +1 -1
- package/dist/src/discover/manifest.js +11 -1
- package/dist/src/discover/manifest.js.map +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/artifacts.js.map +1 -1
- package/dist/src/evals/runner/derive-run-facts.js +5 -5
- package/dist/src/evals/runner/derive-run-facts.js.map +1 -1
- package/dist/src/evals/runner/execute-case.js +4 -4
- package/dist/src/evals/runner/execute-case.js.map +1 -1
- package/dist/src/evals/runner/execute-suite.js +1 -1
- package/dist/src/evals/runner/execute-suite.js.map +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +2 -2
- package/dist/src/evals/runner/reporters/braintrust.js.map +1 -1
- package/dist/src/evals/types.d.ts +4 -4
- package/dist/src/evals/types.d.ts.map +1 -1
- package/dist/src/execution/continuous-entry.d.ts +18 -9
- package/dist/src/execution/continuous-entry.d.ts.map +1 -1
- package/dist/src/execution/continuous-entry.js +62 -18
- package/dist/src/execution/continuous-entry.js.map +1 -1
- package/dist/src/execution/continuous-runtime.d.ts +1 -1
- package/dist/src/execution/continuous-runtime.d.ts.map +1 -1
- package/dist/src/execution/continuous-runtime.js +14 -10
- package/dist/src/execution/continuous-runtime.js.map +1 -1
- package/dist/src/execution/node-step.d.ts +1 -2
- package/dist/src/execution/node-step.d.ts.map +1 -1
- package/dist/src/execution/node-step.js +42 -55
- package/dist/src/execution/node-step.js.map +1 -1
- package/dist/src/execution/runtime-context.d.ts +3 -0
- package/dist/src/execution/runtime-context.d.ts.map +1 -1
- package/dist/src/execution/runtime-context.js +6 -4
- package/dist/src/execution/runtime-context.js.map +1 -1
- package/dist/src/execution/session.d.ts +2 -1
- package/dist/src/execution/session.d.ts.map +1 -1
- package/dist/src/execution/session.js +1 -0
- package/dist/src/execution/session.js.map +1 -1
- package/dist/src/execution/skills/access.d.ts.map +1 -1
- package/dist/src/execution/skills/instructions.d.ts +6 -6
- package/dist/src/execution/skills/instructions.d.ts.map +1 -1
- package/dist/src/execution/skills/instructions.js +15 -15
- package/dist/src/execution/skills/instructions.js.map +1 -1
- package/dist/src/execution/skills/types.d.ts +4 -4
- package/dist/src/execution/skills/types.d.ts.map +1 -1
- package/dist/src/execution/step-context.d.ts +27 -0
- package/dist/src/execution/step-context.d.ts.map +1 -0
- package/dist/src/execution/step-context.js +54 -0
- package/dist/src/execution/step-context.js.map +1 -0
- package/dist/src/execution/subagent-tool.d.ts +1 -1
- package/dist/src/execution/subagent-tool.d.ts.map +1 -1
- package/dist/src/execution/subagent-tool.js +3 -4
- package/dist/src/execution/subagent-tool.js.map +1 -1
- package/dist/src/execution/tool-compaction.d.ts +1 -3
- package/dist/src/execution/tool-compaction.d.ts.map +1 -1
- package/dist/src/execution/tool-compaction.js +6 -20
- package/dist/src/execution/tool-compaction.js.map +1 -1
- package/dist/src/execution/types.d.ts +1 -1
- package/dist/src/execution/types.d.ts.map +1 -1
- package/dist/src/execution/workflow-entry.d.ts +4 -5
- package/dist/src/execution/workflow-entry.d.ts.map +1 -1
- package/dist/src/execution/workflow-entry.js +7 -2
- package/dist/src/execution/workflow-entry.js.map +1 -1
- package/dist/src/execution/workflow-runtime.d.ts.map +1 -1
- package/dist/src/execution/workflow-runtime.js +10 -5
- package/dist/src/execution/workflow-runtime.js.map +1 -1
- package/dist/src/execution/workflow-steps.d.ts +13 -6
- package/dist/src/execution/workflow-steps.d.ts.map +1 -1
- package/dist/src/execution/workflow-steps.js +24 -19
- package/dist/src/execution/workflow-steps.js.map +1 -1
- package/dist/src/harness/emission.d.ts +36 -27
- package/dist/src/harness/emission.d.ts.map +1 -1
- package/dist/src/harness/emission.js +130 -84
- package/dist/src/harness/emission.js.map +1 -1
- package/dist/src/harness/execute-tool.d.ts +52 -0
- package/dist/src/harness/execute-tool.d.ts.map +1 -0
- package/dist/src/harness/execute-tool.js +59 -0
- package/dist/src/harness/execute-tool.js.map +1 -0
- package/dist/src/harness/input-extraction.d.ts +3 -3
- package/dist/src/harness/input-extraction.d.ts.map +1 -1
- package/dist/src/harness/input-extraction.js +15 -8
- package/dist/src/harness/input-extraction.js.map +1 -1
- package/dist/src/harness/input-requests.d.ts +46 -40
- package/dist/src/harness/input-requests.d.ts.map +1 -1
- package/dist/src/harness/input-requests.js +169 -245
- package/dist/src/harness/input-requests.js.map +1 -1
- package/dist/src/harness/messages.d.ts +10 -9
- package/dist/src/harness/messages.d.ts.map +1 -1
- package/dist/src/harness/messages.js +23 -20
- package/dist/src/harness/messages.js.map +1 -1
- package/dist/src/harness/provider-tools.d.ts +2 -2
- package/dist/src/harness/provider-tools.d.ts.map +1 -1
- package/dist/src/harness/provider-tools.js +7 -3
- package/dist/src/harness/provider-tools.js.map +1 -1
- package/dist/src/harness/step-hooks.d.ts +77 -0
- package/dist/src/harness/step-hooks.d.ts.map +1 -0
- package/dist/src/harness/step-hooks.js +192 -0
- package/dist/src/harness/step-hooks.js.map +1 -0
- package/dist/src/harness/tool-loop.d.ts +4 -2
- package/dist/src/harness/tool-loop.d.ts.map +1 -1
- package/dist/src/harness/tool-loop.js +130 -181
- package/dist/src/harness/tool-loop.js.map +1 -1
- package/dist/src/harness/tools.d.ts +12 -16
- package/dist/src/harness/tools.d.ts.map +1 -1
- package/dist/src/harness/tools.js +39 -33
- package/dist/src/harness/tools.js.map +1 -1
- package/dist/src/harness/types.d.ts +44 -28
- package/dist/src/harness/types.d.ts.map +1 -1
- package/dist/src/harness/types.js +6 -1
- package/dist/src/harness/types.js.map +1 -1
- package/dist/src/internal/application/compiled-artifacts.d.ts +5 -3
- package/dist/src/internal/application/compiled-artifacts.d.ts.map +1 -1
- package/dist/src/internal/application/compiled-artifacts.js +19 -40
- package/dist/src/internal/application/compiled-artifacts.js.map +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-definition/channel.d.ts +3 -3
- package/dist/src/internal/authored-definition/channel.d.ts.map +1 -1
- package/dist/src/internal/authored-definition/channel.js +28 -4
- package/dist/src/internal/authored-definition/channel.js.map +1 -1
- package/dist/src/internal/authored-definition/connection.d.ts +10 -0
- package/dist/src/internal/authored-definition/connection.d.ts.map +1 -0
- package/dist/src/internal/authored-definition/connection.js +134 -0
- package/dist/src/internal/authored-definition/connection.js.map +1 -0
- package/dist/src/internal/authored-module.js +1 -1
- package/dist/src/internal/authored-module.js.map +1 -1
- package/dist/src/internal/message/builder.d.ts +1 -2
- package/dist/src/internal/message/builder.d.ts.map +1 -1
- package/dist/src/internal/message/builder.js +4 -12
- package/dist/src/internal/message/builder.js.map +1 -1
- package/dist/src/internal/nitro/host/configure-message-routes.d.ts +3 -1
- package/dist/src/internal/nitro/host/configure-message-routes.d.ts.map +1 -1
- package/dist/src/internal/nitro/host/configure-message-routes.js +124 -25
- package/dist/src/internal/nitro/host/configure-message-routes.js.map +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.d.ts.map +1 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +63 -21
- package/dist/src/internal/nitro/host/create-application-nitro.js.map +1 -1
- package/dist/src/internal/nitro/host/load-home-page-web-assets.d.ts +13 -0
- package/dist/src/internal/nitro/host/load-home-page-web-assets.d.ts.map +1 -0
- package/dist/src/internal/nitro/host/load-home-page-web-assets.js +35 -0
- package/dist/src/internal/nitro/host/load-home-page-web-assets.js.map +1 -0
- package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
- package/dist/src/internal/nitro/host/prepare-application-host.js.map +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.d.ts +10 -18
- package/dist/src/internal/nitro/routes/channel-dispatch.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +16 -45
- package/dist/src/internal/nitro/routes/channel-dispatch.js.map +1 -1
- package/dist/src/internal/nitro/routes/home-page/build-home-page-response.d.ts +88 -0
- package/dist/src/internal/nitro/routes/home-page/build-home-page-response.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/home-page/build-home-page-response.js +175 -0
- package/dist/src/internal/nitro/routes/home-page/build-home-page-response.js.map +1 -0
- package/dist/src/internal/nitro/routes/home.d.ts +7 -0
- package/dist/src/internal/nitro/routes/home.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/home.js +22 -0
- package/dist/src/internal/nitro/routes/home.js.map +1 -0
- package/dist/src/internal/nitro/routes/index.d.ts +3 -8
- package/dist/src/internal/nitro/routes/index.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/index.js +18 -36
- package/dist/src/internal/nitro/routes/index.js.map +1 -1
- package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts +10 -3
- package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/runtime-artifacts.js +2 -9
- package/dist/src/internal/nitro/routes/runtime-artifacts.js.map +1 -1
- package/dist/src/internal/nitro/routes/runtime-stack.d.ts +8 -7
- package/dist/src/internal/nitro/routes/runtime-stack.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/runtime-stack.js +10 -10
- package/dist/src/internal/nitro/routes/runtime-stack.js.map +1 -1
- package/dist/src/internal/nitro/routes/schedule-task.d.ts +7 -7
- package/dist/src/internal/nitro/routes/schedule-task.d.ts.map +1 -1
- package/dist/src/internal/nitro/routes/schedule-task.js +22 -30
- package/dist/src/internal/nitro/routes/schedule-task.js.map +1 -1
- package/dist/src/internal/nitro/routes/web-ui/assets/index.js +10 -0
- package/dist/src/internal/nitro/routes/web-ui/assets/style.css +2 -0
- package/dist/src/internal/nitro/routes/web-ui/index.html +17 -0
- package/dist/src/internal/nitro/routes/workflow-data.d.ts +32 -0
- package/dist/src/internal/nitro/routes/workflow-data.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-data.js +142 -0
- package/dist/src/internal/nitro/routes/workflow-data.js.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-route-helpers.d.ts +46 -0
- package/dist/src/internal/nitro/routes/workflow-route-helpers.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-route-helpers.js +137 -0
- package/dist/src/internal/nitro/routes/workflow-route-helpers.js.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run-events.d.ts +14 -0
- package/dist/src/internal/nitro/routes/workflow-run-events.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run-events.js +42 -0
- package/dist/src/internal/nitro/routes/workflow-run-events.js.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run-steps.d.ts +14 -0
- package/dist/src/internal/nitro/routes/workflow-run-steps.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run-steps.js +42 -0
- package/dist/src/internal/nitro/routes/workflow-run-steps.js.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run.d.ts +13 -0
- package/dist/src/internal/nitro/routes/workflow-run.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-run.js +35 -0
- package/dist/src/internal/nitro/routes/workflow-run.js.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-runs.d.ts +11 -0
- package/dist/src/internal/nitro/routes/workflow-runs.d.ts.map +1 -0
- package/dist/src/internal/nitro/routes/workflow-runs.js +29 -0
- package/dist/src/internal/nitro/routes/workflow-runs.js.map +1 -0
- package/dist/src/protocol/message.d.ts +160 -76
- package/dist/src/protocol/message.d.ts.map +1 -1
- package/dist/src/protocol/message.js +92 -36
- package/dist/src/protocol/message.js.map +1 -1
- package/dist/src/protocol/routes.d.ts +11 -3
- package/dist/src/protocol/routes.d.ts.map +1 -1
- package/dist/src/protocol/routes.js +12 -4
- package/dist/src/protocol/routes.js.map +1 -1
- package/dist/src/public/channels/auth.d.ts +32 -81
- package/dist/src/public/channels/auth.d.ts.map +1 -1
- package/dist/src/public/channels/auth.js +23 -86
- package/dist/src/public/channels/auth.js.map +1 -1
- package/dist/src/public/channels/http.d.ts +66 -26
- package/dist/src/public/channels/http.d.ts.map +1 -1
- package/dist/src/public/channels/http.js +88 -78
- package/dist/src/public/channels/http.js.map +1 -1
- package/dist/src/public/channels/index.d.ts +9 -10
- package/dist/src/public/channels/index.d.ts.map +1 -1
- package/dist/src/public/channels/index.js +9 -9
- package/dist/src/public/channels/index.js.map +1 -1
- package/dist/src/public/channels/slack/index.d.ts +104 -37
- package/dist/src/public/channels/slack/index.d.ts.map +1 -1
- package/dist/src/public/channels/slack/index.js +168 -47
- package/dist/src/public/channels/slack/index.js.map +1 -1
- package/dist/src/public/channels/slack/lowlevel.d.ts +5 -5
- package/dist/src/public/channels/slack/lowlevel.d.ts.map +1 -1
- package/dist/src/public/channels/slack/lowlevel.js +4 -4
- package/dist/src/public/channels/slack/lowlevel.js.map +1 -1
- package/dist/src/public/connections/index.d.ts +25 -0
- package/dist/src/public/connections/index.d.ts.map +1 -0
- package/dist/src/public/connections/index.js +24 -0
- package/dist/src/public/connections/index.js.map +1 -0
- package/dist/src/public/definitions/channel.d.ts +89 -60
- package/dist/src/public/definitions/channel.d.ts.map +1 -1
- package/dist/src/public/definitions/channel.js +42 -24
- package/dist/src/public/definitions/channel.js.map +1 -1
- package/dist/src/public/definitions/connections/mcp.d.ts +60 -0
- package/dist/src/public/definitions/connections/mcp.d.ts.map +1 -0
- package/dist/src/public/definitions/connections/mcp.js +7 -0
- package/dist/src/public/definitions/connections/mcp.js.map +1 -0
- package/dist/src/public/definitions/tool.d.ts +14 -7
- package/dist/src/public/definitions/tool.d.ts.map +1 -1
- package/dist/src/public/definitions/tool.js.map +1 -1
- package/dist/src/public/index.d.ts +10 -9
- package/dist/src/public/index.d.ts.map +1 -1
- package/dist/src/public/index.js +7 -6
- package/dist/src/public/index.js.map +1 -1
- package/dist/src/public/sandboxes/internal.d.ts +1 -1
- package/dist/src/public/sandboxes/internal.js +1 -1
- package/dist/src/public/tools/defaults.d.ts +6 -6
- package/dist/src/public/tools/defaults.d.ts.map +1 -1
- package/dist/src/public/tools/defaults.js +6 -6
- package/dist/src/public/tools/defaults.js.map +1 -1
- package/dist/src/public/tools/internal.d.ts +1 -1
- package/dist/src/public/tools/internal.js +1 -1
- package/dist/src/runtime/actions/types.d.ts +21 -18
- package/dist/src/runtime/actions/types.d.ts.map +1 -1
- package/dist/src/runtime/actions/types.js +22 -19
- package/dist/src/runtime/actions/types.js.map +1 -1
- package/dist/src/runtime/agent/bootstrap-model-utils.d.ts +37 -0
- package/dist/src/runtime/agent/bootstrap-model-utils.d.ts.map +1 -0
- package/dist/src/runtime/agent/bootstrap-model-utils.js +149 -0
- package/dist/src/runtime/agent/bootstrap-model-utils.js.map +1 -0
- package/dist/src/runtime/agent/bootstrap-model.d.ts.map +1 -1
- package/dist/src/runtime/agent/bootstrap-model.js +11 -80
- package/dist/src/runtime/agent/bootstrap-model.js.map +1 -1
- package/dist/src/runtime/agent/bootstrap.d.ts.map +1 -1
- package/dist/src/runtime/agent/bootstrap.js +4 -1
- package/dist/src/runtime/agent/bootstrap.js.map +1 -1
- package/dist/src/runtime/agent/mock-model-adapter.d.ts.map +1 -1
- package/dist/src/runtime/agent/mock-model-adapter.js +72 -134
- package/dist/src/runtime/agent/mock-model-adapter.js.map +1 -1
- package/dist/src/runtime/channels/registry.d.ts +21 -0
- package/dist/src/runtime/channels/registry.d.ts.map +1 -0
- package/dist/src/runtime/channels/registry.js +65 -0
- package/dist/src/runtime/channels/registry.js.map +1 -0
- package/dist/src/runtime/connections/mcp-client.d.ts +48 -0
- package/dist/src/runtime/connections/mcp-client.d.ts.map +1 -0
- package/dist/src/runtime/connections/mcp-client.js +182 -0
- package/dist/src/runtime/connections/mcp-client.js.map +1 -0
- package/dist/src/runtime/connections/registry.d.ts +33 -0
- package/dist/src/runtime/connections/registry.d.ts.map +1 -0
- package/dist/src/runtime/connections/registry.js +54 -0
- package/dist/src/runtime/connections/registry.js.map +1 -0
- package/dist/src/runtime/connections/types.d.ts +75 -0
- package/dist/src/runtime/connections/types.d.ts.map +1 -0
- package/dist/src/runtime/connections/types.js +9 -0
- package/dist/src/runtime/connections/types.js.map +1 -0
- package/dist/src/runtime/framework-channels/index.d.ts +6 -6
- package/dist/src/runtime/framework-channels/index.d.ts.map +1 -1
- package/dist/src/runtime/framework-channels/index.js +16 -14
- package/dist/src/runtime/framework-channels/index.js.map +1 -1
- package/dist/src/runtime/framework-tools/ask-question.js +4 -4
- package/dist/src/runtime/framework-tools/ask-question.js.map +1 -1
- package/dist/src/runtime/framework-tools/connection-execute.d.ts +10 -0
- package/dist/src/runtime/framework-tools/connection-execute.d.ts.map +1 -0
- package/dist/src/runtime/framework-tools/connection-execute.js +50 -0
- package/dist/src/runtime/framework-tools/connection-execute.js.map +1 -0
- package/dist/src/runtime/framework-tools/connection-search.d.ts +43 -0
- package/dist/src/runtime/framework-tools/connection-search.d.ts.map +1 -0
- package/dist/src/runtime/framework-tools/connection-search.js +135 -0
- package/dist/src/runtime/framework-tools/connection-search.js.map +1 -0
- package/dist/src/runtime/framework-tools/file-state.d.ts +5 -5
- package/dist/src/runtime/framework-tools/file-state.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/file-state.js +6 -8
- package/dist/src/runtime/framework-tools/file-state.js.map +1 -1
- package/dist/src/runtime/framework-tools/index.d.ts +3 -1
- package/dist/src/runtime/framework-tools/index.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/index.js +10 -1
- package/dist/src/runtime/framework-tools/index.js.map +1 -1
- package/dist/src/runtime/framework-tools/skill.d.ts +4 -4
- package/dist/src/runtime/framework-tools/skill.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/skill.js +14 -11
- package/dist/src/runtime/framework-tools/skill.js.map +1 -1
- package/dist/src/runtime/framework-tools/todo.d.ts.map +1 -1
- package/dist/src/runtime/framework-tools/todo.js +2 -4
- package/dist/src/runtime/framework-tools/todo.js.map +1 -1
- package/dist/src/runtime/input/types.d.ts +40 -115
- package/dist/src/runtime/input/types.d.ts.map +1 -1
- package/dist/src/runtime/input/types.js +28 -66
- package/dist/src/runtime/input/types.js.map +1 -1
- package/dist/src/runtime/loaders/module-map.js +8 -0
- package/dist/src/runtime/loaders/module-map.js.map +1 -1
- package/dist/src/runtime/prompt/compose.d.ts +4 -1
- package/dist/src/runtime/prompt/compose.d.ts.map +1 -1
- package/dist/src/runtime/prompt/compose.js +18 -1
- package/dist/src/runtime/prompt/compose.js.map +1 -1
- package/dist/src/runtime/prompt/connections.d.ts +10 -0
- package/dist/src/runtime/prompt/connections.d.ts.map +1 -0
- package/dist/src/runtime/prompt/connections.js +25 -0
- package/dist/src/runtime/prompt/connections.js.map +1 -0
- package/dist/src/runtime/resolve-agent-graph.d.ts.map +1 -1
- package/dist/src/runtime/resolve-agent-graph.js +29 -7
- package/dist/src/runtime/resolve-agent-graph.js.map +1 -1
- package/dist/src/runtime/resolve-agent.d.ts.map +1 -1
- package/dist/src/runtime/resolve-agent.js +3 -0
- package/dist/src/runtime/resolve-agent.js.map +1 -1
- package/dist/src/runtime/resolve-channel.d.ts.map +1 -1
- package/dist/src/runtime/resolve-channel.js +1 -0
- package/dist/src/runtime/resolve-channel.js.map +1 -1
- package/dist/src/runtime/resolve-connection.d.ts +16 -0
- package/dist/src/runtime/resolve-connection.d.ts.map +1 -0
- package/dist/src/runtime/resolve-connection.js +69 -0
- package/dist/src/runtime/resolve-connection.js.map +1 -0
- package/dist/src/runtime/resolve-tool.d.ts.map +1 -1
- package/dist/src/runtime/resolve-tool.js +8 -0
- package/dist/src/runtime/resolve-tool.js.map +1 -1
- package/dist/src/runtime/sessions/auth.d.ts +1 -1
- package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +2 -0
- package/dist/src/runtime/sessions/compiled-agent-cache.d.ts.map +1 -1
- package/dist/src/runtime/sessions/compiled-agent-cache.js +14 -0
- package/dist/src/runtime/sessions/compiled-agent-cache.js.map +1 -1
- package/dist/src/runtime/skills/fragment-context.d.ts +2 -2
- package/dist/src/runtime/skills/fragment-context.d.ts.map +1 -1
- package/dist/src/runtime/skills/fragment-context.js +2 -2
- package/dist/src/runtime/skills/fragment-context.js.map +1 -1
- package/dist/src/runtime/standard-schema.d.ts +28 -0
- package/dist/src/runtime/standard-schema.d.ts.map +1 -0
- package/dist/src/runtime/standard-schema.js +65 -0
- package/dist/src/runtime/standard-schema.js.map +1 -0
- package/dist/src/runtime/types.d.ts +29 -3
- package/dist/src/runtime/types.d.ts.map +1 -1
- package/dist/src/services/dev-client/send-message.d.ts +2 -2
- package/dist/src/services/dev-client/send-message.d.ts.map +1 -1
- package/dist/src/services/dev-client/send-message.js +21 -22
- package/dist/src/services/dev-client/send-message.js.map +1 -1
- package/dist/src/services/dev-client/session.d.ts +5 -5
- package/dist/src/services/dev-client/session.d.ts.map +1 -1
- package/dist/src/services/dev-client/session.js +2 -2
- package/dist/src/services/dev-client/session.js.map +1 -1
- package/dist/src/services/dev-client.d.ts +6 -6
- package/dist/src/services/dev-client.d.ts.map +1 -1
- package/dist/src/services/dev-client.js +3 -3
- package/dist/src/services/dev-client.js.map +1 -1
- package/docs/external-agent-protocol.md +37 -34
- package/docs/internals/channels.md +15 -12
- package/docs/internals/context.md +81 -161
- package/docs/internals/message-runtime.md +28 -26
- package/docs/public/README.md +22 -20
- package/docs/public/auth-and-route-protection.md +15 -12
- package/docs/public/channels/README.md +16 -11
- package/docs/public/cli-build-and-debugging.md +1 -1
- package/docs/public/context-control.md +7 -3
- package/docs/public/evals.md +3 -3
- package/docs/public/getting-started.md +15 -12
- package/docs/public/human-in-the-loop.md +45 -57
- package/docs/public/migration-guide.md +71 -0
- package/docs/public/project-layout.md +5 -0
- package/docs/public/runs-and-streaming.md +32 -25
- package/docs/public/schedules.md +4 -4
- package/docs/public/session-context.md +131 -15
- package/docs/public/skills.md +27 -3
- package/docs/public/subagents.md +2 -2
- package/docs/public/tools.md +23 -30
- package/docs/public/typescript-api.md +16 -12
- package/docs/public/vercel-deployment.md +3 -4
- package/docs/public/workspace.md +11 -11
- package/package.json +18 -11
- package/dist/src/channel/emitter-registry.d.ts +0 -34
- package/dist/src/channel/emitter-registry.d.ts.map +0 -1
- package/dist/src/channel/emitter-registry.js +0 -63
- package/dist/src/channel/emitter-registry.js.map +0 -1
- package/dist/src/channel/http-emitter.d.ts +0 -16
- package/dist/src/channel/http-emitter.d.ts.map +0 -1
- package/dist/src/channel/http-emitter.js +0 -22
- package/dist/src/channel/http-emitter.js.map +0 -1
- package/dist/src/channel/schedule-emitter.d.ts +0 -15
- package/dist/src/channel/schedule-emitter.d.ts.map +0 -1
- package/dist/src/channel/schedule-emitter.js +0 -21
- package/dist/src/channel/schedule-emitter.js.map +0 -1
- package/dist/src/channel/slack-emitter.d.ts +0 -56
- package/dist/src/channel/slack-emitter.d.ts.map +0 -1
- package/dist/src/channel/slack-emitter.js +0 -235
- package/dist/src/channel/slack-emitter.js.map +0 -1
- package/dist/src/channel/subagent-emitter.d.ts +0 -41
- package/dist/src/channel/subagent-emitter.d.ts.map +0 -1
- package/dist/src/channel/subagent-emitter.js.map +0 -1
- package/dist/src/context/state.d.ts +0 -27
- package/dist/src/context/state.d.ts.map +0 -1
- package/dist/src/context/state.js +0 -53
- package/dist/src/context/state.js.map +0 -1
- package/dist/src/internal/message/nitro-route-shims.d.ts +0 -6
- package/dist/src/internal/message/nitro-route-shims.d.ts.map +0 -1
- package/dist/src/internal/message/nitro-route-shims.js +0 -38
- package/dist/src/internal/message/nitro-route-shims.js.map +0 -1
- package/dist/src/internal/message/rewrite-generated-imports.d.ts +0 -15
- package/dist/src/internal/message/rewrite-generated-imports.d.ts.map +0 -1
- package/dist/src/internal/message/rewrite-generated-imports.js +0 -59
- package/dist/src/internal/message/rewrite-generated-imports.js.map +0 -1
- package/dist/src/internal/nitro/host/channel-url-matcher.d.ts +0 -35
- package/dist/src/internal/nitro/host/channel-url-matcher.d.ts.map +0 -1
- package/dist/src/internal/nitro/host/channel-url-matcher.js +0 -57
- package/dist/src/internal/nitro/host/channel-url-matcher.js.map +0 -1
- package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.d.ts +0 -11
- package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.d.ts.map +0 -1
- package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.js +0 -264
- package/dist/src/internal/nitro/routes/home-page/build-home-page-view-model.js.map +0 -1
- package/dist/src/internal/nitro/routes/home-page/render-home-page.d.ts +0 -9
- package/dist/src/internal/nitro/routes/home-page/render-home-page.d.ts.map +0 -1
- package/dist/src/internal/nitro/routes/home-page/render-home-page.js +0 -15
- package/dist/src/internal/nitro/routes/home-page/render-home-page.js.map +0 -1
- package/dist/src/internal/nitro/routes/index.html +0 -525
- package/dist/src/internal/nitro/runtime-configuration.d.ts +0 -16
- package/dist/src/internal/nitro/runtime-configuration.d.ts.map +0 -1
- package/dist/src/internal/nitro/runtime-configuration.js +0 -23
- package/dist/src/internal/nitro/runtime-configuration.js.map +0 -1
- package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts +0 -10
- package/dist/src/internal/nitro/shims/runtime-configuration-plugin.d.ts.map +0 -1
- package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js +0 -17
- package/dist/src/internal/nitro/shims/runtime-configuration-plugin.js.map +0 -1
- package/dist/src/runtime/tools/execute-tool.d.ts +0 -20
- package/dist/src/runtime/tools/execute-tool.d.ts.map +0 -1
- package/dist/src/runtime/tools/execute-tool.js +0 -69
- package/dist/src/runtime/tools/execute-tool.js.map +0 -1
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# Session Context
|
|
2
2
|
|
|
3
|
-
Ash exposes
|
|
3
|
+
Ash exposes six runtime helpers for authored code:
|
|
4
4
|
|
|
5
5
|
- `getSession()`
|
|
6
|
+
- `getContext(key)`
|
|
7
|
+
- `setContext(key, value)`
|
|
8
|
+
- `ensureContext(key, valueOrFactory)`
|
|
6
9
|
- `getSandbox(name)`
|
|
7
10
|
- `getSkill(identifier)`
|
|
8
11
|
|
|
@@ -26,13 +29,12 @@ export default defineTool({
|
|
|
26
29
|
const session = getSession();
|
|
27
30
|
|
|
28
31
|
return {
|
|
29
|
-
runId: session.runId,
|
|
30
32
|
sessionId: session.sessionId,
|
|
31
33
|
turnId: session.turn.id,
|
|
32
34
|
turnSequence: session.turn.sequence,
|
|
33
35
|
currentCaller: session.auth.current?.principalId,
|
|
34
36
|
initiator: session.auth.initiator?.principalId,
|
|
35
|
-
|
|
37
|
+
parentSessionId: session.parent?.sessionId,
|
|
36
38
|
};
|
|
37
39
|
},
|
|
38
40
|
});
|
|
@@ -43,7 +45,6 @@ Public session fields:
|
|
|
43
45
|
- `auth.current`
|
|
44
46
|
- `auth.initiator`
|
|
45
47
|
- `sessionId`
|
|
46
|
-
- `runId`
|
|
47
48
|
- `turn.id`
|
|
48
49
|
- `turn.sequence`
|
|
49
50
|
- optional `parent`
|
|
@@ -53,8 +54,8 @@ Important behavior:
|
|
|
53
54
|
- `auth.current` is the caller for the active inbound turn
|
|
54
55
|
- `auth.initiator` is the caller that started the durable session
|
|
55
56
|
- unprotected agents expose both as `null`
|
|
56
|
-
- top-level schedule
|
|
57
|
-
- `parent` is present for child subagent
|
|
57
|
+
- top-level schedule sessions expose a framework-owned `schedule` principal
|
|
58
|
+
- `parent` is present for child subagent sessions
|
|
58
59
|
|
|
59
60
|
## `getSandbox(name)`
|
|
60
61
|
|
|
@@ -95,6 +96,120 @@ Important behavior:
|
|
|
95
96
|
|
|
96
97
|
See [`skills.md`](./skills.md) for the full authoring model.
|
|
97
98
|
|
|
99
|
+
## Durable Authored Context
|
|
100
|
+
|
|
101
|
+
`ContextKey` values are session-durable by default. Once authored code sets a key, Ash hydrates it
|
|
102
|
+
from `session.context` before later steps and commits it back after each step.
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
import { ContextKey, ensureContext, getContext, setContext } from "experimental-ash";
|
|
106
|
+
|
|
107
|
+
const TenantKey = new ContextKey<string>("myapp.tenant");
|
|
108
|
+
const NotesKey = new ContextKey<{ readonly notes: readonly string[] }>("myapp.notes");
|
|
109
|
+
|
|
110
|
+
const tenant = getContext(TenantKey);
|
|
111
|
+
const notes = ensureContext(NotesKey, () => ({ notes: [] }));
|
|
112
|
+
|
|
113
|
+
setContext(NotesKey, {
|
|
114
|
+
notes: [...notes.notes, `Handled tenant ${tenant}`],
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Use `ensureContext` when a key needs a default value. `ContextKey({ initial })` no longer exists.
|
|
119
|
+
|
|
120
|
+
## Passing Custom Context From a Channel
|
|
121
|
+
|
|
122
|
+
Channels can inject custom typed context into the agent inside `onDeliver`. This is useful when a
|
|
123
|
+
channel needs to pass platform-specific metadata (tenant ID, feature flags, etc.) that authored
|
|
124
|
+
tools can read.
|
|
125
|
+
|
|
126
|
+
### Defining a key
|
|
127
|
+
|
|
128
|
+
Declare a `ContextKey` at module scope. The key is shared between the channel and the tools that
|
|
129
|
+
read it.
|
|
130
|
+
|
|
131
|
+
`agent/channels/keys.ts`
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
import { ContextKey } from "experimental-ash";
|
|
135
|
+
|
|
136
|
+
export const TenantKey = new ContextKey<string>("myapp.tenant");
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Setting context from a channel
|
|
140
|
+
|
|
141
|
+
Wrap an existing channel with `onDeliver` to set custom context keys. The hook receives a narrow
|
|
142
|
+
`ContextAccessor` (`get`, `tryGet`, `has`, `set`, `ensure`) as its first argument and a
|
|
143
|
+
`DeliverPayload` as the second. It runs on both `run()` and `deliver()`, after Ash has hydrated the
|
|
144
|
+
durable context bag for that turn.
|
|
145
|
+
|
|
146
|
+
`agent/channels/slack.ts`
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
import {
|
|
150
|
+
slackRoute,
|
|
151
|
+
SlackChannel,
|
|
152
|
+
type SlackChannelState,
|
|
153
|
+
} from "experimental-ash/channels/slack";
|
|
154
|
+
import { TenantKey } from "./keys.js";
|
|
155
|
+
|
|
156
|
+
interface TenantSlackState extends SlackChannelState {
|
|
157
|
+
readonly tenantId: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
class TenantSlackChannel extends SlackChannel<TenantSlackState> {
|
|
161
|
+
static override readonly kind = "tenant-slack";
|
|
162
|
+
|
|
163
|
+
constructor(state: SlackChannelState) {
|
|
164
|
+
super({
|
|
165
|
+
...state,
|
|
166
|
+
tenantId: lookupTenant(state),
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async onDeliver(ctx, payload) {
|
|
171
|
+
ctx.set(TenantKey, this.state().tenantId);
|
|
172
|
+
return await super.onDeliver(ctx, payload);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export default slackRoute({
|
|
177
|
+
channel: TenantSlackChannel,
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Auth lives on `RunInput.auth` and `DeliverInput.auth`, not on the channel object. There is no
|
|
182
|
+
`withAuth` or `withContext` wrapper.
|
|
183
|
+
|
|
184
|
+
Keep channel constructor state immutable after the run starts. Stable transport identity belongs in
|
|
185
|
+
serialized channel state; mutable per-session data belongs in durable context or `session.internal`.
|
|
186
|
+
|
|
187
|
+
### Reading context from a tool
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
import { getContext } from "experimental-ash";
|
|
191
|
+
import { defineTool } from "experimental-ash/tools";
|
|
192
|
+
import { TenantKey } from "../channels/keys.js";
|
|
193
|
+
|
|
194
|
+
export default defineTool({
|
|
195
|
+
description: "Return the active tenant.",
|
|
196
|
+
async execute() {
|
|
197
|
+
const tenant = getContext(TenantKey);
|
|
198
|
+
return { tenant };
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Context on deliver
|
|
204
|
+
|
|
205
|
+
`onDeliver` runs on every turn, including `deliver()` follow-ups. The channel is deserialized from
|
|
206
|
+
the session, so its stable serialized state (including custom fields like `tenantId`) is available
|
|
207
|
+
on follow-up turns.
|
|
208
|
+
|
|
209
|
+
Auth on `deliver()` is also honored — `session.auth.current` reflects the caller of each follow-up
|
|
210
|
+
message, not just the session initiator. Deliver-time auth is passed via `DeliverInput.auth` and the
|
|
211
|
+
runtime applies it directly.
|
|
212
|
+
|
|
98
213
|
## Where These APIs Work
|
|
99
214
|
|
|
100
215
|
Safe places:
|
|
@@ -114,17 +229,18 @@ explaining the required scope.
|
|
|
114
229
|
|
|
115
230
|
## How It Works
|
|
116
231
|
|
|
117
|
-
All
|
|
118
|
-
The framework sets up this context before invoking authored code:
|
|
232
|
+
All runtime helpers read from the same `AshContext` container bound by a single
|
|
233
|
+
`AsyncLocalStorage`. The framework sets up this context before invoking authored code:
|
|
119
234
|
|
|
120
|
-
1. The runtime entry point creates an `AshContext` and
|
|
121
|
-
|
|
122
|
-
2. Before each step,
|
|
123
|
-
|
|
124
|
-
3.
|
|
235
|
+
1. The runtime entry point creates an `AshContext` and serializes only runtime seed keys such as
|
|
236
|
+
auth, session id, channel, and compiled bundle.
|
|
237
|
+
2. Before each step, Ash rebuilds a fresh context, hydrates durable authored context from
|
|
238
|
+
`session.context`, seeds runtime-only bookkeeping, and runs `channel.onDeliver(...)`.
|
|
239
|
+
3. Providers create derived values such as session metadata, sandbox access, and skill access.
|
|
240
|
+
4. The step callback runs inside the `AsyncLocalStorage` scope, making the context available to
|
|
125
241
|
all authored code in the call chain.
|
|
126
|
-
|
|
127
|
-
|
|
242
|
+
5. After the step, Ash commits the full durable context bag back to `session.context` and lets
|
|
243
|
+
mutable providers persist any provider-owned state.
|
|
128
244
|
|
|
129
245
|
This lifecycle is fully managed by the framework. Authored code only needs to call the public
|
|
130
246
|
accessors.
|
package/docs/public/skills.md
CHANGED
|
@@ -16,17 +16,23 @@ single turn.
|
|
|
16
16
|
## How Skill Loading Works
|
|
17
17
|
|
|
18
18
|
Ash discovers the files under `skills/`, advertises them to the model, and adds a framework-owned
|
|
19
|
-
`
|
|
19
|
+
`load_skill` tool.
|
|
20
20
|
|
|
21
|
-
When the model decides a skill is relevant, it calls `
|
|
21
|
+
When the model decides a skill is relevant, it calls `load_skill`. Ash then adds that skill's
|
|
22
22
|
instructions to the active turn context.
|
|
23
23
|
|
|
24
|
+
In practice, the model should activate a skill when the user names it directly or when the request
|
|
25
|
+
clearly matches the skill's description. That makes the description a routing hint, not just a
|
|
26
|
+
label.
|
|
27
|
+
|
|
24
28
|
Important behavior:
|
|
25
29
|
|
|
26
30
|
- skills are not pasted into the base prompt by default
|
|
27
31
|
- tools remain visible whether or not a skill is activated
|
|
28
32
|
- skills are for instructions and procedures, not for executing code
|
|
29
33
|
- if you need typed runtime behavior, use a tool
|
|
34
|
+
- packaged skill paths are visible in the runtime workspace, so the model can inspect sibling files
|
|
35
|
+
with normal file or shell tools when needed
|
|
30
36
|
|
|
31
37
|
## Flat Markdown Skills
|
|
32
38
|
|
|
@@ -92,6 +98,25 @@ export default defineTool({
|
|
|
92
98
|
- flat skills may omit frontmatter
|
|
93
99
|
- the legacy `allowed-tools` frontmatter field is not supported
|
|
94
100
|
|
|
101
|
+
## Write Good Descriptions
|
|
102
|
+
|
|
103
|
+
Skill descriptions should describe the task that should trigger activation.
|
|
104
|
+
|
|
105
|
+
Prefer descriptions like:
|
|
106
|
+
|
|
107
|
+
- `Use when the user needs a release checklist or changelog workflow.`
|
|
108
|
+
- `Research unfamiliar topics before answering with confidence.`
|
|
109
|
+
- `Use the weather tool before answering forecast or temperature questions.`
|
|
110
|
+
|
|
111
|
+
Avoid vague descriptions like:
|
|
112
|
+
|
|
113
|
+
- `Helpful workflow`
|
|
114
|
+
- `General assistant support`
|
|
115
|
+
- `Misc utilities`
|
|
116
|
+
|
|
117
|
+
Better descriptions improve automatic routing quality because Ash exposes them to the model as the
|
|
118
|
+
main signal for when a skill should be activated.
|
|
119
|
+
|
|
95
120
|
## When To Use A Skill
|
|
96
121
|
|
|
97
122
|
Use a skill for:
|
|
@@ -163,4 +188,3 @@ For most apps:
|
|
|
163
188
|
- [`context-control.md`](./context-control.md)
|
|
164
189
|
- [`tools.md`](./tools.md)
|
|
165
190
|
- [`subagents.md`](./subagents.md)
|
|
166
|
-
|
package/docs/public/subagents.md
CHANGED
|
@@ -58,13 +58,13 @@ Subagent execution gets:
|
|
|
58
58
|
|
|
59
59
|
## Stream Behavior
|
|
60
60
|
|
|
61
|
-
Subagent activity is emitted inline on the parent
|
|
61
|
+
Subagent activity is emitted inline on the parent session stream:
|
|
62
62
|
|
|
63
63
|
- `subagent.started`
|
|
64
64
|
- `subagent.event`
|
|
65
65
|
- `subagent.completed`
|
|
66
66
|
|
|
67
|
-
There is no separate public child-
|
|
67
|
+
There is no separate public child-session stream to attach to.
|
|
68
68
|
|
|
69
69
|
## What Subagents Can Declare
|
|
70
70
|
|
package/docs/public/tools.md
CHANGED
|
@@ -24,7 +24,6 @@ export default defineTool({
|
|
|
24
24
|
|
|
25
25
|
return {
|
|
26
26
|
city: input.city,
|
|
27
|
-
runId: session.runId,
|
|
28
27
|
sessionId: session.sessionId,
|
|
29
28
|
temperatureF: 72,
|
|
30
29
|
};
|
|
@@ -37,8 +36,8 @@ exposed to the model as `get_weather`; a file at `agent/tools/get-weather.ts` is
|
|
|
37
36
|
`get-weather`. You can override that by setting `name` in the tool definition.
|
|
38
37
|
|
|
39
38
|
`defineTool`, `disableTool`, `defineBashTool`, `defineReadFileTool`, and `defineWriteFileTool` live on the `experimental-ash/tools` subpath.
|
|
40
|
-
Runtime helpers like `getSession`, `
|
|
41
|
-
main `experimental-ash` barrel.
|
|
39
|
+
Runtime helpers like `getSession`, `getContext`, `setContext`, `ensureContext`, `getSandbox`, and
|
|
40
|
+
`getSkill` stay on the main `experimental-ash` barrel.
|
|
42
41
|
|
|
43
42
|
## What A Tool Definition Needs
|
|
44
43
|
|
|
@@ -75,7 +74,7 @@ export default defineTool({
|
|
|
75
74
|
|
|
76
75
|
Tools are the most common place to use Ash's runtime helpers:
|
|
77
76
|
|
|
78
|
-
- `getSession()` for
|
|
77
|
+
- `getSession()` for session, turn, auth, and parent lineage data
|
|
79
78
|
- `getSandbox(name)` for live isolated shell environments
|
|
80
79
|
- `getSkill(identifier)` for reading skill metadata and packaged skill files
|
|
81
80
|
|
|
@@ -100,12 +99,15 @@ That means tools are:
|
|
|
100
99
|
|
|
101
100
|
Every Ash agent gets a small set of framework-provided tools by default:
|
|
102
101
|
`bash`, `read_file`, `write_file`, `todo`, `web_fetch`, `web_search`, and, when the agent has skills,
|
|
103
|
-
`
|
|
102
|
+
`load_skill`.
|
|
103
|
+
|
|
104
|
+
`load_skill` loads on-demand skill instructions into the current turn. It does not add a new
|
|
105
|
+
execution surface by itself; executable behavior still comes from the tools the agent already has.
|
|
104
106
|
|
|
105
107
|
`read_file` reads a text file from the sandbox filesystem with line-numbered output. `write_file`
|
|
106
108
|
writes a complete file, enforcing read-before-write for existing files and detecting stale reads.
|
|
107
|
-
Both target the framework default sandbox. Compaction clears the durable read-file
|
|
108
|
-
must re-read files before overwriting after compaction.
|
|
109
|
+
Both target the framework default sandbox. Compaction clears the durable read-file context so the
|
|
110
|
+
model must re-read files before overwriting after compaction.
|
|
109
111
|
|
|
110
112
|
Authors can wrap, replace, or disable these defaults from `agent/tools/`.
|
|
111
113
|
|
|
@@ -223,32 +225,23 @@ export default defineWriteFileTool({
|
|
|
223
225
|
```
|
|
224
226
|
|
|
225
227
|
When replacing the framework `read_file`, the authored version inherits the same compaction
|
|
226
|
-
|
|
228
|
+
context-reset behavior by default. Provide an explicit `onCompact` to override that.
|
|
227
229
|
|
|
228
|
-
### Replace A Default With Custom
|
|
230
|
+
### Replace A Default With Custom Context
|
|
229
231
|
|
|
230
|
-
`agent/tools/todo.ts` - replace the framework `todo` tool with a custom
|
|
231
|
-
|
|
232
|
-
read and write it:
|
|
232
|
+
`agent/tools/todo.ts` - replace the framework `todo` tool with a custom durable-context version.
|
|
233
|
+
Declare your own `ContextKey` and use `ensureContext` / `setContext` to read and write it:
|
|
233
234
|
|
|
234
235
|
```ts
|
|
235
|
-
import { ContextKey,
|
|
236
|
+
import { ContextKey, ensureContext, setContext } from "experimental-ash";
|
|
236
237
|
import { defineTool } from "experimental-ash/tools";
|
|
237
238
|
import { z } from "zod";
|
|
238
239
|
|
|
239
|
-
interface
|
|
240
|
+
interface NoteListContext {
|
|
240
241
|
readonly notes: readonly string[];
|
|
241
242
|
}
|
|
242
243
|
|
|
243
|
-
const
|
|
244
|
-
initial: () => ({ notes: [] }),
|
|
245
|
-
compact: (state) => ({
|
|
246
|
-
summary:
|
|
247
|
-
state.notes.length === 0
|
|
248
|
-
? undefined
|
|
249
|
-
: `Notes (${state.notes.length}): ${state.notes.join("; ")}`,
|
|
250
|
-
}),
|
|
251
|
-
});
|
|
244
|
+
const NoteListContextKey = new ContextKey<NoteListContext>("myapp.notes");
|
|
252
245
|
|
|
253
246
|
export default defineTool({
|
|
254
247
|
description: "Append a note or read the running list of notes.",
|
|
@@ -257,12 +250,12 @@ export default defineTool({
|
|
|
257
250
|
}),
|
|
258
251
|
async execute(input) {
|
|
259
252
|
if (typeof input.note === "string" && input.note.length > 0) {
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
notes: [...current.notes,
|
|
263
|
-
})
|
|
253
|
+
const current = ensureContext(NoteListContextKey, () => ({ notes: [] }));
|
|
254
|
+
setContext(NoteListContextKey, {
|
|
255
|
+
notes: [...current.notes, input.note],
|
|
256
|
+
});
|
|
264
257
|
}
|
|
265
|
-
return
|
|
258
|
+
return ensureContext(NoteListContextKey, () => ({ notes: [] }));
|
|
266
259
|
},
|
|
267
260
|
});
|
|
268
261
|
```
|
|
@@ -270,8 +263,8 @@ export default defineTool({
|
|
|
270
263
|
### Subtleties Worth Knowing
|
|
271
264
|
|
|
272
265
|
- The filename is the default name. There is also an explicit `name` property when you need it.
|
|
273
|
-
-
|
|
274
|
-
framework's
|
|
266
|
+
- Durable context is owned by the replacement. Replacing `todo` with a fresh `defineTool` does not
|
|
267
|
+
inherit the framework's context key.
|
|
275
268
|
- Authored-vs-authored collisions are impossible by construction. Two files cannot share a slug under
|
|
276
269
|
the same `agent/tools/` directory.
|
|
277
270
|
|
|
@@ -17,7 +17,7 @@ Use these to author the filesystem-backed surface. Tool authoring helpers live o
|
|
|
17
17
|
on the main `experimental-ash` barrel.
|
|
18
18
|
|
|
19
19
|
- `defineAgent(...)` - additive runtime config for `agent.ts`
|
|
20
|
-
- `
|
|
20
|
+
- `defineRoute(...)` - messaging-platform or HTTP route entrypoints in `channels/`
|
|
21
21
|
- `defineSandbox(...)` - isolated bash-style environments in `sandboxes/`
|
|
22
22
|
- `defineSchedule(...)` - recurring jobs in `schedules/`
|
|
23
23
|
- `defineSkill(...)` - module-authored skills
|
|
@@ -28,22 +28,24 @@ on the main `experimental-ash` barrel.
|
|
|
28
28
|
- `defineReadFileTool(...)` - model-visible file reader targeting a named sandbox
|
|
29
29
|
- `defineWriteFileTool(...)` - model-visible file writer targeting a named sandbox
|
|
30
30
|
- `disableTool()` - disable the framework default whose name matches `tools/<name>.ts`
|
|
31
|
-
- `
|
|
31
|
+
- `disableRoute()` - disable a framework-owned route that matches the file path
|
|
32
32
|
- `defineEvalSuite(...)` - repeatable eval suite under `evals/*.eval.ts`
|
|
33
33
|
|
|
34
34
|
Framework defaults reachable for spread/wrap composition:
|
|
35
35
|
|
|
36
|
-
- `bash`, `readFile`, `writeFile`, `webFetch`, `todo`, `
|
|
36
|
+
- `bash`, `readFile`, `writeFile`, `webFetch`, `todo`, `loadSkill` (`experimental-ash/tools/defaults`)
|
|
37
37
|
- `defaultSandbox` (`experimental-ash/sandboxes/defaults`)
|
|
38
38
|
|
|
39
39
|
Most apps use `defineAgent`, `defineTool`, and `defineSandbox` the most.
|
|
40
40
|
|
|
41
41
|
## Runtime Helpers
|
|
42
42
|
|
|
43
|
-
- `getSession()` - current
|
|
43
|
+
- `getSession()` - current session, turn, auth, and optional parent lineage
|
|
44
|
+
- `getContext(key)` - read one durable authored context value
|
|
45
|
+
- `setContext(key, value)` - write one durable authored context value
|
|
46
|
+
- `ensureContext(key, valueOrFactory)` - read-or-create one durable context value
|
|
44
47
|
- `getSandbox(name)` - live named sandbox session
|
|
45
48
|
- `getSkill(identifier)` - handle for a named skill visible to the current agent
|
|
46
|
-
- `getState(key)` / `setState(key)` - context-backed runtime state helpers
|
|
47
49
|
|
|
48
50
|
Related exported types:
|
|
49
51
|
|
|
@@ -56,11 +58,13 @@ Related exported types:
|
|
|
56
58
|
Ash also exports lower-level runtime primitives such as `createToolLoopHarness(...)`,
|
|
57
59
|
`createContinuousLoopRuntime(...)`, and `createWorkflowRuntime(...)`.
|
|
58
60
|
|
|
59
|
-
`RunMode` is explicit: `"conversation"`
|
|
60
|
-
finish inside the current invocation.
|
|
61
|
+
`RunMode` is explicit: `"conversation"` sessions may wait for follow-up input, while `"task"`
|
|
62
|
+
sessions must finish inside the current invocation.
|
|
61
63
|
|
|
62
64
|
These helpers only work inside active authored runtime execution.
|
|
63
65
|
|
|
66
|
+
Breaking change details and before/after examples live in [`migration-guide.md`](./migration-guide.md).
|
|
67
|
+
|
|
64
68
|
## Markdown Helpers
|
|
65
69
|
|
|
66
70
|
Ash also exports helpers for turning markdown into the same shapes as module-authored definitions:
|
|
@@ -81,11 +85,11 @@ shapes.
|
|
|
81
85
|
import { defineAgent } from "experimental-ash";
|
|
82
86
|
```
|
|
83
87
|
|
|
84
|
-
###
|
|
88
|
+
### Route Definition
|
|
85
89
|
|
|
86
90
|
```ts
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
91
|
+
import { defineRoute } from "experimental-ash";
|
|
92
|
+
import { httpRoute } from "experimental-ash/channels/http";
|
|
89
93
|
import { vercelOidc } from "experimental-ash/channels/auth";
|
|
90
94
|
```
|
|
91
95
|
|
|
@@ -108,7 +112,7 @@ import { defineBashTool } from "experimental-ash/tools";
|
|
|
108
112
|
|
|
109
113
|
```ts
|
|
110
114
|
import { defineTool, disableTool } from "experimental-ash/tools";
|
|
111
|
-
import { bash, readFile, writeFile, webFetch, todo,
|
|
115
|
+
import { bash, readFile, writeFile, webFetch, todo, loadSkill } from "experimental-ash/tools/defaults";
|
|
112
116
|
```
|
|
113
117
|
|
|
114
118
|
See [`tools.md`](./tools.md) for the full override patterns.
|
|
@@ -131,7 +135,7 @@ import { Braintrust } from "experimental-ash/evals/reporters";
|
|
|
131
135
|
## Where To Learn Each Surface
|
|
132
136
|
|
|
133
137
|
- `defineAgent` -> [`agent-ts.md`](./agent-ts.md)
|
|
134
|
-
- `
|
|
138
|
+
- `defineRoute` and route/channel factories -> [`channels/README.md`](./channels/README.md)
|
|
135
139
|
- `defineTool`, `disableTool`, `defineBashTool`, `defineReadFileTool`, `defineWriteFileTool`, and `experimental-ash/tools/defaults` -> [`tools.md`](./tools.md)
|
|
136
140
|
- `defineSandbox` and `getSandbox` -> [`sandboxes.md`](./sandboxes.md)
|
|
137
141
|
- `getSession` -> [`session-context.md`](./session-context.md)
|
|
@@ -9,7 +9,7 @@ This page covers the practical expectations for shipping an Ash app on Vercel.
|
|
|
9
9
|
- use `ash build` for production builds
|
|
10
10
|
- keep provider keys and auth secrets in Vercel environment variables
|
|
11
11
|
- use the `vercel` workspace or sandbox backend when the app needs hosted command environments
|
|
12
|
-
- expect Ash to expose the same stable health, message, and
|
|
12
|
+
- expect Ash to expose the same stable health, message, and session-stream routes after deployment
|
|
13
13
|
|
|
14
14
|
## Build Output
|
|
15
15
|
|
|
@@ -76,7 +76,7 @@ curl -X POST https://<your-app>/.well-known/ash/v1/message \
|
|
|
76
76
|
Then attach to the returned stream URL pattern:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
curl https://<your-app>/.well-known/ash/v1/
|
|
79
|
+
curl https://<your-app>/.well-known/ash/v1/sessions/<sessionId>/stream
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
## Remote REPL
|
|
@@ -95,11 +95,10 @@ This is useful for smoke tests against preview or production environments.
|
|
|
95
95
|
- route-auth secrets are set on the relevant channel
|
|
96
96
|
- the default sandbox `adapter` matches the deployment environment
|
|
97
97
|
- the health route responds
|
|
98
|
-
- a test message
|
|
98
|
+
- a test message session streams successfully
|
|
99
99
|
|
|
100
100
|
## What To Read Next
|
|
101
101
|
|
|
102
102
|
- [`workspace.md`](./workspace.md)
|
|
103
103
|
- [`sandboxes.md`](./sandboxes.md)
|
|
104
104
|
- [`auth-and-route-protection.md`](./auth-and-route-protection.md)
|
|
105
|
-
|
package/docs/public/workspace.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Workspace
|
|
2
2
|
|
|
3
|
-
Every Ash
|
|
3
|
+
Every Ash session gets a shared runtime workspace exposed to the model as the `bash` tool.
|
|
4
4
|
|
|
5
5
|
This workspace is for command-and-file work that should be shared across turns in the same durable
|
|
6
|
-
|
|
6
|
+
session.
|
|
7
7
|
|
|
8
8
|
## What The Workspace Is
|
|
9
9
|
|
|
10
10
|
Use the shared workspace when you want:
|
|
11
11
|
|
|
12
12
|
- one place for the model to inspect files
|
|
13
|
-
- one mutable command environment for the current
|
|
14
|
-
- command/file continuity across follow-up turns in the same
|
|
13
|
+
- one mutable command environment for the current session
|
|
14
|
+
- command/file continuity across follow-up turns in the same session
|
|
15
15
|
|
|
16
16
|
The workspace is not:
|
|
17
17
|
|
|
@@ -44,13 +44,13 @@ inspection to happen through runtime tools such as `bash`.
|
|
|
44
44
|
|
|
45
45
|
## Workspace Vs Sandboxes
|
|
46
46
|
|
|
47
|
-
Use the workspace when you want one shared per-
|
|
47
|
+
Use the workspace when you want one shared per-session shell.
|
|
48
48
|
|
|
49
49
|
Use a sandbox when you want a separate named environment with its own lifecycle hooks.
|
|
50
50
|
|
|
51
51
|
Quick comparison:
|
|
52
52
|
|
|
53
|
-
- workspace -> one shared `bash` tool for the
|
|
53
|
+
- workspace -> one shared `bash` tool for the session
|
|
54
54
|
- sandbox -> additional isolated bash-style tool surfaces
|
|
55
55
|
|
|
56
56
|
See [`sandboxes.md`](./sandboxes.md) for the isolated case.
|
|
@@ -85,28 +85,28 @@ The live root that the `bash` tool sees depends on the active workspace adapter:
|
|
|
85
85
|
- `local` -> `/workspace`
|
|
86
86
|
- `vercel` -> `/vercel/sandbox/workspace`
|
|
87
87
|
|
|
88
|
-
Ash includes the active live root in the runtime prompt for each
|
|
88
|
+
Ash includes the active live root in the runtime prompt for each session, so the model can inspect the
|
|
89
89
|
right location with `pwd`, `ls`, `find`, or `rg` instead of guessing.
|
|
90
90
|
|
|
91
91
|
## What Persists Across Turns
|
|
92
92
|
|
|
93
|
-
The shared workspace can persist across turns for the same durable
|
|
93
|
+
The shared workspace can persist across turns for the same durable session.
|
|
94
94
|
|
|
95
95
|
That lets the model do workflows like:
|
|
96
96
|
|
|
97
97
|
1. inspect files
|
|
98
98
|
2. write or modify files
|
|
99
99
|
3. wait for a follow-up message
|
|
100
|
-
4. continue working in the same
|
|
100
|
+
4. continue working in the same session
|
|
101
101
|
|
|
102
|
-
This persistence is
|
|
102
|
+
This persistence is session-scoped, not app-global.
|
|
103
103
|
|
|
104
104
|
## Good Uses
|
|
105
105
|
|
|
106
106
|
Use the workspace for:
|
|
107
107
|
|
|
108
108
|
- browsing skill files
|
|
109
|
-
- temporary working files for a
|
|
109
|
+
- temporary working files for a session
|
|
110
110
|
- simple command-driven workflows
|
|
111
111
|
- shared scratch state across turns
|
|
112
112
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "experimental-ash",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -47,6 +47,11 @@
|
|
|
47
47
|
"import": "./dist/src/public/tools/defaults.js",
|
|
48
48
|
"default": "./dist/src/public/tools/defaults.js"
|
|
49
49
|
},
|
|
50
|
+
"./connections": {
|
|
51
|
+
"types": "./dist/src/public/connections/index.d.ts",
|
|
52
|
+
"import": "./dist/src/public/connections/index.js",
|
|
53
|
+
"default": "./dist/src/public/connections/index.js"
|
|
54
|
+
},
|
|
50
55
|
"./sandboxes": {
|
|
51
56
|
"types": "./dist/src/public/sandboxes/index.d.ts",
|
|
52
57
|
"import": "./dist/src/public/sandboxes/index.js",
|
|
@@ -100,31 +105,32 @@
|
|
|
100
105
|
"./package.json": "./package.json"
|
|
101
106
|
},
|
|
102
107
|
"dependencies": {
|
|
103
|
-
"@ai-sdk/anthropic": "^3.0.
|
|
108
|
+
"@ai-sdk/anthropic": "^3.0.69",
|
|
104
109
|
"@ai-sdk/google": "^3.0.61",
|
|
110
|
+
"@ai-sdk/mcp": "^1.0.36",
|
|
105
111
|
"@ai-sdk/openai": "^3.0.52",
|
|
106
|
-
"@chat-adapter/slack": "^4.
|
|
107
|
-
"@chat-adapter/state-memory": "^4.
|
|
112
|
+
"@chat-adapter/slack": "^4.25.0",
|
|
113
|
+
"@chat-adapter/state-memory": "^4.25.0",
|
|
108
114
|
"@standard-schema/spec": "^1.1.0",
|
|
109
115
|
"@vercel/oidc": "^3.2.0",
|
|
110
116
|
"@vercel/sandbox": "2.0.0-beta.12",
|
|
111
|
-
"@workflow/ai": "^4.1.
|
|
112
|
-
"@workflow/builders": "^4.0.
|
|
113
|
-
"ai": "^6.0.
|
|
117
|
+
"@workflow/ai": "^4.1.1",
|
|
118
|
+
"@workflow/builders": "^4.0.2",
|
|
119
|
+
"ai": "^6.0.158",
|
|
114
120
|
"bash-tool": "^1.3.16",
|
|
115
|
-
"chat": "^4.
|
|
121
|
+
"chat": "^4.25.0",
|
|
116
122
|
"chokidar": "^5.0.0",
|
|
117
123
|
"commander": "^14.0.3",
|
|
118
124
|
"esbuild": "^0.28.0",
|
|
119
125
|
"gray-matter": "^4.0.3",
|
|
120
126
|
"jose": "^6.2.2",
|
|
121
127
|
"jsonc-parser": "^3.3.1",
|
|
122
|
-
"just-bash": "^2.14.
|
|
128
|
+
"just-bash": "^2.14.1",
|
|
123
129
|
"nitro": "3.0.260311-beta",
|
|
124
130
|
"picocolors": "^1.1.1",
|
|
125
131
|
"std-env": "^4.0.0",
|
|
126
132
|
"turndown": "^7.2.4",
|
|
127
|
-
"workflow": "^4.2.
|
|
133
|
+
"workflow": "^4.2.1",
|
|
128
134
|
"zod": "^4.3.6",
|
|
129
135
|
"zod-validation-error": "^5.0.0"
|
|
130
136
|
},
|
|
@@ -138,11 +144,12 @@
|
|
|
138
144
|
},
|
|
139
145
|
"devDependencies": {
|
|
140
146
|
"@types/turndown": "^5.0.6",
|
|
141
|
-
"@workflow/vitest": "^4.0.
|
|
147
|
+
"@workflow/vitest": "^4.0.2"
|
|
142
148
|
},
|
|
143
149
|
"scripts": {
|
|
144
150
|
"clean": "rm -rf dist",
|
|
145
151
|
"build": "pnpm run clean && tsc -p tsconfig.build.json && node ./scripts/copy-static-assets.mjs",
|
|
152
|
+
"dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
146
153
|
"lint": "biome lint .",
|
|
147
154
|
"test": "pnpm run test:unit && pnpm run test:integration",
|
|
148
155
|
"test:integration": "vitest run --config vitest.integration.config.ts",
|