experimental-ash 0.58.1 → 0.59.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 (58) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/docs/public/tools.mdx +51 -0
  3. package/dist/skills/v0-ash-onboarding/SKILL.md +308 -0
  4. package/dist/src/cli/dev/tui/markdown.js +1 -1
  5. package/dist/src/compiled/.vendor-stamp.json +2 -2
  6. package/dist/src/compiled/experimental-ai-sdk-code-mode/approval-continuation.d.ts +71 -0
  7. package/dist/src/compiled/experimental-ai-sdk-code-mode/approval.d.ts +32 -0
  8. package/dist/src/compiled/experimental-ai-sdk-code-mode/code-mode-tool.d.ts +16 -0
  9. package/dist/src/compiled/experimental-ai-sdk-code-mode/continuation-capability.d.ts +33 -0
  10. package/dist/src/compiled/experimental-ai-sdk-code-mode/errors.d.ts +114 -0
  11. package/dist/src/compiled/experimental-ai-sdk-code-mode/fetch-policy.d.ts +21 -0
  12. package/dist/src/compiled/experimental-ai-sdk-code-mode/host-interrupt.d.ts +25 -0
  13. package/dist/src/compiled/experimental-ai-sdk-code-mode/index.d.ts +11 -144
  14. package/dist/src/compiled/experimental-ai-sdk-code-mode/index.js +10 -73
  15. package/dist/src/compiled/experimental-ai-sdk-code-mode/interrupt-continuation.d.ts +32 -0
  16. package/dist/src/compiled/experimental-ai-sdk-code-mode/options.d.ts +3 -0
  17. package/dist/src/compiled/experimental-ai-sdk-code-mode/run-code-mode.d.ts +12 -0
  18. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/guest-sources.d.ts +3 -0
  19. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/manager.d.ts +22 -0
  20. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/max-workers.d.ts +20 -0
  21. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/protocol.d.ts +49 -0
  22. package/dist/src/compiled/experimental-ai-sdk-code-mode/runtime/worker-source.d.ts +11 -0
  23. package/dist/src/compiled/experimental-ai-sdk-code-mode/serialization.d.ts +5 -0
  24. package/dist/src/compiled/experimental-ai-sdk-code-mode/source-cache.d.ts +11 -0
  25. package/dist/src/compiled/experimental-ai-sdk-code-mode/telemetry.d.ts +20 -0
  26. package/dist/src/compiled/experimental-ai-sdk-code-mode/tool-invocation.d.ts +24 -0
  27. package/dist/src/compiled/experimental-ai-sdk-code-mode/tool-prompt.d.ts +3 -0
  28. package/dist/src/compiled/experimental-ai-sdk-code-mode/types.d.ts +802 -0
  29. package/dist/src/execution/node-step.js +1 -1
  30. package/dist/src/execution/tool-auth.d.ts +42 -0
  31. package/dist/src/execution/tool-auth.js +1 -0
  32. package/dist/src/harness/action-result-helpers.d.ts +17 -0
  33. package/dist/src/harness/action-result-helpers.js +1 -1
  34. package/dist/src/harness/code-mode-interrupt-state.d.ts +26 -0
  35. package/dist/src/harness/code-mode-interrupt-state.js +1 -0
  36. package/dist/src/harness/code-mode-lifecycle.js +1 -1
  37. package/dist/src/harness/code-mode.js +1 -1
  38. package/dist/src/harness/tool-loop.js +1 -1
  39. package/dist/src/internal/application/package.js +1 -1
  40. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  41. package/dist/src/packages/ash-scaffold/src/channels.js +2 -2
  42. package/dist/src/packages/ash-scaffold/src/steps/run-add-to-agent.js +1 -1
  43. package/dist/src/packages/ash-scaffold/src/web-template.js +2 -14
  44. package/dist/src/public/connections/index.js +1 -1
  45. package/dist/src/public/definitions/tool.d.ts +61 -1
  46. package/dist/src/public/definitions/tool.js +1 -1
  47. package/dist/src/public/next/server.js +1 -1
  48. package/dist/src/runtime/connections/mcp-client.js +1 -1
  49. package/dist/src/runtime/connections/scoped-authorization.d.ts +61 -0
  50. package/dist/src/runtime/connections/scoped-authorization.js +1 -0
  51. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +1 -1
  52. package/dist/src/runtime/resolve-tool.js +1 -1
  53. package/dist/src/runtime/types.d.ts +10 -0
  54. package/package.json +2 -2
  55. package/dist/src/harness/code-mode-approval.d.ts +0 -22
  56. package/dist/src/harness/code-mode-approval.js +0 -1
  57. package/dist/src/harness/code-mode-connection-auth-state.d.ts +0 -15
  58. package/dist/src/harness/code-mode-connection-auth-state.js +0 -1
@@ -0,0 +1,114 @@
1
+ import type { SerializableError } from "./types.js";
2
+ /**
3
+ * Base class for errors raised by code mode.
4
+ *
5
+ * All package-specific errors include a stable `code` string and may include
6
+ * structured `details` for diagnostics.
7
+ */
8
+ export declare class CodeModeError extends Error {
9
+ /**
10
+ * Stable machine-readable error code.
11
+ */
12
+ code: string;
13
+ /**
14
+ * Optional structured diagnostic details.
15
+ */
16
+ readonly details?: unknown;
17
+ constructor(message: string, code?: string, details?: unknown);
18
+ }
19
+ /**
20
+ * Raised when a sandbox invocation exceeds its timeout.
21
+ */
22
+ export declare class CodeModeTimeoutError extends CodeModeError {
23
+ constructor(timeoutMs: number);
24
+ }
25
+ /**
26
+ * Raised when the outer AI SDK abort signal aborts a code-mode invocation.
27
+ */
28
+ export declare class CodeModeAbortedError extends CodeModeError {
29
+ constructor();
30
+ }
31
+ /**
32
+ * Raised when the process-global worker cap has been reached.
33
+ *
34
+ * Configure the cap with `setMaxWorkers`.
35
+ */
36
+ export declare class CodeModeConcurrencyError extends CodeModeError {
37
+ constructor(maxWorkers: number);
38
+ }
39
+ /**
40
+ * Raised when the provided source exceeds `executionPolicy.maxSourceBytes`.
41
+ */
42
+ export declare class CodeModeSourceTooLargeError extends CodeModeError {
43
+ constructor(bytes: number, maxBytes: number);
44
+ }
45
+ /**
46
+ * Raised when sandboxed code exceeds bridge request limits.
47
+ *
48
+ * Bridge requests include host tool calls and sandbox fetch calls.
49
+ */
50
+ export declare class CodeModeBridgeLimitError extends CodeModeError {
51
+ constructor(message: string, details?: unknown);
52
+ }
53
+ /**
54
+ * Raised when sandboxed code starts host bridge work and returns without
55
+ * awaiting or otherwise observing it.
56
+ */
57
+ export declare class CodeModeDetachedBridgeRequestError extends CodeModeError {
58
+ constructor(message: string, details?: unknown);
59
+ }
60
+ /**
61
+ * Raised when the main thread and worker protocol observes an invalid or
62
+ * mismatched message.
63
+ */
64
+ export declare class CodeModeProtocolError extends CodeModeError {
65
+ constructor(message: string, details?: unknown);
66
+ }
67
+ /**
68
+ * Base class for failures caused by nested host tool execution.
69
+ */
70
+ export declare class CodeModeToolError extends CodeModeError {
71
+ constructor(message: string, details?: unknown);
72
+ }
73
+ /**
74
+ * Raised when sandboxed code requests a tool that requires approval and no
75
+ * approval callback approves it.
76
+ */
77
+ export declare class CodeModeToolApprovalRequiredError extends CodeModeToolError {
78
+ constructor(toolName: string, input: unknown, toolCallId: string);
79
+ }
80
+ /**
81
+ * Raised when `approval.onApprovalRequired` denies a requested host tool call.
82
+ */
83
+ export declare class CodeModeToolApprovalDeniedError extends CodeModeToolError {
84
+ constructor(toolName: string, input: unknown, toolCallId: string, reason?: string);
85
+ }
86
+ /**
87
+ * Raised when sandboxed `fetch` is unavailable, disallowed by policy, aborted,
88
+ * too large, or otherwise fails during host fetch handling.
89
+ */
90
+ export declare class CodeModeFetchError extends CodeModeError {
91
+ constructor(message: string, details?: unknown);
92
+ }
93
+ /**
94
+ * Converts an unknown thrown value into a worker-safe serializable shape.
95
+ *
96
+ * @internal
97
+ */
98
+ export declare function serializeError(error: unknown): SerializableError;
99
+ /**
100
+ * Converts host bridge failures into a sandbox-visible sanitized shape.
101
+ *
102
+ * This intentionally omits stack traces and diagnostic details. Full host
103
+ * diagnostics should use `serializeError` through lifecycle hooks or telemetry.
104
+ *
105
+ * @internal
106
+ */
107
+ export declare function serializeBridgeErrorForGuest(error: unknown, context: "tool" | "fetch" | "bridge"): SerializableError;
108
+ /**
109
+ * Rehydrates a serialized worker error into an Error instance.
110
+ *
111
+ * @internal
112
+ */
113
+ export declare function deserializeError(error: SerializableError): Error;
114
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { CodeModeFetchPolicy } from "./types.js";
2
+ export interface HostFetchRequest {
3
+ url: string;
4
+ method?: string;
5
+ headers?: Record<string, string>;
6
+ body?: string;
7
+ }
8
+ export interface HostFetchResponse {
9
+ url: string;
10
+ status: number;
11
+ statusText: string;
12
+ headers: Record<string, string>;
13
+ body: string;
14
+ }
15
+ export declare function executeHostFetch({ request, fetch, policy, signal, }: {
16
+ request: HostFetchRequest;
17
+ fetch: typeof globalThis.fetch | undefined | false;
18
+ policy: CodeModeFetchPolicy;
19
+ signal?: AbortSignal;
20
+ }): Promise<HostFetchResponse>;
21
+ //# sourceMappingURL=fetch-policy.d.ts.map
@@ -0,0 +1,25 @@
1
+ import type { CodeModeInterruptPayload } from "./types.js";
2
+ declare const CODE_MODE_HOST_INTERRUPT_SIGNAL: unique symbol;
3
+ interface CodeModeHostInterruptSignal extends Error {
4
+ readonly [CODE_MODE_HOST_INTERRUPT_SIGNAL]: true;
5
+ readonly payload: CodeModeInterruptPayload;
6
+ }
7
+ /**
8
+ * Interrupts the current nested host tool call and returns control to the host.
9
+ *
10
+ * Host tools can call this when they need an external pause, such as connection
11
+ * OAuth. Code mode returns a serializable `CodeModeInterrupt` with an opaque
12
+ * continuation instead of treating the pause as a tool failure.
13
+ *
14
+ * @param payload - JSON-serializable interruption payload with a stable `kind`.
15
+ */
16
+ export declare function requestCodeModeInterrupt<TPayload extends CodeModeInterruptPayload>(payload: TPayload): never;
17
+ /**
18
+ * Returns true when an unknown thrown value is the internal host-interrupt
19
+ * signal thrown by `requestCodeModeInterrupt`.
20
+ *
21
+ * @internal
22
+ */
23
+ export declare function isCodeModeHostInterruptSignal(value: unknown): value is CodeModeHostInterruptSignal;
24
+ export {};
25
+ //# sourceMappingURL=host-interrupt.d.ts.map
@@ -1,144 +1,11 @@
1
- import type { ModelMessage, ToolSet } from "ai";
2
-
3
- export interface CodeModeInterruptPayload {
4
- readonly kind?: string;
5
- readonly [key: string]: unknown;
6
- }
7
-
8
- export interface CodeModeContinuation {
9
- readonly outerToolCallId: string;
10
- readonly [key: string]: unknown;
11
- }
12
-
13
- export interface CodeModePendingContinuation<
14
- Payload extends CodeModeInterruptPayload = CodeModeInterruptPayload,
15
- > {
16
- readonly continuation: CodeModeContinuation;
17
- readonly interrupt: CodeModeInterruptCore<Payload>;
18
- readonly type: "code-mode-pending-continuation";
19
- readonly [key: string]: unknown;
20
- }
21
-
22
- export interface CodeModeInterruptCore<
23
- Payload extends CodeModeInterruptPayload = CodeModeInterruptPayload,
24
- > {
25
- readonly continuation: CodeModeContinuation;
26
- readonly interruptId: string;
27
- readonly payload: Payload;
28
- readonly type: "code-mode-interrupt";
29
- }
30
-
31
- export interface CodeModeInterrupt<
32
- Payload extends CodeModeInterruptPayload = CodeModeInterruptPayload,
33
- > extends CodeModeInterruptCore<Payload> {
34
- readonly pendingContinuation: CodeModePendingContinuation<Payload>;
35
- }
36
-
37
- export interface CodeModeApprovalInterrupt {
38
- readonly approvalId: string;
39
- readonly continuation: CodeModeContinuation;
40
- readonly toolCallId: string;
41
- readonly toolName: string;
42
- readonly type: "code-mode-approval-required";
43
- }
44
-
45
- export interface CodeModeInterruptExecutionContext<
46
- Payload extends CodeModeInterruptPayload = CodeModeInterruptPayload,
47
- Resolution = unknown,
48
- > {
49
- readonly interruptId: string;
50
- readonly payload: Payload;
51
- readonly resolution: Resolution;
52
- }
53
-
54
- export interface CodeModeNestedToolCallEvent {
55
- readonly bridgeIndex: number;
56
- readonly input: unknown;
57
- readonly inputBytes: number;
58
- readonly invocationId: string;
59
- readonly outerToolCallId: string;
60
- readonly replayed?: boolean;
61
- readonly startedAtMs: number;
62
- readonly toolCallId: string;
63
- readonly toolName: string;
64
- }
65
-
66
- export interface CodeModeNestedToolResultEvent {
67
- readonly bridgeIndex: number;
68
- readonly completedAtMs: number;
69
- readonly durationMs: number;
70
- readonly error?: unknown;
71
- readonly input: unknown;
72
- readonly inputBytes: number;
73
- readonly invocationId: string;
74
- readonly outerToolCallId: string;
75
- readonly output?: unknown;
76
- readonly outputBytes?: number;
77
- readonly replayed?: boolean;
78
- readonly startedAtMs: number;
79
- readonly status: "fulfilled" | "rejected" | "interrupted" | "approval-required";
80
- readonly toolCallId: string;
81
- readonly toolName: string;
82
- }
83
-
84
- export interface CodeModeLifecycleHookErrorEvent {
85
- readonly event: unknown;
86
- readonly hook: string;
87
- }
88
-
89
- export interface CodeModeOptions {
90
- readonly approval?: {
91
- readonly mode: "interrupt";
92
- };
93
- readonly lifecycle?: {
94
- readonly onHookError?: (
95
- error: unknown,
96
- event: CodeModeLifecycleHookErrorEvent,
97
- ) => void | Promise<void>;
98
- readonly onInterrupt?: (event: unknown) => void | Promise<void>;
99
- readonly onNestedToolCall?: (event: CodeModeNestedToolCallEvent) => void | Promise<void>;
100
- readonly onNestedToolResult?: (event: CodeModeNestedToolResultEvent) => void | Promise<void>;
101
- };
102
- }
103
-
104
- export interface CodeModeUnwrappedResult {
105
- readonly interrupt?: CodeModeInterrupt | CodeModeApprovalInterrupt;
106
- readonly output?: unknown;
107
- readonly status: "completed" | "interrupted";
108
- }
109
-
110
- export class CodeModeProtocolError extends Error {
111
- readonly code: "CODE_MODE_PROTOCOL_ERROR";
112
- readonly details?: unknown;
113
- constructor(message: string, details?: unknown);
114
- }
115
-
116
- export function createCodeModeTool(tools: ToolSet, options?: CodeModeOptions): unknown;
117
- export function continueCodeModeApproval(input: {
118
- readonly approvalResponse: unknown;
119
- readonly interrupt: CodeModeApprovalInterrupt;
120
- readonly options?: CodeModeOptions;
121
- readonly tools: ToolSet;
122
- }): Promise<unknown>;
123
- export function continueCodeModeInterrupt(input: {
124
- readonly interrupt: CodeModeInterrupt;
125
- readonly resolution: unknown;
126
- readonly options?: CodeModeOptions;
127
- readonly tools: ToolSet;
128
- }): Promise<unknown>;
129
- export function getCodeModeApprovalResponse(
130
- messages: readonly ModelMessage[],
131
- interrupt: CodeModeApprovalInterrupt,
132
- ): unknown | undefined;
133
- export function getCodeModeInterrupt(value: unknown): CodeModeInterrupt | undefined;
134
- export function isCodeModeApprovalInterrupt(value: unknown): value is CodeModeApprovalInterrupt;
135
- export function replaceCodeModeInterruptResult(
136
- messages: readonly ModelMessage[],
137
- pending: CodeModePendingContinuation,
138
- finalOutput: unknown,
139
- ): ModelMessage[];
140
- export function requestCodeModeInterrupt(payload: CodeModeInterruptPayload): never;
141
- export function toCodeModeApprovalMessages(
142
- interrupt: CodeModeApprovalInterrupt,
143
- ): readonly ModelMessage[];
144
- export function unwrapCodeModeResult(value: unknown): CodeModeUnwrappedResult;
1
+ export { attachCodeModeApprovalResult, continueCodeModeApproval, generateTextWithCodeModeApprovals, getCodeModeApprovalInterrupt, getCodeModeApprovalResponse, isCodeModeApprovalInterrupt, streamTextWithCodeModeApprovals, toCodeModeApprovalMessages, wrapToolLoopAgentForCodeModeApprovals, } from "./approval-continuation.js";
2
+ export { createCodeModeTool } from "./code-mode-tool.js";
3
+ export { setCodeModeContinuationSigningKey } from "./continuation-capability.js";
4
+ export { CodeModeAbortedError, CodeModeBridgeLimitError, CodeModeConcurrencyError, CodeModeDetachedBridgeRequestError, CodeModeError, CodeModeFetchError, CodeModeProtocolError, CodeModeSourceTooLargeError, CodeModeTimeoutError, CodeModeToolApprovalDeniedError, CodeModeToolApprovalRequiredError, CodeModeToolError, } from "./errors.js";
5
+ export { requestCodeModeInterrupt } from "./host-interrupt.js";
6
+ export { continueCodeModeInterrupt, getCodeModeInterrupt, isCodeModeInterrupt, replaceCodeModeInterruptResult, unwrapCodeModeResult, } from "./interrupt-continuation.js";
7
+ export { runCodeMode } from "./run-code-mode.js";
8
+ export { getCodeModeWorkerUrl, getDefaultCodeModeWorkerUrl, setCodeModeWorkerUrl, } from "./runtime/manager.js";
9
+ export { setMaxWorkers } from "./runtime/max-workers.js";
10
+ export type { ApprovalDecision, CodeModeApprovalInterrupt, CodeModeApprovalInterruptPayload, CodeModeApprovalRequest, CodeModeApprovalResolution, CodeModeApprovalResponse, CodeModeContinuation, CodeModeContinuationAuth, CodeModeContinuationLedgerEntry, CodeModeDeterminismState, CodeModeExecutionPolicy, CodeModeFetchPolicy, CodeModeFetchRequestEvent, CodeModeFetchResultEvent, CodeModeInterrupt, CodeModeInterruptEvent, CodeModeInterruptExecutionContext, CodeModeInterruptPayload, CodeModeInterruptResolution, CodeModeLifecycleHookErrorEvent, CodeModeModelOutput, CodeModeModelOutputOptions, CodeModeModelVisibleBridgeSummary, CodeModeNestedToolCallEvent, CodeModeNestedToolResultEvent, CodeModeOptions, CodeModeTelemetryOptions, CodeModeToolExecutionOptions, CodeModeToolInput, CodeModeToolSet, CodeModeTrace, CodeModeTraceEntry, CodeModeUnwrappedResult, CodeModeWorkerUrl, RunCodeModeInput, UnsignedCodeModeContinuation, } from "./types.js";
11
+ //# sourceMappingURL=index.d.ts.map