experimental-ash 0.56.0 → 0.58.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.
Files changed (79) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/docs/internals/compiler-and-artifacts.md +1 -1
  3. package/dist/docs/internals/context.md +3 -3
  4. package/dist/docs/public/advanced/typescript-api.md +19 -0
  5. package/dist/docs/public/advanced/vercel-deployment.md +2 -1
  6. package/dist/docs/public/channels/github.md +145 -0
  7. package/dist/docs/public/channels/index.md +23 -2
  8. package/dist/docs/public/sandbox.md +18 -3
  9. package/dist/docs/public/subagents.mdx +56 -10
  10. package/dist/docs/public/tools.mdx +8 -2
  11. package/dist/src/cli/commands/channels.d.ts +3 -3
  12. package/dist/src/cli/commands/channels.js +1 -1
  13. package/dist/src/compiler/manifest.d.ts +8 -2
  14. package/dist/src/compiler/manifest.js +1 -1
  15. package/dist/src/compiler/normalize-sandbox.js +1 -1
  16. package/dist/src/context/providers/sandbox.js +1 -1
  17. package/dist/src/execution/delegated-parent-result.d.ts +1 -1
  18. package/dist/src/execution/next-driver-action.d.ts +1 -1
  19. package/dist/src/execution/node-step.js +1 -1
  20. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  21. package/dist/src/execution/session-callback-step.d.ts +1 -1
  22. package/dist/src/execution/session.d.ts +4 -2
  23. package/dist/src/execution/session.js +3 -1
  24. package/dist/src/execution/subagent-tool.js +1 -1
  25. package/dist/src/execution/workflow-entry.d.ts +1 -1
  26. package/dist/src/execution/workflow-steps.d.ts +1 -1
  27. package/dist/src/execution/workflow-steps.js +1 -1
  28. package/dist/src/harness/code-mode.js +1 -1
  29. package/dist/src/harness/tool-loop.js +1 -1
  30. package/dist/src/harness/types.d.ts +1 -1
  31. package/dist/src/internal/application/package.js +1 -1
  32. package/dist/src/internal/authored-definition/sandbox.d.ts +2 -1
  33. package/dist/src/internal/authored-definition/sandbox.js +1 -1
  34. package/dist/src/packages/ash-scaffold/src/channels.js +1 -1
  35. package/dist/src/packages/ash-scaffold/src/steps/index.js +1 -1
  36. package/dist/src/packages/ash-scaffold/src/steps/project-resolution.js +1 -0
  37. package/dist/src/packages/ash-scaffold/src/steps/run-add-to-agent.js +2 -2
  38. package/dist/src/public/channels/github/api.d.ts +166 -0
  39. package/dist/src/public/channels/github/api.js +1 -0
  40. package/dist/src/public/channels/github/auth.d.ts +83 -0
  41. package/dist/src/public/channels/github/auth.js +2 -0
  42. package/dist/src/public/channels/github/binding.d.ts +49 -0
  43. package/dist/src/public/channels/github/binding.js +1 -0
  44. package/dist/src/public/channels/github/checkout.d.ts +48 -0
  45. package/dist/src/public/channels/github/checkout.js +1 -0
  46. package/dist/src/public/channels/github/constants.d.ts +2 -0
  47. package/dist/src/public/channels/github/constants.js +1 -0
  48. package/dist/src/public/channels/github/defaults.d.ts +21 -0
  49. package/dist/src/public/channels/github/defaults.js +3 -0
  50. package/dist/src/public/channels/github/dispatch.d.ts +34 -0
  51. package/dist/src/public/channels/github/dispatch.js +1 -0
  52. package/dist/src/public/channels/github/githubChannel.d.ts +109 -0
  53. package/dist/src/public/channels/github/githubChannel.js +1 -0
  54. package/dist/src/public/channels/github/inbound.d.ts +183 -0
  55. package/dist/src/public/channels/github/inbound.js +2 -0
  56. package/dist/src/public/channels/github/index.d.ts +9 -0
  57. package/dist/src/public/channels/github/index.js +1 -0
  58. package/dist/src/public/channels/github/limits.d.ts +4 -0
  59. package/dist/src/public/channels/github/limits.js +2 -0
  60. package/dist/src/public/channels/github/pr-context.d.ts +45 -0
  61. package/dist/src/public/channels/github/pr-context.js +5 -0
  62. package/dist/src/public/channels/github/state.d.ts +48 -0
  63. package/dist/src/public/channels/github/state.js +1 -0
  64. package/dist/src/public/channels/github/verify.d.ts +35 -0
  65. package/dist/src/public/channels/github/verify.js +1 -0
  66. package/dist/src/public/definitions/sandbox.d.ts +3 -3
  67. package/dist/src/public/sandbox/index.d.ts +1 -1
  68. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  69. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  70. package/dist/src/runtime/resolve-sandbox.js +1 -1
  71. package/dist/src/runtime/sandbox/keys.js +1 -1
  72. package/dist/src/runtime/sandbox/template-plan.d.ts +5 -0
  73. package/dist/src/runtime/sandbox/template-plan.js +1 -1
  74. package/dist/src/runtime/session-callback-route.js +1 -1
  75. package/dist/src/runtime/subagents/registry.d.ts +6 -0
  76. package/dist/src/runtime/subagents/registry.js +1 -1
  77. package/dist/src/runtime/types.d.ts +6 -2
  78. package/dist/src/shared/sandbox-definition.d.ts +22 -2
  79. package/package.json +6 -1
@@ -10,6 +10,7 @@ export interface SandboxSessionContext<O = Record<string, never>> {
10
10
  readonly ctx: SessionContext;
11
11
  readonly use: SandboxSessionUseFn<O>;
12
12
  }
13
+ export type SandboxRevalidationKeyFn = () => Promise<string> | string;
13
14
  /**
14
15
  * Public sandbox definition authored in `agent/sandbox.ts` (shorthand)
15
16
  * or `agent/sandbox/sandbox.ts` (folder layout, when paired with an
@@ -23,7 +24,7 @@ export interface SandboxSessionContext<O = Record<string, never>> {
23
24
  * `subagents/<name>/sandbox.ts` (or the folder form) and do not inherit
24
25
  * their parent's sandbox (skill seeds differ per agent).
25
26
  */
26
- export interface SandboxDefinition<BO = Record<string, never>, SO = Record<string, never>> {
27
+ interface SandboxDefinitionBase<BO = Record<string, never>, SO = Record<string, never>> {
27
28
  /**
28
29
  * Backend that runs this sandbox.
29
30
  *
@@ -49,6 +50,25 @@ export interface SandboxDefinition<BO = Record<string, never>, SO = Record<strin
49
50
  * specific backend regardless of environment.
50
51
  */
51
52
  readonly backend: SandboxBackend<BO, SO> | (() => SandboxBackend<BO, SO>);
52
- bootstrap?(input: SandboxBootstrapContext<BO>): Promise<void> | void;
53
+ readonly description?: string;
53
54
  onSession?(input: SandboxSessionContext<SO>): Promise<void> | void;
54
55
  }
56
+ export interface SandboxDefinitionWithBootstrap<BO = Record<string, never>, SO = Record<string, never>> extends SandboxDefinitionBase<BO, SO> {
57
+ bootstrap(input: SandboxBootstrapContext<BO>): Promise<void> | void;
58
+ /**
59
+ * Optional build-time revalidation key for the reusable sandbox
60
+ * snapshot produced by {@link bootstrap}. Ash evaluates this
61
+ * function during compile/build, stores the resolved string in
62
+ * compiled artifacts, and uses that frozen value for both prewarm and
63
+ * runtime session create. Authored sandbox source and
64
+ * framework-managed seed contents are included automatically; provide
65
+ * this key only for external inputs that affect bootstrap output.
66
+ */
67
+ readonly revalidationKey?: SandboxRevalidationKeyFn;
68
+ }
69
+ export interface SandboxDefinitionWithoutBootstrap<BO = Record<string, never>, SO = Record<string, never>> extends SandboxDefinitionBase<BO, SO> {
70
+ bootstrap?: undefined;
71
+ readonly revalidationKey?: never;
72
+ }
73
+ export type SandboxDefinition<BO = Record<string, never>, SO = Record<string, never>> = SandboxDefinitionWithBootstrap<BO, SO> | SandboxDefinitionWithoutBootstrap<BO, SO>;
74
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "experimental-ash",
3
- "version": "0.56.0",
3
+ "version": "0.58.0",
4
4
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
5
5
  "keywords": [
6
6
  "agent-framework",
@@ -165,6 +165,11 @@
165
165
  "import": "./dist/src/public/channels/slack/index.js",
166
166
  "default": "./dist/src/public/channels/slack/index.js"
167
167
  },
168
+ "./channels/github": {
169
+ "types": "./dist/src/public/channels/github/index.d.ts",
170
+ "import": "./dist/src/public/channels/github/index.js",
171
+ "default": "./dist/src/public/channels/github/index.js"
172
+ },
168
173
  "./channels/discord": {
169
174
  "types": "./dist/src/public/channels/discord/index.d.ts",
170
175
  "import": "./dist/src/public/channels/discord/index.js",