@bastani/atomic 0.9.19-alpha.3 → 0.9.19-alpha.5
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/CHANGELOG.md +35 -0
- package/dist/builtin/intercom/CHANGELOG.md +8 -0
- package/dist/builtin/intercom/index.bundle.mjs +117 -26
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +18 -0
- package/dist/builtin/subagents/README.md +15 -15
- package/dist/builtin/subagents/agents/debugger.md +2 -2
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/skills/subagent/SKILL.md +26 -26
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +140 -58
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +27 -0
- package/dist/builtin/workflows/README.md +14 -15
- package/dist/builtin/workflows/builtin/{chunk-mygmtz6e.js → chunk-1nbq96fh.js} +19 -19
- package/dist/builtin/workflows/builtin/{chunk-zggjyg5z.js → chunk-n8zysf1t.js} +1 -1
- package/dist/builtin/workflows/builtin/{chunk-r9qq7xfj.js → chunk-vhmnzdj9.js} +37 -37
- package/dist/builtin/workflows/builtin/{chunk-62v3gg9f.js → chunk-yeee2jrc.js} +11 -11
- package/dist/builtin/workflows/builtin/goal.js +2 -2
- package/dist/builtin/workflows/builtin/index.js +4 -4
- package/dist/builtin/workflows/builtin/open-claude-design.js +1 -1
- package/dist/builtin/workflows/builtin/ralph.js +2 -2
- package/dist/builtin/workflows/package.json +5 -5
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +180 -239
- package/dist/builtin/workflows/src/index.js +19 -2
- package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -1
- package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +1 -1
- package/dist/core/agent-session-auto-compaction.js +1 -1
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-compaction.js +1 -1
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +33 -2
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +1 -1
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +20 -6
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +4 -1
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.d.ts +1 -1
- package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
- package/dist/core/agent-session-persistent-custom-messages.js +13 -3
- package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +1 -1
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +83 -0
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
- package/dist/core/agent-session-queue-pause.js +11 -0
- package/dist/core/agent-session-queue-pause.js.map +1 -1
- package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
- package/dist/core/agent-session-tool-hooks.js +2 -0
- package/dist/core/agent-session-tool-hooks.js.map +1 -1
- package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
- package/dist/core/agent-session-tool-registry.js +12 -0
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-transfer.d.ts.map +1 -1
- package/dist/core/agent-session-transfer.js +7 -0
- package/dist/core/agent-session-transfer.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +2 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js +2 -0
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +22 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/context-types.d.ts +6 -0
- package/dist/core/extensions/context-types.d.ts.map +1 -1
- package/dist/core/extensions/context-types.js.map +1 -1
- package/dist/core/extensions/loader-virtual-modules.js +3 -3
- package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
- package/dist/core/extensions/runner-context.d.ts +1 -1
- package/dist/core/extensions/runner-context.d.ts.map +1 -1
- package/dist/core/extensions/runner-context.js +9 -3
- package/dist/core/extensions/runner-context.js.map +1 -1
- package/dist/core/extensions/runner.js +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/workflow-events.d.ts +1 -1
- package/dist/core/extensions/workflow-events.d.ts.map +1 -1
- package/dist/core/extensions/workflow-events.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +1 -1
- package/dist/core/sdk-exports.d.ts.map +1 -1
- package/dist/core/sdk-exports.js +1 -1
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/settings-manager-basic-accessors.d.ts +5 -3
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +23 -8
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-types.d.ts +5 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -5
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tasks/agent-adapter.d.ts +5 -2
- package/dist/core/tasks/agent-adapter.d.ts.map +1 -1
- package/dist/core/tasks/agent-adapter.js +10 -3
- package/dist/core/tasks/agent-adapter.js.map +1 -1
- package/dist/core/tasks/completion.d.ts.map +1 -1
- package/dist/core/tasks/completion.js +5 -1
- package/dist/core/tasks/completion.js.map +1 -1
- package/dist/core/tools/bash-pty-native.d.ts +16 -2
- package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
- package/dist/core/tools/bash-pty-native.js +82 -0
- package/dist/core/tools/bash-pty-native.js.map +1 -1
- package/dist/core/tools/bash.d.ts +13 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +48 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +4 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +12 -0
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/kill.d.ts +17 -0
- package/dist/core/tools/kill.d.ts.map +1 -0
- package/dist/core/tools/kill.js +49 -0
- package/dist/core/tools/kill.js.map +1 -0
- package/dist/core/tools/powershell.d.ts +84 -28
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/powershell.js +10 -3
- package/dist/core/tools/powershell.js.map +1 -1
- package/dist/core/workflow-stage-admission.d.ts +14 -0
- package/dist/core/workflow-stage-admission.d.ts.map +1 -1
- package/dist/core/workflow-stage-admission.js +63 -3
- package/dist/core/workflow-stage-admission.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/components/task-row.d.ts.map +1 -1
- package/dist/modes/interactive/components/task-row.js +8 -1
- package/dist/modes/interactive/components/task-row.js.map +1 -1
- package/docs/background-tasks.md +24 -1
- package/docs/compaction.md +20 -0
- package/docs/computer-use.md +390 -0
- package/docs/docs.json +1 -0
- package/docs/extensions.md +11 -1
- package/docs/herdr.md +2 -0
- package/docs/index.md +1 -0
- package/docs/intercom.md +10 -2
- package/docs/providers.md +1 -1
- package/docs/quickstart.md +1 -1
- package/docs/sdk.md +11 -1
- package/docs/settings.md +20 -0
- package/docs/subagents.md +8 -6
- package/docs/tmux.md +2 -0
- package/docs/tools.md +7 -1
- package/docs/usage.md +1 -1
- package/docs/workflows/api-reference.md +4 -3
- package/docs/workflows/authoring.md +3 -3
- package/docs/workflows/builtins.md +9 -6
- package/docs/workflows/operations.md +36 -30
- package/docs/workflows/reliable-design.md +3 -3
- package/docs/workflows/verification.md +99 -40
- package/docs/workflows.md +4 -2
- package/npm-shrinkwrap.json +32 -32
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@ import { type BashOperations, type BashSpawnContext, type BashSpawnHook, type Ba
|
|
|
2
2
|
import { type SupervisedCommandOwner } from "./bash-pty-native.js";
|
|
3
3
|
export declare const powershellToolSystemPromptContribution: Readonly<{
|
|
4
4
|
readonly snippet: "Execute PowerShell commands.";
|
|
5
|
-
readonly guidelines: readonly ["You can inspect ATOMIC_* or PI_* environment variables for current model and session details."];
|
|
5
|
+
readonly guidelines: readonly ["You can inspect ATOMIC_* or PI_* environment variables for current model and session details.", "Use { action: \"wait\", id: taskId, budgetMs: 1000 } to observe an existing shell task without executing another command. Omit budgetMs for owner policy; zero polls. Waiting does not extend execution timeout or owner lifetime."];
|
|
6
6
|
}>;
|
|
7
7
|
export type PowerShellOperations = BashOperations;
|
|
8
8
|
export type PowerShellToolDetails = BashToolDetails;
|
|
@@ -14,80 +14,136 @@ export declare function createLocalPowerShellOperations(binding?: {
|
|
|
14
14
|
taskOwner?: SupervisedCommandOwner;
|
|
15
15
|
}): PowerShellOperations;
|
|
16
16
|
export declare function createPowerShellToolDefinition(cwd: string, options?: PowerShellToolOptions): {
|
|
17
|
-
parameters: import("typebox").
|
|
18
|
-
command:
|
|
19
|
-
env
|
|
20
|
-
timeout
|
|
21
|
-
wait
|
|
22
|
-
cwd
|
|
23
|
-
pty
|
|
24
|
-
}
|
|
17
|
+
parameters: import("typebox").TUnsafe<({
|
|
18
|
+
command: string;
|
|
19
|
+
env?: Record<string, string> | undefined;
|
|
20
|
+
timeout?: number | undefined;
|
|
21
|
+
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
22
|
+
cwd?: string | undefined;
|
|
23
|
+
pty?: boolean | undefined;
|
|
24
|
+
} & {
|
|
25
|
+
action?: never;
|
|
26
|
+
id?: never;
|
|
27
|
+
budgetMs?: never;
|
|
28
|
+
}) | ({
|
|
29
|
+
action: "wait";
|
|
30
|
+
id: string;
|
|
31
|
+
budgetMs?: number;
|
|
32
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>)>;
|
|
25
33
|
constrainedSampling?: false | import("@bastani/pi-ai").ConstrainedSamplingConfig;
|
|
26
34
|
maxResultSizeChars?: number;
|
|
27
35
|
structuredOutput?: true;
|
|
28
36
|
renderShell?: "default" | "self";
|
|
29
|
-
prepareArguments?: ((args: unknown) => {
|
|
37
|
+
prepareArguments?: ((args: unknown) => ({
|
|
30
38
|
command: string;
|
|
31
39
|
env?: Record<string, string> | undefined;
|
|
32
40
|
timeout?: number | undefined;
|
|
33
41
|
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
34
42
|
cwd?: string | undefined;
|
|
35
43
|
pty?: boolean | undefined;
|
|
36
|
-
}
|
|
44
|
+
} & {
|
|
45
|
+
action?: never;
|
|
46
|
+
id?: never;
|
|
47
|
+
budgetMs?: never;
|
|
48
|
+
}) | ({
|
|
49
|
+
action: "wait";
|
|
50
|
+
id: string;
|
|
51
|
+
budgetMs?: number;
|
|
52
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>)) | undefined;
|
|
37
53
|
executionMode?: import("@earendil-works/pi-agent-core").ToolExecutionMode;
|
|
38
|
-
renderCall?: ((args: {
|
|
54
|
+
renderCall?: ((args: ({
|
|
39
55
|
command: string;
|
|
40
56
|
env?: Record<string, string> | undefined;
|
|
41
57
|
timeout?: number | undefined;
|
|
42
58
|
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
43
59
|
cwd?: string | undefined;
|
|
44
60
|
pty?: boolean | undefined;
|
|
45
|
-
}
|
|
61
|
+
} & {
|
|
62
|
+
action?: never;
|
|
63
|
+
id?: never;
|
|
64
|
+
budgetMs?: never;
|
|
65
|
+
}) | ({
|
|
66
|
+
action: "wait";
|
|
67
|
+
id: string;
|
|
68
|
+
budgetMs?: number;
|
|
69
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>), theme: import("../../index.ts").Theme, context: import("../extensions/tool-types.ts").ToolRenderContext<{
|
|
46
70
|
startedAt: number | undefined;
|
|
47
71
|
endedAt: number | undefined;
|
|
48
72
|
interval: NodeJS.Timeout | undefined;
|
|
49
|
-
}, {
|
|
73
|
+
}, ({
|
|
50
74
|
command: string;
|
|
51
75
|
env?: Record<string, string> | undefined;
|
|
52
76
|
timeout?: number | undefined;
|
|
53
77
|
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
54
78
|
cwd?: string | undefined;
|
|
55
79
|
pty?: boolean | undefined;
|
|
56
|
-
}
|
|
80
|
+
} & {
|
|
81
|
+
action?: never;
|
|
82
|
+
id?: never;
|
|
83
|
+
budgetMs?: never;
|
|
84
|
+
}) | ({
|
|
85
|
+
action: "wait";
|
|
86
|
+
id: string;
|
|
87
|
+
budgetMs?: number;
|
|
88
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>)>) => import("@earendil-works/pi-tui").Component) | undefined;
|
|
57
89
|
renderResult?: ((result: import("@earendil-works/pi-agent-core").AgentToolResult<BashToolDetails | undefined>, options: import("../index.ts").ToolRenderResultOptions, theme: import("../../index.ts").Theme, context: import("../extensions/tool-types.ts").ToolRenderContext<{
|
|
58
90
|
startedAt: number | undefined;
|
|
59
91
|
endedAt: number | undefined;
|
|
60
92
|
interval: NodeJS.Timeout | undefined;
|
|
61
|
-
}, {
|
|
93
|
+
}, ({
|
|
62
94
|
command: string;
|
|
63
95
|
env?: Record<string, string> | undefined;
|
|
64
96
|
timeout?: number | undefined;
|
|
65
97
|
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
66
98
|
cwd?: string | undefined;
|
|
67
99
|
pty?: boolean | undefined;
|
|
68
|
-
}
|
|
100
|
+
} & {
|
|
101
|
+
action?: never;
|
|
102
|
+
id?: never;
|
|
103
|
+
budgetMs?: never;
|
|
104
|
+
}) | ({
|
|
105
|
+
action: "wait";
|
|
106
|
+
id: string;
|
|
107
|
+
budgetMs?: number;
|
|
108
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>)>) => import("@earendil-works/pi-tui").Component) | undefined;
|
|
69
109
|
name: string;
|
|
70
110
|
label: string;
|
|
71
|
-
execute(toolCallId: string, params: {
|
|
111
|
+
execute(toolCallId: string, params: ({
|
|
72
112
|
command: string;
|
|
73
113
|
env?: Record<string, string> | undefined;
|
|
74
114
|
timeout?: number | undefined;
|
|
75
115
|
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
76
116
|
cwd?: string | undefined;
|
|
77
117
|
pty?: boolean | undefined;
|
|
78
|
-
}
|
|
118
|
+
} & {
|
|
119
|
+
action?: never;
|
|
120
|
+
id?: never;
|
|
121
|
+
budgetMs?: never;
|
|
122
|
+
}) | ({
|
|
123
|
+
action: "wait";
|
|
124
|
+
id: string;
|
|
125
|
+
budgetMs?: number;
|
|
126
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>), signal: AbortSignal | undefined, onUpdate: import("@earendil-works/pi-agent-core").AgentToolUpdateCallback<BashToolDetails | undefined> | undefined, ctx: import("../sdk-exports.ts").ExtensionContext): Promise<import("@earendil-works/pi-agent-core").AgentToolResult<BashToolDetails | undefined>>;
|
|
79
127
|
description: string;
|
|
80
128
|
promptSnippet: "Execute PowerShell commands.";
|
|
81
|
-
promptGuidelines: "You can inspect ATOMIC_* or PI_* environment variables for current model and session details."[] | undefined;
|
|
129
|
+
promptGuidelines: ("Use { action: \"wait\", id: taskId, budgetMs: 1000 } to observe an existing shell task without executing another command. Omit budgetMs for owner policy; zero polls. Waiting does not extend execution timeout or owner lifetime." | "You can inspect ATOMIC_* or PI_* environment variables for current model and session details.")[] | undefined;
|
|
82
130
|
};
|
|
83
|
-
export declare function createPowerShellTool(cwd: string, options?: PowerShellToolOptions): import("@earendil-works/pi-agent-core").AgentTool<import("typebox").
|
|
84
|
-
command:
|
|
85
|
-
env
|
|
86
|
-
timeout
|
|
87
|
-
wait
|
|
88
|
-
cwd
|
|
89
|
-
pty
|
|
90
|
-
}
|
|
131
|
+
export declare function createPowerShellTool(cwd: string, options?: PowerShellToolOptions): import("@earendil-works/pi-agent-core").AgentTool<import("typebox").TUnsafe<({
|
|
132
|
+
command: string;
|
|
133
|
+
env?: Record<string, string> | undefined;
|
|
134
|
+
timeout?: number | undefined;
|
|
135
|
+
wait?: import("../tasks/contracts.ts").WaitPolicy | undefined;
|
|
136
|
+
cwd?: string | undefined;
|
|
137
|
+
pty?: boolean | undefined;
|
|
138
|
+
} & {
|
|
139
|
+
action?: never;
|
|
140
|
+
id?: never;
|
|
141
|
+
budgetMs?: never;
|
|
142
|
+
}) | ({
|
|
143
|
+
action: "wait";
|
|
144
|
+
id: string;
|
|
145
|
+
budgetMs?: number;
|
|
146
|
+
} & Partial<Record<"command" | "cwd" | "env" | "pty" | "timeout" | "wait", never>>)>, BashToolDetails | undefined>;
|
|
91
147
|
export type PowerShellSpawnContext = BashSpawnContext;
|
|
92
148
|
export type PowerShellSpawnHook = BashSpawnHook;
|
|
93
149
|
//# sourceMappingURL=powershell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../src/core/tools/powershell.ts"],"names":[],"mappings":"AASA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EAIpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGN,KAAK,sBAAsB,EAE3B,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,sCAAsC;sBACzC,8BAA8B;;
|
|
1
|
+
{"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../src/core/tools/powershell.ts"],"names":[],"mappings":"AASA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EAIpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAGN,KAAK,sBAAsB,EAE3B,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,sCAAsC;sBACzC,8BAA8B;;EAK7B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAChD,MAAM,WAAW,qBAChB,SAAQ,IAAI,CAAC,eAAe,EAAE,0BAA0B,GAAG,WAAW,GAAG,WAAW,CAAC;IACrF,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B;AACD,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IACzD,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACnC,GAAG,oBAAoB,CA0DvB;AACD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC9F;AACD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;;;;;;;;;;;;;;;mHAEhF;AACD,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC"}
|
|
@@ -13,6 +13,7 @@ export const powershellToolSystemPromptContribution = Object.freeze({
|
|
|
13
13
|
snippet: "Execute PowerShell commands.",
|
|
14
14
|
guidelines: Object.freeze([
|
|
15
15
|
"You can inspect ATOMIC_* or PI_* environment variables for current model and session details.",
|
|
16
|
+
'Use { action: "wait", id: taskId, budgetMs: 1000 } to observe an existing shell task without executing another command. Omit budgetMs for owner policy; zero polls. Waiting does not extend execution timeout or owner lifetime.',
|
|
16
17
|
]),
|
|
17
18
|
});
|
|
18
19
|
export function createLocalPowerShellOperations(binding) {
|
|
@@ -89,7 +90,12 @@ export function createLocalPowerShellOperations(binding) {
|
|
|
89
90
|
}
|
|
90
91
|
export function createPowerShellToolDefinition(cwd, options = {}) {
|
|
91
92
|
const definition = createBashToolDefinition(cwd, {
|
|
92
|
-
|
|
93
|
+
exposeSessionEnvironment: options.exposeSessionEnvironment,
|
|
94
|
+
spawnHook: options.spawnHook,
|
|
95
|
+
// Preserve lazy session ownership instead of reading an accessor at registration.
|
|
96
|
+
get taskOwner() {
|
|
97
|
+
return options.taskOwner;
|
|
98
|
+
},
|
|
93
99
|
shellDialect: "powershell",
|
|
94
100
|
operations: options.operations ?? createLocalPowerShellOperations({ taskOwner: options.taskOwner }),
|
|
95
101
|
}, POWERSHELL_PRESENTATION);
|
|
@@ -99,10 +105,11 @@ export function createPowerShellToolDefinition(cwd, options = {}) {
|
|
|
99
105
|
label: "powershell",
|
|
100
106
|
async execute(...args) {
|
|
101
107
|
// The internal local adapter is not evidence of a supported owner.
|
|
102
|
-
|
|
108
|
+
if (args[1].action === undefined)
|
|
109
|
+
validateBashWait(args[1].wait, !!options.operations || !!options.taskOwner);
|
|
103
110
|
return definition.execute(...args);
|
|
104
111
|
},
|
|
105
|
-
description:
|
|
112
|
+
description: 'Execute a PowerShell command or observe an existing task with action: "wait", id, and optional budgetMs. Owner-bound commands automatically yield after 10s by default without stopping execution. Unbound commands wait for completion; background and existing-task waits require a task owner.',
|
|
106
113
|
promptSnippet: powershellToolSystemPromptContribution.snippet,
|
|
107
114
|
promptGuidelines: options.exposeSessionEnvironment === false
|
|
108
115
|
? undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powershell.js","sourceRoot":"","sources":["../../../src/core/tools/powershell.ts"],"names":[],"mappings":"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","sourcesContent":["import { APP_NAME } from \"../../config.js\";\nimport { createChildProcessEnvironment, waitForChildProcess } from \"../../utils/child-process.ts\";\nimport {\n\tgetPowerShellConfig,\n\tgetShellEnv,\n\tkillProcessTree,\n\ttrackDetachedChildPid,\n\tuntrackDetachedChildPid,\n} from \"../../utils/shell.ts\";\nimport {\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tcreateBashToolDefinition,\n\ttype ShellToolPresentation,\n\tvalidateExplicitTimeoutSeconds,\n} from \"./bash.js\";\nimport {\n\texecuteNativePty,\n\texecuteSupervisedCommand,\n\ttype SupervisedCommandOwner,\n\tvalidateBashWait,\n} from \"./bash-pty-native.js\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\nconst POWERSHELL_PRESENTATION: ShellToolPresentation = {\n\tprompt: \"PS>\",\n\ttempFilePrefix: `${APP_NAME}-powershell`,\n};\n\nconst UTF8_OUTPUT_PREFIX = \"try { [Console]::OutputEncoding=[System.Text.Encoding]::UTF8 } catch {}\\n\";\nexport const powershellToolSystemPromptContribution = Object.freeze({\n\tsnippet: \"Execute PowerShell commands.\",\n\tguidelines: Object.freeze([\n\t\t\"You can inspect ATOMIC_* or PI_* environment variables for current model and session details.\",\n\t] as const),\n} as const);\nexport type PowerShellOperations = BashOperations;\nexport type PowerShellToolDetails = BashToolDetails;\nexport type PowerShellToolInput = BashToolInput;\nexport interface PowerShellToolOptions\n\textends Pick<BashToolOptions, \"exposeSessionEnvironment\" | \"spawnHook\" | \"taskOwner\"> {\n\toperations?: BashOperations;\n}\nexport function createLocalPowerShellOperations(binding?: {\n\ttaskOwner?: SupervisedCommandOwner;\n}): PowerShellOperations {\n\treturn {\n\t\texec: async (command, cwd, options) => {\n\t\t\tvalidateBashWait(options.wait, !!binding?.taskOwner);\n\t\t\tif (options.timeout !== undefined) validateExplicitTimeoutSeconds(options.timeout);\n\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\tconst { shell, args } = getPowerShellConfig();\n\t\t\tconst pty = !!options.pty && process.env.PI_NO_PTY !== \"1\" && process.env.ATOMIC_NO_PTY !== \"1\";\n\t\t\tif (binding?.taskOwner || pty) {\n\t\t\t\t// EncodedCommand avoids native argument parsing differences between PowerShell 5 and 7.\n\t\t\t\tconst encoded = Buffer.from(`${UTF8_OUTPUT_PREFIX}${command}`, \"utf16le\").toString(\"base64\");\n\t\t\t\tconst execution = {\n\t\t\t\t\t...options,\n\t\t\t\t\tshellConfig: { shell, args: [...args.slice(0, -1), \"-EncodedCommand\"] },\n\t\t\t\t\tcommandDescription: command,\n\t\t\t\t\ttaskOwner: binding?.taskOwner,\n\t\t\t\t};\n\t\t\t\treturn binding?.taskOwner\n\t\t\t\t\t? executeSupervisedCommand(encoded, cwd, execution, pty)\n\t\t\t\t\t: executeNativePty(encoded, cwd, execution);\n\t\t\t}\n\t\t\tconst { spawn } = await import(\"node:child_process\");\n\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\tconst child = spawn(shell, [...args, `${UTF8_OUTPUT_PREFIX}${command}`], {\n\t\t\t\tcwd,\n\t\t\t\tenv: createChildProcessEnvironment(undefined, options.env ?? getShellEnv()),\n\t\t\t\twindowsHide: true,\n\t\t\t});\n\t\t\tif (child.pid) trackDetachedChildPid(child.pid);\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutHandle: ReturnType<typeof setTimeout> | undefined;\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tif (options.timeout !== undefined && options.timeout > 0) {\n\t\t\t\t\ttimeoutHandle = setTimeout(() => {\n\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t\t\t}, options.timeout * 1000);\n\t\t\t\t}\n\t\t\t\tchild.stdout?.on(\"data\", (data: Buffer) => options.onData(data, \"stdout\"));\n\t\t\t\tchild.stderr?.on(\"data\", (data: Buffer) => options.onData(data, \"stderr\"));\n\t\t\t\tif (options.signal) {\n\t\t\t\t\tif (options.signal.aborted) onAbort();\n\t\t\t\t\telse options.signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t}\n\t\t\t\tconst exitCode = await waitForChildProcess(child);\n\t\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\t\tif (timedOut) throw new Error(`timeout:${options.timeout}`);\n\t\t\t\treturn { exitCode };\n\t\t\t} finally {\n\t\t\t\tif (child.pid) untrackDetachedChildPid(child.pid);\n\t\t\t\tif (timeoutHandle) clearTimeout(timeoutHandle);\n\t\t\t\toptions.signal?.removeEventListener(\"abort\", onAbort);\n\t\t\t}\n\t\t},\n\t};\n}\nexport function createPowerShellToolDefinition(cwd: string, options: PowerShellToolOptions = {}) {\n\tconst definition = createBashToolDefinition(\n\t\tcwd,\n\t\t{\n\t\t\t...options,\n\t\t\tshellDialect: \"powershell\",\n\t\t\toperations: options.operations ?? createLocalPowerShellOperations({ taskOwner: options.taskOwner }),\n\t\t},\n\t\tPOWERSHELL_PRESENTATION,\n\t);\n\treturn {\n\t\t...definition,\n\t\tname: \"powershell\",\n\t\tlabel: \"powershell\",\n\t\tasync execute(...args: Parameters<typeof definition.execute>) {\n\t\t\t// The internal local adapter is not evidence of a supported owner.\n\t\t\tvalidateBashWait(args[1].wait, !!options.operations || !!options.taskOwner);\n\t\t\treturn definition.execute(...args);\n\t\t},\n\t\tdescription:\n\t\t\t\"Execute a PowerShell command with optional PTY and foreground/background observation. Owner-bound calls automatically yield after 10s by default without stopping execution. Unbound calls wait for completion; background requires a task owner.\",\n\t\tpromptSnippet: powershellToolSystemPromptContribution.snippet,\n\t\tpromptGuidelines:\n\t\t\toptions.exposeSessionEnvironment === false\n\t\t\t\t? undefined\n\t\t\t\t: [...powershellToolSystemPromptContribution.guidelines],\n\t};\n}\nexport function createPowerShellTool(cwd: string, options?: PowerShellToolOptions) {\n\treturn wrapToolDefinition(createPowerShellToolDefinition(cwd, options));\n}\nexport type PowerShellSpawnContext = BashSpawnContext;\nexport type PowerShellSpawnHook = BashSpawnHook;\n"]}
|
|
1
|
+
{"version":3,"file":"powershell.js","sourceRoot":"","sources":["../../../src/core/tools/powershell.ts"],"names":[],"mappings":"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","sourcesContent":["import { APP_NAME } from \"../../config.js\";\nimport { createChildProcessEnvironment, waitForChildProcess } from \"../../utils/child-process.ts\";\nimport {\n\tgetPowerShellConfig,\n\tgetShellEnv,\n\tkillProcessTree,\n\ttrackDetachedChildPid,\n\tuntrackDetachedChildPid,\n} from \"../../utils/shell.ts\";\nimport {\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tcreateBashToolDefinition,\n\ttype ShellToolPresentation,\n\tvalidateExplicitTimeoutSeconds,\n} from \"./bash.js\";\nimport {\n\texecuteNativePty,\n\texecuteSupervisedCommand,\n\ttype SupervisedCommandOwner,\n\tvalidateBashWait,\n} from \"./bash-pty-native.js\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\nconst POWERSHELL_PRESENTATION: ShellToolPresentation = {\n\tprompt: \"PS>\",\n\ttempFilePrefix: `${APP_NAME}-powershell`,\n};\n\nconst UTF8_OUTPUT_PREFIX = \"try { [Console]::OutputEncoding=[System.Text.Encoding]::UTF8 } catch {}\\n\";\nexport const powershellToolSystemPromptContribution = Object.freeze({\n\tsnippet: \"Execute PowerShell commands.\",\n\tguidelines: Object.freeze([\n\t\t\"You can inspect ATOMIC_* or PI_* environment variables for current model and session details.\",\n\t\t'Use { action: \"wait\", id: taskId, budgetMs: 1000 } to observe an existing shell task without executing another command. Omit budgetMs for owner policy; zero polls. Waiting does not extend execution timeout or owner lifetime.',\n\t] as const),\n} as const);\nexport type PowerShellOperations = BashOperations;\nexport type PowerShellToolDetails = BashToolDetails;\nexport type PowerShellToolInput = BashToolInput;\nexport interface PowerShellToolOptions\n\textends Pick<BashToolOptions, \"exposeSessionEnvironment\" | \"spawnHook\" | \"taskOwner\"> {\n\toperations?: BashOperations;\n}\nexport function createLocalPowerShellOperations(binding?: {\n\ttaskOwner?: SupervisedCommandOwner;\n}): PowerShellOperations {\n\treturn {\n\t\texec: async (command, cwd, options) => {\n\t\t\tvalidateBashWait(options.wait, !!binding?.taskOwner);\n\t\t\tif (options.timeout !== undefined) validateExplicitTimeoutSeconds(options.timeout);\n\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\tconst { shell, args } = getPowerShellConfig();\n\t\t\tconst pty = !!options.pty && process.env.PI_NO_PTY !== \"1\" && process.env.ATOMIC_NO_PTY !== \"1\";\n\t\t\tif (binding?.taskOwner || pty) {\n\t\t\t\t// EncodedCommand avoids native argument parsing differences between PowerShell 5 and 7.\n\t\t\t\tconst encoded = Buffer.from(`${UTF8_OUTPUT_PREFIX}${command}`, \"utf16le\").toString(\"base64\");\n\t\t\t\tconst execution = {\n\t\t\t\t\t...options,\n\t\t\t\t\tshellConfig: { shell, args: [...args.slice(0, -1), \"-EncodedCommand\"] },\n\t\t\t\t\tcommandDescription: command,\n\t\t\t\t\ttaskOwner: binding?.taskOwner,\n\t\t\t\t};\n\t\t\t\treturn binding?.taskOwner\n\t\t\t\t\t? executeSupervisedCommand(encoded, cwd, execution, pty)\n\t\t\t\t\t: executeNativePty(encoded, cwd, execution);\n\t\t\t}\n\t\t\tconst { spawn } = await import(\"node:child_process\");\n\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\tconst child = spawn(shell, [...args, `${UTF8_OUTPUT_PREFIX}${command}`], {\n\t\t\t\tcwd,\n\t\t\t\tenv: createChildProcessEnvironment(undefined, options.env ?? getShellEnv()),\n\t\t\t\twindowsHide: true,\n\t\t\t});\n\t\t\tif (child.pid) trackDetachedChildPid(child.pid);\n\t\t\tlet timedOut = false;\n\t\t\tlet timeoutHandle: ReturnType<typeof setTimeout> | undefined;\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tif (options.timeout !== undefined && options.timeout > 0) {\n\t\t\t\t\ttimeoutHandle = setTimeout(() => {\n\t\t\t\t\t\ttimedOut = true;\n\t\t\t\t\t\tif (child.pid) killProcessTree(child.pid);\n\t\t\t\t\t}, options.timeout * 1000);\n\t\t\t\t}\n\t\t\t\tchild.stdout?.on(\"data\", (data: Buffer) => options.onData(data, \"stdout\"));\n\t\t\t\tchild.stderr?.on(\"data\", (data: Buffer) => options.onData(data, \"stderr\"));\n\t\t\t\tif (options.signal) {\n\t\t\t\t\tif (options.signal.aborted) onAbort();\n\t\t\t\t\telse options.signal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\t}\n\t\t\t\tconst exitCode = await waitForChildProcess(child);\n\t\t\t\tif (options.signal?.aborted) throw new Error(\"aborted\");\n\t\t\t\tif (timedOut) throw new Error(`timeout:${options.timeout}`);\n\t\t\t\treturn { exitCode };\n\t\t\t} finally {\n\t\t\t\tif (child.pid) untrackDetachedChildPid(child.pid);\n\t\t\t\tif (timeoutHandle) clearTimeout(timeoutHandle);\n\t\t\t\toptions.signal?.removeEventListener(\"abort\", onAbort);\n\t\t\t}\n\t\t},\n\t};\n}\nexport function createPowerShellToolDefinition(cwd: string, options: PowerShellToolOptions = {}) {\n\tconst definition = createBashToolDefinition(\n\t\tcwd,\n\t\t{\n\t\t\texposeSessionEnvironment: options.exposeSessionEnvironment,\n\t\t\tspawnHook: options.spawnHook,\n\t\t\t// Preserve lazy session ownership instead of reading an accessor at registration.\n\t\t\tget taskOwner() {\n\t\t\t\treturn options.taskOwner;\n\t\t\t},\n\t\t\tshellDialect: \"powershell\",\n\t\t\toperations: options.operations ?? createLocalPowerShellOperations({ taskOwner: options.taskOwner }),\n\t\t},\n\t\tPOWERSHELL_PRESENTATION,\n\t);\n\treturn {\n\t\t...definition,\n\t\tname: \"powershell\",\n\t\tlabel: \"powershell\",\n\t\tasync execute(...args: Parameters<typeof definition.execute>) {\n\t\t\t// The internal local adapter is not evidence of a supported owner.\n\t\t\tif (args[1].action === undefined) validateBashWait(args[1].wait, !!options.operations || !!options.taskOwner);\n\t\t\treturn definition.execute(...args);\n\t\t},\n\t\tdescription:\n\t\t\t'Execute a PowerShell command or observe an existing task with action: \"wait\", id, and optional budgetMs. Owner-bound commands automatically yield after 10s by default without stopping execution. Unbound commands wait for completion; background and existing-task waits require a task owner.',\n\t\tpromptSnippet: powershellToolSystemPromptContribution.snippet,\n\t\tpromptGuidelines:\n\t\t\toptions.exposeSessionEnvironment === false\n\t\t\t\t? undefined\n\t\t\t\t: [...powershellToolSystemPromptContribution.guidelines],\n\t};\n}\nexport function createPowerShellTool(cwd: string, options?: PowerShellToolOptions) {\n\treturn wrapToolDefinition(createPowerShellToolDefinition(cwd, options));\n}\nexport type PowerShellSpawnContext = BashSpawnContext;\nexport type PowerShellSpawnHook = BashSpawnHook;\n"]}
|
|
@@ -26,6 +26,10 @@ export declare class WorkflowStageAdmissionBoundary {
|
|
|
26
26
|
private readonly stageAttemptId;
|
|
27
27
|
private taskScope;
|
|
28
28
|
private taskHost;
|
|
29
|
+
private readonly messageDeliveryContext;
|
|
30
|
+
private readonly messageAdmissionContext;
|
|
31
|
+
private readonly messageDeliveries;
|
|
32
|
+
private messageDeliveryTail;
|
|
29
33
|
private taskClose;
|
|
30
34
|
/** Called by the actual stage session; replacement sessions retain the original identity. */
|
|
31
35
|
bindTaskIdentity(sessionId: string, runId: string, stageId: string): void;
|
|
@@ -37,8 +41,18 @@ export declare class WorkflowStageAdmissionBoundary {
|
|
|
37
41
|
private readonly drainAdmittedWork;
|
|
38
42
|
constructor(drainAdmittedWork?: (() => Promise<void>) | undefined, completedKeys?: Iterable<string>);
|
|
39
43
|
static restore(entries: Iterable<PersistedWorkflowStageAdmission>, drainAdmittedWork?: () => Promise<void>): WorkflowStageAdmissionBoundary;
|
|
44
|
+
/** One FIFO position for an external operation, including its retry waits. */
|
|
45
|
+
runMessageDelivery(deliver: () => void | Promise<void>, routeLate?: () => void | Promise<void>, preserveDestination?: boolean): Promise<void>;
|
|
46
|
+
/** Reentrant SDK commits stay inside their producer's FIFO position. */
|
|
47
|
+
serializeMessageDelivery(deliver: () => void | Promise<void>): Promise<void>;
|
|
48
|
+
/** Excludes tracked model turns: joining those from a native poll would deadlock. */
|
|
49
|
+
waitForMessageDeliveries(): Promise<void>;
|
|
50
|
+
hasMessageDeliveries(): boolean;
|
|
40
51
|
admit(key: string | undefined, deliver: () => void | Promise<void>, routeLate: () => void | Promise<void>): WorkflowStageAdmissionResult;
|
|
41
52
|
trackAdmittedWork(completion: Promise<void>): void;
|
|
53
|
+
/** Join already-reserved queue commits before a native turn polls its input. */
|
|
54
|
+
waitForPendingDeliveries(): Promise<void>;
|
|
55
|
+
hasPendingDeliveries(): boolean;
|
|
42
56
|
registerOwnedSubagentRun(runId: string): void;
|
|
43
57
|
ownsSubagentRun(runId: string): boolean;
|
|
44
58
|
isOpen(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-stage-admission.d.ts","sourceRoot":"","sources":["../../src/core/workflow-stage-admission.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,MAAM,MAAM,8BAA8B,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/E,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AAEH,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACpC;AACD,qBAAa,8BAA8B;IAC1C,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,SAAS,CAA8D;IAC/E,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAAiD;IAElE,6FAA6F;IAC7F,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAExE;IAED,uFAAuF;IACvF,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,aAAa,CAM7E;IACD,gBAAgB,IAAI,OAAO,CAE1B;IAED,qGAAqG;IACrG,IAAI,WAAW,IAAI,WAAW,CAE7B;IACD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IAExD,YAAY,iBAAiB,GAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAqB,EAAE,aAAa,GAAE,QAAQ,CAAC,MAAM,CAAM,EAGjH;IAED,MAAM,CAAC,OAAO,CACb,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EAClD,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACrC,8BAA8B,CAShC;IAED,KAAK,CACJ,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnC,4BAA4B,
|
|
1
|
+
{"version":3,"file":"workflow-stage-admission.d.ts","sourceRoot":"","sources":["../../src/core/workflow-stage-admission.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,9 @@ export class WorkflowStageAdmissionBoundary {
|
|
|
31
31
|
this.closeController = new AbortController();
|
|
32
32
|
this.ownedSubagentRunIds = new Set();
|
|
33
33
|
this.stageAttemptId = randomUUID();
|
|
34
|
+
this.messageDeliveryContext = new AsyncLocalStorage();
|
|
35
|
+
this.messageAdmissionContext = new AsyncLocalStorage();
|
|
36
|
+
this.messageDeliveries = new Set();
|
|
34
37
|
this.drainAdmittedWork = drainAdmittedWork ?? (async () => { });
|
|
35
38
|
this.completed = new Set(completedKeys);
|
|
36
39
|
}
|
|
@@ -39,6 +42,55 @@ export class WorkflowStageAdmissionBoundary {
|
|
|
39
42
|
? [entry.stageAdmissionKey]
|
|
40
43
|
: []));
|
|
41
44
|
}
|
|
45
|
+
/** One FIFO position for an external operation, including its retry waits. */
|
|
46
|
+
runMessageDelivery(deliver, routeLate, preserveDestination = false) {
|
|
47
|
+
const late = routeLate ??
|
|
48
|
+
(() => {
|
|
49
|
+
throw new Error("Message admission is closed");
|
|
50
|
+
});
|
|
51
|
+
const invoke = () => {
|
|
52
|
+
if (!preserveDestination)
|
|
53
|
+
return deliver();
|
|
54
|
+
// Stage close drains the destination reserved at arrival. SDK commits
|
|
55
|
+
// inside this operation must not be reclassified as late on retry or
|
|
56
|
+
// after waiting for an earlier FIFO slot. Revoke on settlement so detached
|
|
57
|
+
// descendants cannot admit new work into a closed generation.
|
|
58
|
+
const reservation = { active: true };
|
|
59
|
+
return this.messageAdmissionContext.run(reservation, async () => {
|
|
60
|
+
try {
|
|
61
|
+
await deliver();
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
reservation.active = false;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
return this.admit(undefined, () => this.serializeMessageDelivery(invoke), late).completion;
|
|
69
|
+
}
|
|
70
|
+
/** Reentrant SDK commits stay inside their producer's FIFO position. */
|
|
71
|
+
serializeMessageDelivery(deliver) {
|
|
72
|
+
if (this.messageDeliveryContext.getStore())
|
|
73
|
+
return this.invoke(deliver);
|
|
74
|
+
const invoke = () => this.messageDeliveryContext.run(true, () => this.invoke(deliver));
|
|
75
|
+
const delivery = this.messageDeliveryTail ? this.messageDeliveryTail.then(invoke) : invoke();
|
|
76
|
+
const settled = delivery.catch(() => undefined);
|
|
77
|
+
this.messageDeliveryTail = settled;
|
|
78
|
+
this.messageDeliveries.add(settled);
|
|
79
|
+
void settled.then(() => {
|
|
80
|
+
this.messageDeliveries.delete(settled);
|
|
81
|
+
if (this.messageDeliveryTail === settled)
|
|
82
|
+
this.messageDeliveryTail = undefined;
|
|
83
|
+
});
|
|
84
|
+
return delivery;
|
|
85
|
+
}
|
|
86
|
+
/** Excludes tracked model turns: joining those from a native poll would deadlock. */
|
|
87
|
+
async waitForMessageDeliveries() {
|
|
88
|
+
while (this.messageDeliveries.size > 0)
|
|
89
|
+
await Promise.all([...this.messageDeliveries]);
|
|
90
|
+
}
|
|
91
|
+
hasMessageDeliveries() {
|
|
92
|
+
return this.messageDeliveries.size > 0;
|
|
93
|
+
}
|
|
42
94
|
admit(key, deliver, routeLate) {
|
|
43
95
|
if (key !== undefined) {
|
|
44
96
|
if (this.completed.has(key))
|
|
@@ -51,10 +103,11 @@ export class WorkflowStageAdmissionBoundary {
|
|
|
51
103
|
};
|
|
52
104
|
}
|
|
53
105
|
}
|
|
54
|
-
const
|
|
106
|
+
const admitted = this.open || this.messageAdmissionContext.getStore()?.active === true;
|
|
107
|
+
const decision = admitted ? "admitted" : "late";
|
|
55
108
|
let completion;
|
|
56
109
|
if (key === undefined) {
|
|
57
|
-
completion = this.invoke(
|
|
110
|
+
completion = this.invoke(admitted ? deliver : routeLate);
|
|
58
111
|
}
|
|
59
112
|
else {
|
|
60
113
|
let resolveCompletion;
|
|
@@ -65,7 +118,7 @@ export class WorkflowStageAdmissionBoundary {
|
|
|
65
118
|
});
|
|
66
119
|
void completion.catch(() => { });
|
|
67
120
|
this.inFlight.set(key, completion);
|
|
68
|
-
const delivery = this.invocationContext.run(key, () => this.invoke(
|
|
121
|
+
const delivery = this.invocationContext.run(key, () => this.invoke(admitted ? deliver : routeLate));
|
|
69
122
|
void delivery.then(resolveCompletion, rejectCompletion);
|
|
70
123
|
void completion.then(() => {
|
|
71
124
|
if (this.inFlight.get(key) !== completion)
|
|
@@ -85,6 +138,13 @@ export class WorkflowStageAdmissionBoundary {
|
|
|
85
138
|
this.pending.add(completion);
|
|
86
139
|
void completion.then(() => this.pending.delete(completion), () => this.pending.delete(completion));
|
|
87
140
|
}
|
|
141
|
+
/** Join already-reserved queue commits before a native turn polls its input. */
|
|
142
|
+
async waitForPendingDeliveries() {
|
|
143
|
+
await Promise.allSettled([...this.pending]);
|
|
144
|
+
}
|
|
145
|
+
hasPendingDeliveries() {
|
|
146
|
+
return this.pending.size > 0;
|
|
147
|
+
}
|
|
88
148
|
registerOwnedSubagentRun(runId) {
|
|
89
149
|
this.ownedSubagentRunIds.add(runId);
|
|
90
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-stage-admission.js","sourceRoot":"","sources":["../../src/core/workflow-stage-admission.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { randomUUID } from \"node:crypto\";\nimport { AgentTaskHost, type AgentTaskHostBinding } from \"./tasks/agent-adapter.js\";\nimport type { OwnerScope } from \"./tasks/contracts.js\";\n\nexport type WorkflowStageAdmissionDecision = \"admitted\" | \"late\" | \"duplicate\";\n\nexport interface WorkflowStageAdmissionResult {\n\treadonly decision: WorkflowStageAdmissionDecision;\n\treadonly completion: Promise<void>;\n}\n\n/**\n * Linearizable admission boundary for externally-produced workflow-stage traffic.\n * JavaScript execution between the state check and state transition is synchronous:\n * an enqueue that wins belongs to the stage, while close makes every later enqueue\n * use the external route. Stable keys make either outcome exactly-once.\n */\n\nexport interface PersistedWorkflowStageAdmission {\n\treadonly type: string;\n\treadonly stageAdmissionKey?: string;\n}\nexport class WorkflowStageAdmissionBoundary {\n\tprivate open = true;\n\tprivate readonly completed: Set<string>;\n\tprivate readonly inFlight = new Map<string, Promise<void>>();\n\tprivate readonly pending = new Set<Promise<void>>();\n\tprivate readonly invocationContext = new AsyncLocalStorage<string>();\n\tprivate closePromise: Promise<void> | undefined;\n\tprivate readonly closeController = new AbortController();\n\tprivate readonly ownedSubagentRunIds = new Set<string>();\n\tprivate readonly stageAttemptId = randomUUID();\n\tprivate taskScope: Extract<OwnerScope, { kind: \"workflow-stage\" }> | undefined;\n\tprivate taskHost: AgentTaskHost | undefined;\n\tprivate taskClose: ReturnType<AgentTaskHost[\"close\"]> | undefined;\n\n\t/** Called by the actual stage session; replacement sessions retain the original identity. */\n\tbindTaskIdentity(sessionId: string, runId: string, stageId: string): void {\n\t\tthis.taskScope ??= { kind: \"workflow-stage\", sessionId, runId, stageId, stageAttemptId: this.stageAttemptId };\n\t}\n\n\t/** Trusted companion integration only; the existing launch guard remains mandatory. */\n\tbindAgentTaskHost(binding: Omit<AgentTaskHostBinding, \"scope\">): AgentTaskHost {\n\t\tif (!this.open) throw new Error(\"Workflow stage generation is closed\");\n\t\tif (!this.taskScope) throw new Error(\"Workflow stage task identity is not bound\");\n\t\tthis.taskHost ??= new AgentTaskHost({ ...binding, scope: this.taskScope });\n\t\tthis.taskHost.updateBinding(binding);\n\t\treturn this.taskHost;\n\t}\n\thasAgentTaskHost(): boolean {\n\t\treturn this.taskHost !== undefined;\n\t}\n\n\t/** Aborts synchronously when close begins so stage-owned work can terminate before late delivery. */\n\tget closeSignal(): AbortSignal {\n\t\treturn this.closeController.signal;\n\t}\n\tprivate readonly drainAdmittedWork: () => Promise<void>;\n\n\tconstructor(drainAdmittedWork: (() => Promise<void>) | undefined = undefined, completedKeys: Iterable<string> = []) {\n\t\tthis.drainAdmittedWork = drainAdmittedWork ?? (async () => {});\n\t\tthis.completed = new Set(completedKeys);\n\t}\n\n\tstatic restore(\n\t\tentries: Iterable<PersistedWorkflowStageAdmission>,\n\t\tdrainAdmittedWork?: () => Promise<void>,\n\t): WorkflowStageAdmissionBoundary {\n\t\treturn new WorkflowStageAdmissionBoundary(\n\t\t\tdrainAdmittedWork,\n\t\t\tArray.from(entries).flatMap((entry) =>\n\t\t\t\tentry.type === \"custom_message\" && typeof entry.stageAdmissionKey === \"string\"\n\t\t\t\t\t? [entry.stageAdmissionKey]\n\t\t\t\t\t: [],\n\t\t\t),\n\t\t);\n\t}\n\n\tadmit(\n\t\tkey: string | undefined,\n\t\tdeliver: () => void | Promise<void>,\n\t\trouteLate: () => void | Promise<void>,\n\t): WorkflowStageAdmissionResult {\n\t\tif (key !== undefined) {\n\t\t\tif (this.completed.has(key)) return { decision: \"duplicate\", completion: Promise.resolve() };\n\t\t\tconst inFlight = this.inFlight.get(key);\n\t\t\tif (inFlight) {\n\t\t\t\treturn {\n\t\t\t\t\tdecision: \"duplicate\",\n\t\t\t\t\tcompletion: this.invocationContext.getStore() === key ? Promise.resolve() : inFlight,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst decision: WorkflowStageAdmissionDecision = this.open ? \"admitted\" : \"late\";\n\t\tlet completion: Promise<void>;\n\t\tif (key === undefined) {\n\t\t\tcompletion = this.invoke(this.open ? deliver : routeLate);\n\t\t} else {\n\t\t\tlet resolveCompletion!: () => void;\n\t\t\tlet rejectCompletion!: (reason?: unknown) => void;\n\t\t\tcompletion = new Promise<void>((resolve, reject) => {\n\t\t\t\tresolveCompletion = resolve;\n\t\t\t\trejectCompletion = reject;\n\t\t\t});\n\t\t\tvoid completion.catch(() => {});\n\t\t\tthis.inFlight.set(key, completion);\n\t\t\tconst delivery = this.invocationContext.run(key, () => this.invoke(this.open ? deliver : routeLate));\n\t\t\tvoid delivery.then(resolveCompletion, rejectCompletion);\n\t\t\tvoid completion.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (this.inFlight.get(key) !== completion) return;\n\t\t\t\t\tthis.inFlight.delete(key);\n\t\t\t\t\tthis.completed.add(key);\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (this.inFlight.get(key) === completion) this.inFlight.delete(key);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (decision === \"admitted\") this.trackAdmittedWork(completion);\n\t\treturn { decision, completion };\n\t}\n\n\ttrackAdmittedWork(completion: Promise<void>): void {\n\t\tthis.pending.add(completion);\n\t\tvoid completion.then(\n\t\t\t() => this.pending.delete(completion),\n\t\t\t() => this.pending.delete(completion),\n\t\t);\n\t}\n\n\tregisterOwnedSubagentRun(runId: string): void {\n\t\tthis.ownedSubagentRunIds.add(runId);\n\t}\n\n\townsSubagentRun(runId: string): boolean {\n\t\treturn this.ownedSubagentRunIds.has(runId);\n\t}\n\n\tisOpen(): boolean {\n\t\treturn this.open;\n\t}\n\n\tseal(): void {\n\t\tthis.open = false;\n\t\tthis.taskClose ??= this.taskHost?.close(\"stage-close\");\n\t}\n\n\tclose(): Promise<void> {\n\t\tthis.seal();\n\t\tif (!this.closeController.signal.aborted) this.closeController.abort();\n\t\tthis.closePromise ??= this.finishClose();\n\t\treturn this.closePromise;\n\t}\n\n\tprivate async finishClose(): Promise<void> {\n\t\tawait Promise.allSettled([...this.pending]);\n\t\tawait this.drainAdmittedWork();\n\t\tconst closed = await this.taskClose;\n\t\tif (closed && !closed.ok) throw new Error(`${closed.error.code}: ${closed.error.message}`);\n\t}\n\n\tprivate invoke(callback: () => void | Promise<void>): Promise<void> {\n\t\ttry {\n\t\t\treturn Promise.resolve(callback());\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"workflow-stage-admission.js","sourceRoot":"","sources":["../../src/core/workflow-stage-admission.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { randomUUID } from \"node:crypto\";\nimport { AgentTaskHost, type AgentTaskHostBinding } from \"./tasks/agent-adapter.js\";\nimport type { OwnerScope } from \"./tasks/contracts.js\";\n\nexport type WorkflowStageAdmissionDecision = \"admitted\" | \"late\" | \"duplicate\";\n\nexport interface WorkflowStageAdmissionResult {\n\treadonly decision: WorkflowStageAdmissionDecision;\n\treadonly completion: Promise<void>;\n}\n\n/**\n * Linearizable admission boundary for externally-produced workflow-stage traffic.\n * JavaScript execution between the state check and state transition is synchronous:\n * an enqueue that wins belongs to the stage, while close makes every later enqueue\n * use the external route. Stable keys make either outcome exactly-once.\n */\n\nexport interface PersistedWorkflowStageAdmission {\n\treadonly type: string;\n\treadonly stageAdmissionKey?: string;\n}\nexport class WorkflowStageAdmissionBoundary {\n\tprivate open = true;\n\tprivate readonly completed: Set<string>;\n\tprivate readonly inFlight = new Map<string, Promise<void>>();\n\tprivate readonly pending = new Set<Promise<void>>();\n\tprivate readonly invocationContext = new AsyncLocalStorage<string>();\n\tprivate closePromise: Promise<void> | undefined;\n\tprivate readonly closeController = new AbortController();\n\tprivate readonly ownedSubagentRunIds = new Set<string>();\n\tprivate readonly stageAttemptId = randomUUID();\n\tprivate taskScope: Extract<OwnerScope, { kind: \"workflow-stage\" }> | undefined;\n\tprivate taskHost: AgentTaskHost | undefined;\n\tprivate readonly messageDeliveryContext = new AsyncLocalStorage<boolean>();\n\tprivate readonly messageAdmissionContext = new AsyncLocalStorage<{ active: boolean }>();\n\tprivate readonly messageDeliveries = new Set<Promise<void>>();\n\tprivate messageDeliveryTail: Promise<void> | undefined;\n\tprivate taskClose: ReturnType<AgentTaskHost[\"close\"]> | undefined;\n\n\t/** Called by the actual stage session; replacement sessions retain the original identity. */\n\tbindTaskIdentity(sessionId: string, runId: string, stageId: string): void {\n\t\tthis.taskScope ??= { kind: \"workflow-stage\", sessionId, runId, stageId, stageAttemptId: this.stageAttemptId };\n\t}\n\n\t/** Trusted companion integration only; the existing launch guard remains mandatory. */\n\tbindAgentTaskHost(binding: Omit<AgentTaskHostBinding, \"scope\">): AgentTaskHost {\n\t\tif (!this.open) throw new Error(\"Workflow stage generation is closed\");\n\t\tif (!this.taskScope) throw new Error(\"Workflow stage task identity is not bound\");\n\t\tthis.taskHost ??= new AgentTaskHost({ ...binding, scope: this.taskScope });\n\t\tthis.taskHost.updateBinding(binding);\n\t\treturn this.taskHost;\n\t}\n\thasAgentTaskHost(): boolean {\n\t\treturn this.taskHost !== undefined;\n\t}\n\n\t/** Aborts synchronously when close begins so stage-owned work can terminate before late delivery. */\n\tget closeSignal(): AbortSignal {\n\t\treturn this.closeController.signal;\n\t}\n\tprivate readonly drainAdmittedWork: () => Promise<void>;\n\n\tconstructor(drainAdmittedWork: (() => Promise<void>) | undefined = undefined, completedKeys: Iterable<string> = []) {\n\t\tthis.drainAdmittedWork = drainAdmittedWork ?? (async () => {});\n\t\tthis.completed = new Set(completedKeys);\n\t}\n\n\tstatic restore(\n\t\tentries: Iterable<PersistedWorkflowStageAdmission>,\n\t\tdrainAdmittedWork?: () => Promise<void>,\n\t): WorkflowStageAdmissionBoundary {\n\t\treturn new WorkflowStageAdmissionBoundary(\n\t\t\tdrainAdmittedWork,\n\t\t\tArray.from(entries).flatMap((entry) =>\n\t\t\t\tentry.type === \"custom_message\" && typeof entry.stageAdmissionKey === \"string\"\n\t\t\t\t\t? [entry.stageAdmissionKey]\n\t\t\t\t\t: [],\n\t\t\t),\n\t\t);\n\t}\n\n\t/** One FIFO position for an external operation, including its retry waits. */\n\trunMessageDelivery(\n\t\tdeliver: () => void | Promise<void>,\n\t\trouteLate?: () => void | Promise<void>,\n\t\tpreserveDestination = false,\n\t): Promise<void> {\n\t\tconst late =\n\t\t\trouteLate ??\n\t\t\t(() => {\n\t\t\t\tthrow new Error(\"Message admission is closed\");\n\t\t\t});\n\t\tconst invoke = (): void | Promise<void> => {\n\t\t\tif (!preserveDestination) return deliver();\n\t\t\t// Stage close drains the destination reserved at arrival. SDK commits\n\t\t\t// inside this operation must not be reclassified as late on retry or\n\t\t\t// after waiting for an earlier FIFO slot. Revoke on settlement so detached\n\t\t\t// descendants cannot admit new work into a closed generation.\n\t\t\tconst reservation = { active: true };\n\t\t\treturn this.messageAdmissionContext.run(reservation, async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait deliver();\n\t\t\t\t} finally {\n\t\t\t\t\treservation.active = false;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\treturn this.admit(undefined, () => this.serializeMessageDelivery(invoke), late).completion;\n\t}\n\n\t/** Reentrant SDK commits stay inside their producer's FIFO position. */\n\tserializeMessageDelivery(deliver: () => void | Promise<void>): Promise<void> {\n\t\tif (this.messageDeliveryContext.getStore()) return this.invoke(deliver);\n\t\tconst invoke = () => this.messageDeliveryContext.run(true, () => this.invoke(deliver));\n\t\tconst delivery = this.messageDeliveryTail ? this.messageDeliveryTail.then(invoke) : invoke();\n\t\tconst settled = delivery.catch(() => undefined);\n\t\tthis.messageDeliveryTail = settled;\n\t\tthis.messageDeliveries.add(settled);\n\t\tvoid settled.then(() => {\n\t\t\tthis.messageDeliveries.delete(settled);\n\t\t\tif (this.messageDeliveryTail === settled) this.messageDeliveryTail = undefined;\n\t\t});\n\t\treturn delivery;\n\t}\n\n\t/** Excludes tracked model turns: joining those from a native poll would deadlock. */\n\tasync waitForMessageDeliveries(): Promise<void> {\n\t\twhile (this.messageDeliveries.size > 0) await Promise.all([...this.messageDeliveries]);\n\t}\n\n\thasMessageDeliveries(): boolean {\n\t\treturn this.messageDeliveries.size > 0;\n\t}\n\n\tadmit(\n\t\tkey: string | undefined,\n\t\tdeliver: () => void | Promise<void>,\n\t\trouteLate: () => void | Promise<void>,\n\t): WorkflowStageAdmissionResult {\n\t\tif (key !== undefined) {\n\t\t\tif (this.completed.has(key)) return { decision: \"duplicate\", completion: Promise.resolve() };\n\t\t\tconst inFlight = this.inFlight.get(key);\n\t\t\tif (inFlight) {\n\t\t\t\treturn {\n\t\t\t\t\tdecision: \"duplicate\",\n\t\t\t\t\tcompletion: this.invocationContext.getStore() === key ? Promise.resolve() : inFlight,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst admitted = this.open || this.messageAdmissionContext.getStore()?.active === true;\n\t\tconst decision: WorkflowStageAdmissionDecision = admitted ? \"admitted\" : \"late\";\n\t\tlet completion: Promise<void>;\n\t\tif (key === undefined) {\n\t\t\tcompletion = this.invoke(admitted ? deliver : routeLate);\n\t\t} else {\n\t\t\tlet resolveCompletion!: () => void;\n\t\t\tlet rejectCompletion!: (reason?: unknown) => void;\n\t\t\tcompletion = new Promise<void>((resolve, reject) => {\n\t\t\t\tresolveCompletion = resolve;\n\t\t\t\trejectCompletion = reject;\n\t\t\t});\n\t\t\tvoid completion.catch(() => {});\n\t\t\tthis.inFlight.set(key, completion);\n\t\t\tconst delivery = this.invocationContext.run(key, () => this.invoke(admitted ? deliver : routeLate));\n\t\t\tvoid delivery.then(resolveCompletion, rejectCompletion);\n\t\t\tvoid completion.then(\n\t\t\t\t() => {\n\t\t\t\t\tif (this.inFlight.get(key) !== completion) return;\n\t\t\t\t\tthis.inFlight.delete(key);\n\t\t\t\t\tthis.completed.add(key);\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (this.inFlight.get(key) === completion) this.inFlight.delete(key);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (decision === \"admitted\") this.trackAdmittedWork(completion);\n\t\treturn { decision, completion };\n\t}\n\n\ttrackAdmittedWork(completion: Promise<void>): void {\n\t\tthis.pending.add(completion);\n\t\tvoid completion.then(\n\t\t\t() => this.pending.delete(completion),\n\t\t\t() => this.pending.delete(completion),\n\t\t);\n\t}\n\n\t/** Join already-reserved queue commits before a native turn polls its input. */\n\tasync waitForPendingDeliveries(): Promise<void> {\n\t\tawait Promise.allSettled([...this.pending]);\n\t}\n\n\thasPendingDeliveries(): boolean {\n\t\treturn this.pending.size > 0;\n\t}\n\n\tregisterOwnedSubagentRun(runId: string): void {\n\t\tthis.ownedSubagentRunIds.add(runId);\n\t}\n\n\townsSubagentRun(runId: string): boolean {\n\t\treturn this.ownedSubagentRunIds.has(runId);\n\t}\n\n\tisOpen(): boolean {\n\t\treturn this.open;\n\t}\n\n\tseal(): void {\n\t\tthis.open = false;\n\t\tthis.taskClose ??= this.taskHost?.close(\"stage-close\");\n\t}\n\n\tclose(): Promise<void> {\n\t\tthis.seal();\n\t\tif (!this.closeController.signal.aborted) this.closeController.abort();\n\t\tthis.closePromise ??= this.finishClose();\n\t\treturn this.closePromise;\n\t}\n\n\tprivate async finishClose(): Promise<void> {\n\t\tawait Promise.allSettled([...this.pending]);\n\t\tawait this.drainAdmittedWork();\n\t\tconst closed = await this.taskClose;\n\t\tif (closed && !closed.ok) throw new Error(`${closed.error.code}: ${closed.error.message}`);\n\t}\n\n\tprivate invoke(callback: () => void | Promise<void>): Promise<void> {\n\t\ttry {\n\t\t\treturn Promise.resolve(callback());\n\t\t} catch (error) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t}\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -38,11 +38,11 @@ export { AgentSessionRuntime, type AgentSessionRuntimeDiagnostic, type AgentSess
|
|
|
38
38
|
export { type BranchSummaryEntry, buildContextEntries, buildSessionContext, type CompactionEntry, CURRENT_SESSION_VERSION, type CustomEntry, type CustomMessageEntry, type FileEntry, getLatestCompactionBoundaryEntry, type ModelChangeEntry, migrateSessionEntries, type NewSessionOptions, parseSessionEntries, type SessionContext, type SessionEntry, type SessionEntryBase, type SessionHeader, type SessionInfo, type SessionInfoEntry, SessionManager, type SessionMessageEntry, type SessionNameState, type SessionTreeNode, type SessionWorkflowMetadata, sessionEntryToContextMessages, type ThinkingLevelChangeEntry, } from "./core/session-manager.ts";
|
|
39
39
|
export { WORKFLOW_SESSION_METADATA_ENV, workflowSessionMetadataFromEnv, } from "./core/session-manager-classification.ts";
|
|
40
40
|
export type { DefaultProjectTrust } from "./core/settings-manager.ts";
|
|
41
|
-
export { type CompactionSettings, type ImageSettings, type PackageSource, type RetrySettings, SettingsManager, type SettingsManagerCreateOptions, } from "./core/settings-manager.ts";
|
|
41
|
+
export { type CompactionModelOverride, type CompactionSettings, type ImageSettings, type PackageSource, type RetrySettings, SettingsManager, type SettingsManagerCreateOptions, } from "./core/settings-manager.ts";
|
|
42
42
|
export { formatSkillsForPrompt, type LoadSkillsFromDirOptions, type LoadSkillsResult, loadSkills, loadSkillsFromDir, type Skill, type SkillFrontmatter, } from "./core/skills.ts";
|
|
43
43
|
export { createSyntheticSourceInfo } from "./core/source-info.ts";
|
|
44
44
|
export { type EditDiffResult, generateDiffString, generateUnifiedPatch } from "./core/tools/edit-diff.ts";
|
|
45
|
-
export { BASH_SHELL_PRESENTATION, type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, bashToolSystemPromptContribution, createAskUserQuestionToolDefinition, createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createLocalBashOperations, createLocalPowerShellOperations, createLsToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createSearchToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, type EditOperations, type EditToolDetails, type EditToolInput, type EditToolOptions, editToolSystemPromptContribution, type FindOperations, type FindToolDetails, type FindToolInput, type FindToolOptions, findToolSystemPromptContribution, formatSize, type LsOperations, type LsToolDetails, type LsToolInput, type LsToolOptions, lsToolSystemPromptContribution, type PowerShellOperations, type PowerShellSpawnContext, type PowerShellSpawnHook, type PowerShellToolDetails, type PowerShellToolInput, type PowerShellToolOptions, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, readToolSystemPromptContribution, type SearchToolDetails, type SearchToolInput, type SearchToolOptions, type ShellToolPresentation, searchToolSystemPromptContribution, type ToolsOptions, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, type WriteOperations, type WriteToolInput, type WriteToolOptions, withFileMutationQueue, writeToolSystemPromptContribution, } from "./core/tools/index.ts";
|
|
45
|
+
export { BASH_SHELL_PRESENTATION, type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, bashToolSystemPromptContribution, createAskUserQuestionToolDefinition, createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createKillTool, createKillToolDefinition, createLocalBashOperations, createLocalPowerShellOperations, createLsToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createSearchToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, type EditOperations, type EditToolDetails, type EditToolInput, type EditToolOptions, editToolSystemPromptContribution, type FindOperations, type FindToolDetails, type FindToolInput, type FindToolOptions, findToolSystemPromptContribution, formatSize, type KillToolOptions, type LsOperations, type LsToolDetails, type LsToolInput, type LsToolOptions, lsToolSystemPromptContribution, type PowerShellOperations, type PowerShellSpawnContext, type PowerShellSpawnHook, type PowerShellToolDetails, type PowerShellToolInput, type PowerShellToolOptions, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, readToolSystemPromptContribution, type SearchToolDetails, type SearchToolInput, type SearchToolOptions, type ShellToolPresentation, searchToolSystemPromptContribution, type ToolsOptions, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, type WriteOperations, type WriteToolInput, type WriteToolOptions, withFileMutationQueue, writeToolSystemPromptContribution, } from "./core/tools/index.ts";
|
|
46
46
|
export { hasProjectTrustInputs, hasTrustRequiringProjectResources, type ProjectTrustDecision, ProjectTrustStore, type ProjectTrustStoreEntry, type ProjectTrustUpdate, TRUST_REQUIRING_PROJECT_CONFIG_RESOURCES, } from "./core/trust-manager.ts";
|
|
47
47
|
export { StringEnum, type StringEnumOptions } from "./core/typebox-compat.ts";
|
|
48
48
|
export * from "./index-extensions.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -51,7 +51,7 @@ export { generateDiffString, generateUnifiedPatch } from "./core/tools/edit-diff
|
|
|
51
51
|
// Builtin tool definitions reusable by first-party extensions (e.g. workflows
|
|
52
52
|
// invoking the structured ask_user_question UI deterministically).
|
|
53
53
|
// Tools
|
|
54
|
-
export { BASH_SHELL_PRESENTATION, bashToolSystemPromptContribution, createAskUserQuestionToolDefinition, createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createLocalBashOperations, createLocalPowerShellOperations, createLsToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createSearchToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, editToolSystemPromptContribution, findToolSystemPromptContribution, formatSize, lsToolSystemPromptContribution, readToolSystemPromptContribution, searchToolSystemPromptContribution, truncateHead, truncateLine, truncateTail, withFileMutationQueue, writeToolSystemPromptContribution, } from "./core/tools/index.js";
|
|
54
|
+
export { BASH_SHELL_PRESENTATION, bashToolSystemPromptContribution, createAskUserQuestionToolDefinition, createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createKillTool, createKillToolDefinition, createLocalBashOperations, createLocalPowerShellOperations, createLsToolDefinition, createPowerShellToolDefinition, createReadToolDefinition, createSearchToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, editToolSystemPromptContribution, findToolSystemPromptContribution, formatSize, lsToolSystemPromptContribution, readToolSystemPromptContribution, searchToolSystemPromptContribution, truncateHead, truncateLine, truncateTail, withFileMutationQueue, writeToolSystemPromptContribution, } from "./core/tools/index.js";
|
|
55
55
|
export { hasProjectTrustInputs, hasTrustRequiringProjectResources, ProjectTrustStore, TRUST_REQUIRING_PROJECT_CONFIG_RESOURCES, } from "./core/trust-manager.js";
|
|
56
56
|
export { StringEnum } from "./core/typebox-compat.js";
|
|
57
57
|
export * from "./index-extensions.js";
|