@viewportai/daemon 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/claude.d.ts +7 -1
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +71 -0
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex-event-normalizers.d.ts.map +1 -1
- package/dist/adapters/codex-event-normalizers.js +55 -2
- package/dist/adapters/codex-event-normalizers.js.map +1 -1
- package/dist/adapters/codex.d.ts +2 -1
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +27 -0
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/gemini-cli.d.ts +2 -1
- package/dist/adapters/gemini-cli.d.ts.map +1 -1
- package/dist/adapters/gemini-cli.js +24 -0
- package/dist/adapters/gemini-cli.js.map +1 -1
- package/dist/adapters/pty.d.ts +2 -1
- package/dist/adapters/pty.d.ts.map +1 -1
- package/dist/adapters/pty.js +24 -0
- package/dist/adapters/pty.js.map +1 -1
- package/dist/cli/commands.d.ts +2 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +2 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/install-command.d.ts +5 -1
- package/dist/cli/install-command.d.ts.map +1 -1
- package/dist/cli/install-command.js +37 -28
- package/dist/cli/install-command.js.map +1 -1
- package/dist/cli/lifecycle-commands.d.ts.map +1 -1
- package/dist/cli/lifecycle-commands.js +5 -2
- package/dist/cli/lifecycle-commands.js.map +1 -1
- package/dist/cli/lifecycle-pair-command.d.ts.map +1 -1
- package/dist/cli/lifecycle-pair-command.js +51 -6
- package/dist/cli/lifecycle-pair-command.js.map +1 -1
- package/dist/cli/lifecycle-pair-server.d.ts +2 -0
- package/dist/cli/lifecycle-pair-server.d.ts.map +1 -1
- package/dist/cli/lifecycle-pair-server.js.map +1 -1
- package/dist/cli/setup-command.d.ts.map +1 -1
- package/dist/cli/setup-command.js +8 -8
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/cli/watch-command.d.ts +3 -0
- package/dist/cli/watch-command.d.ts.map +1 -0
- package/dist/cli/watch-command.js +42 -0
- package/dist/cli/watch-command.js.map +1 -0
- package/dist/cli/worker-command.d.ts +3 -0
- package/dist/cli/worker-command.d.ts.map +1 -0
- package/dist/cli/worker-command.js +132 -0
- package/dist/cli/worker-command.js.map +1 -0
- package/dist/cli/worker-profile.d.ts +65 -0
- package/dist/cli/worker-profile.d.ts.map +1 -0
- package/dist/cli/worker-profile.js +228 -0
- package/dist/cli/worker-profile.js.map +1 -0
- package/dist/cli/worker-runtime.d.ts +19 -0
- package/dist/cli/worker-runtime.d.ts.map +1 -0
- package/dist/cli/worker-runtime.js +606 -0
- package/dist/cli/worker-runtime.js.map +1 -0
- package/dist/cli/workflow-managed-worker.js +1 -1
- package/dist/cli/workflow-managed-worker.js.map +1 -1
- package/dist/core/config-schema.d.ts +71 -0
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +51 -0
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/config.d.ts +88 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/daemon.d.ts +5 -1
- package/dist/core/daemon.d.ts.map +1 -1
- package/dist/core/daemon.js +8 -0
- package/dist/core/daemon.js.map +1 -1
- package/dist/core/interfaces.d.ts +135 -1
- package/dist/core/interfaces.d.ts.map +1 -1
- package/dist/core/permission-coordinator.d.ts.map +1 -1
- package/dist/core/permission-coordinator.js +4 -2
- package/dist/core/permission-coordinator.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +41 -17
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +10 -1
- package/dist/plugins/loader.js.map +1 -1
- package/dist/server/http-server.js +2 -2
- package/dist/server/http-server.js.map +1 -1
- package/dist/workflows/action-provider-adapters.js +141 -9
- package/dist/workflows/action-provider-adapters.js.map +1 -1
- package/dist/workflows/checkout-node.d.ts +2 -0
- package/dist/workflows/checkout-node.d.ts.map +1 -1
- package/dist/workflows/checkout-node.js +3 -1
- package/dist/workflows/checkout-node.js.map +1 -1
- package/dist/workflows/context-node-resolver.js +44 -4
- package/dist/workflows/context-node-resolver.js.map +1 -1
- package/dist/workflows/daemon-session.d.ts +9 -0
- package/dist/workflows/daemon-session.d.ts.map +1 -1
- package/dist/workflows/daemon-session.js +147 -6
- package/dist/workflows/daemon-session.js.map +1 -1
- package/dist/workflows/event-types.d.ts +1 -1
- package/dist/workflows/event-types.d.ts.map +1 -1
- package/dist/workflows/inline-agent-types.d.ts +5 -0
- package/dist/workflows/inline-agent-types.d.ts.map +1 -1
- package/dist/workflows/inline-agents.d.ts +4 -1
- package/dist/workflows/inline-agents.d.ts.map +1 -1
- package/dist/workflows/inline-agents.js +21 -1
- package/dist/workflows/inline-agents.js.map +1 -1
- package/dist/workflows/node-executor.d.ts.map +1 -1
- package/dist/workflows/node-executor.js +18 -5
- package/dist/workflows/node-executor.js.map +1 -1
- package/dist/workflows/node-registry.d.ts.map +1 -1
- package/dist/workflows/node-registry.js +241 -5
- package/dist/workflows/node-registry.js.map +1 -1
- package/dist/workflows/parser.js +17 -2
- package/dist/workflows/parser.js.map +1 -1
- package/dist/workflows/platform-sync-payload.d.ts.map +1 -1
- package/dist/workflows/platform-sync-payload.js +152 -4
- package/dist/workflows/platform-sync-payload.js.map +1 -1
- package/dist/workflows/platform-sync.d.ts.map +1 -1
- package/dist/workflows/platform-sync.js +10 -1
- package/dist/workflows/platform-sync.js.map +1 -1
- package/dist/workflows/prompt-output.d.ts +6 -2
- package/dist/workflows/prompt-output.d.ts.map +1 -1
- package/dist/workflows/prompt-output.js +8 -2
- package/dist/workflows/prompt-output.js.map +1 -1
- package/dist/workflows/runner-scheduler.d.ts.map +1 -1
- package/dist/workflows/runner-scheduler.js +30 -4
- package/dist/workflows/runner-scheduler.js.map +1 -1
- package/dist/workflows/runner.d.ts +1 -0
- package/dist/workflows/runner.d.ts.map +1 -1
- package/dist/workflows/runner.js +28 -0
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/runtime-helpers.d.ts +19 -0
- package/dist/workflows/runtime-helpers.d.ts.map +1 -1
- package/dist/workflows/runtime-helpers.js +96 -2
- package/dist/workflows/runtime-helpers.js.map +1 -1
- package/dist/workflows/session-output.d.ts +9 -0
- package/dist/workflows/session-output.d.ts.map +1 -1
- package/dist/workflows/session-output.js +156 -0
- package/dist/workflows/session-output.js.map +1 -1
- package/dist/workflows/session-policy.d.ts +30 -0
- package/dist/workflows/session-policy.d.ts.map +1 -0
- package/dist/workflows/session-policy.js +45 -0
- package/dist/workflows/session-policy.js.map +1 -0
- package/dist/workflows/structured-outputs.d.ts +5 -0
- package/dist/workflows/structured-outputs.d.ts.map +1 -1
- package/dist/workflows/structured-outputs.js +82 -3
- package/dist/workflows/structured-outputs.js.map +1 -1
- package/dist/workflows/types.d.ts +10 -1
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow-authority-contract.d.ts +4 -2
- package/dist/workflows/workflow-authority-contract.d.ts.map +1 -1
- package/dist/workflows/workflow-authority-contract.js +45 -1
- package/dist/workflows/workflow-authority-contract.js.map +1 -1
- package/dist/workflows/workflow-executor-schema.d.ts +1 -1
- package/dist/workflows/workflow-production-schema.d.ts +12 -8
- package/dist/workflows/workflow-production-schema.d.ts.map +1 -1
- package/dist/workflows/workflow-production-schema.js +17 -1
- package/dist/workflows/workflow-production-schema.js.map +1 -1
- package/dist/workflows/workflow-production-types.d.ts +11 -1
- package/dist/workflows/workflow-production-types.d.ts.map +1 -1
- package/dist/workflows/workflow-schema-common.d.ts +6 -0
- package/dist/workflows/workflow-schema-common.d.ts.map +1 -1
- package/dist/workflows/workflow-schema-common.js +2 -0
- package/dist/workflows/workflow-schema-common.js.map +1 -1
- package/dist/workflows/workflow-schema.d.ts +404 -10
- package/dist/workflows/workflow-schema.d.ts.map +1 -1
- package/dist/workflows/workflow-schema.js +11 -1
- package/dist/workflows/workflow-schema.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { type WorkflowSessionBudget } from './session-policy.js';
|
|
1
2
|
import type { WorkflowNodeExecutorContext } from './node-executor.js';
|
|
2
3
|
import type { WorkflowInlineAgentRunState, WorkflowPromptNode, WorkflowRunRecord } from './types.js';
|
|
3
|
-
export declare function runInlineAgents(context: WorkflowNodeExecutorContext, run: WorkflowRunRecord, nodeId: string, node: WorkflowPromptNode
|
|
4
|
+
export declare function runInlineAgents(context: WorkflowNodeExecutorContext, run: WorkflowRunRecord, nodeId: string, node: WorkflowPromptNode, options?: {
|
|
5
|
+
budget?: WorkflowSessionBudget;
|
|
6
|
+
}): Promise<Record<string, WorkflowInlineAgentRunState>>;
|
|
4
7
|
export declare function appendInlineAgentResults(prompt: string, agents: Record<string, WorkflowInlineAgentRunState>): string;
|
|
5
8
|
//# sourceMappingURL=inline-agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-agents.d.ts","sourceRoot":"","sources":["../../src/workflows/inline-agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,eAAe,CACnC,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"inline-agents.d.ts","sourceRoot":"","sources":["../../src/workflows/inline-agents.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,eAAe,CACnC,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAO,GAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CA2GtD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,GAClD,MAAM,CAuBR"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { runWorkflowDaemonSession } from './daemon-session.js';
|
|
2
2
|
import { addEvent, renderTemplate } from './runtime-helpers.js';
|
|
3
|
-
|
|
3
|
+
import { resolveInlineAgentExecutionMode, resolveWorkflowSessionPolicy, } from './session-policy.js';
|
|
4
|
+
export async function runInlineAgents(context, run, nodeId, node, options = {}) {
|
|
4
5
|
const entries = Object.entries(node.agents ?? {});
|
|
5
6
|
const state = run.nodes[nodeId];
|
|
6
7
|
if (!state || entries.length === 0)
|
|
@@ -14,6 +15,10 @@ export async function runInlineAgents(context, run, nodeId, node) {
|
|
|
14
15
|
...((agent.agent ?? node.agent) ? { agent: agent.agent ?? node.agent } : {}),
|
|
15
16
|
...((agent.model ?? node.model) ? { model: agent.model ?? node.model } : {}),
|
|
16
17
|
...((agent.effort ?? node.effort) ? { effort: agent.effort ?? node.effort } : {}),
|
|
18
|
+
executionMode: resolveInlineAgentExecutionMode({
|
|
19
|
+
explicitExecutionMode: agent.executionMode,
|
|
20
|
+
parentExecutionMode: node.executionMode,
|
|
21
|
+
}),
|
|
17
22
|
},
|
|
18
23
|
]));
|
|
19
24
|
run.updatedAt = Date.now();
|
|
@@ -22,6 +27,10 @@ export async function runInlineAgents(context, run, nodeId, node) {
|
|
|
22
27
|
const agentState = state.inlineAgents?.[agentId];
|
|
23
28
|
if (!agentState)
|
|
24
29
|
return;
|
|
30
|
+
const sessionPolicy = resolveWorkflowSessionPolicy({
|
|
31
|
+
executionMode: agentState.executionMode,
|
|
32
|
+
timeoutSeconds: agent.timeoutSeconds,
|
|
33
|
+
});
|
|
25
34
|
agentState.status = 'running';
|
|
26
35
|
agentState.startedAt = Date.now();
|
|
27
36
|
addEvent(run, 'inline-agent-started', `Inline agent ${agentId} started for node ${nodeId}`, {
|
|
@@ -29,6 +38,7 @@ export async function runInlineAgents(context, run, nodeId, node) {
|
|
|
29
38
|
...(agentState.agent ? { agent: agentState.agent } : {}),
|
|
30
39
|
...(agentState.model ? { model: agentState.model } : {}),
|
|
31
40
|
...(agentState.effort ? { effort: agentState.effort } : {}),
|
|
41
|
+
executionMode: sessionPolicy.executionMode,
|
|
32
42
|
}, nodeId);
|
|
33
43
|
run.updatedAt = agentState.startedAt;
|
|
34
44
|
await context.saveAndEmit(run);
|
|
@@ -41,6 +51,16 @@ export async function runInlineAgents(context, run, nodeId, node) {
|
|
|
41
51
|
...(agentState.agent ? { agent: agentState.agent } : {}),
|
|
42
52
|
...(agentState.model ? { model: agentState.model } : {}),
|
|
43
53
|
...(agentState.effort ? { effort: agentState.effort } : {}),
|
|
54
|
+
executionMode: sessionPolicy.executionMode,
|
|
55
|
+
...(agent.allowedTools
|
|
56
|
+
? { allowedTools: agent.allowedTools }
|
|
57
|
+
: sessionPolicy.executionMode === 'plan'
|
|
58
|
+
? { allowedTools: [] }
|
|
59
|
+
: {}),
|
|
60
|
+
timeoutSeconds: sessionPolicy.timeoutSeconds,
|
|
61
|
+
...(options.budget ? { budget: options.budget } : {}),
|
|
62
|
+
executionModeDefaulted: agent.executionMode === undefined,
|
|
63
|
+
timeoutDefaulted: sessionPolicy.timeoutDefaulted,
|
|
44
64
|
});
|
|
45
65
|
agentState.status = 'completed';
|
|
46
66
|
agentState.completedAt = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-agents.js","sourceRoot":"","sources":["../../src/workflows/inline-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"inline-agents.js","sourceRoot":"","sources":["../../src/workflows/inline-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-executor.d.ts","sourceRoot":"","sources":["../../src/workflows/node-executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-executor.d.ts","sourceRoot":"","sources":["../../src/workflows/node-executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAUnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,wBAAwB,CAAC;IACvC,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAgIlC"}
|
|
@@ -7,6 +7,7 @@ import { classifyRetry } from './retry-classifier.js';
|
|
|
7
7
|
import { NODE_EXECUTORS } from './node-registry.js';
|
|
8
8
|
import { runWorkflowDaemonSession } from './daemon-session.js';
|
|
9
9
|
import { appendInlineAgentResults, runInlineAgents } from './inline-agents.js';
|
|
10
|
+
import { resolveWorkflowSessionBudget, resolveWorkflowSessionPolicy } from './session-policy.js';
|
|
10
11
|
import { resolvePromptNodeContext } from './context-node-resolver.js';
|
|
11
12
|
import { parseWorkflow } from './parser.js';
|
|
12
13
|
export async function executeWorkflowNode(context, run, nodeId, node) {
|
|
@@ -217,10 +218,15 @@ async function executePromptNode(context, run, nodeId, node) {
|
|
|
217
218
|
const state = run.nodes[nodeId];
|
|
218
219
|
if (!state)
|
|
219
220
|
return;
|
|
220
|
-
const
|
|
221
|
+
const sessionPolicy = resolveWorkflowSessionPolicy({
|
|
222
|
+
executionMode: node.executionMode,
|
|
223
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
224
|
+
});
|
|
225
|
+
const parsed = parseWorkflow(run.yamlSnapshot, run.sourcePath ?? `viewport://runs/${run.id}`);
|
|
226
|
+
const budget = resolveWorkflowSessionBudget(parsed.definition.policies?.budget);
|
|
227
|
+
const inlineAgents = await runInlineAgents(context, run, nodeId, node, { budget });
|
|
221
228
|
const renderedPrompt = appendInlineAgentResults(await renderTemplate(node.prompt, run), inlineAgents);
|
|
222
229
|
const renderedCwd = await renderOptionalTemplate(node.cwd, run);
|
|
223
|
-
const parsed = parseWorkflow(run.yamlSnapshot, run.sourcePath ?? `viewport://runs/${run.id}`);
|
|
224
230
|
const selectedContext = await resolvePromptNodeContext({
|
|
225
231
|
run,
|
|
226
232
|
nodeId,
|
|
@@ -252,11 +258,18 @@ async function executePromptNode(context, run, nodeId, node) {
|
|
|
252
258
|
...(node.agent ? { agent: node.agent } : {}),
|
|
253
259
|
...(node.model ? { model: node.model } : {}),
|
|
254
260
|
...(node.effort ? { effort: node.effort } : {}),
|
|
261
|
+
executionMode: sessionPolicy.executionMode,
|
|
262
|
+
...(node.allowedTools ? { allowedTools: node.allowedTools } : {}),
|
|
255
263
|
...(node.hooks ? { hooks: node.hooks } : {}),
|
|
256
|
-
|
|
257
|
-
|
|
264
|
+
timeoutSeconds: sessionPolicy.timeoutSeconds,
|
|
265
|
+
...(budget ? { budget } : {}),
|
|
266
|
+
executionModeDefaulted: sessionPolicy.executionModeDefaulted,
|
|
267
|
+
timeoutDefaulted: sessionPolicy.timeoutDefaulted,
|
|
268
|
+
outputFallback: () => readPromptNodeOutput(run, state, { allowCodexDiscovery: node.agent === 'codex' }),
|
|
258
269
|
outputData: async () => {
|
|
259
|
-
const transcriptExcerpt = await readPromptNodeTranscriptExcerpt(run, state
|
|
270
|
+
const transcriptExcerpt = await readPromptNodeTranscriptExcerpt(run, state, {
|
|
271
|
+
allowCodexDiscovery: node.agent === 'codex',
|
|
272
|
+
});
|
|
260
273
|
return transcriptExcerpt.length > 0 ? { transcriptExcerpt } : {};
|
|
261
274
|
},
|
|
262
275
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-executor.js","sourceRoot":"","sources":["../../src/workflows/node-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-executor.js","sourceRoot":"","sources":["../../src/workflows/node-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-registry.d.ts","sourceRoot":"","sources":["../../src/workflows/node-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-registry.d.ts","sourceRoot":"","sources":["../../src/workflows/node-registry.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOlE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,qFAAqF;IACrF,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,CACjB,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,KAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,eAAe,EAAE,CACf,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,KAC1C,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACtC,gBAAgB,EAAE,CAChB,OAAO,EAAE,2BAA2B,EACpC,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,kCAAyC,CAAC;AASrE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAEtF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
+
import path from 'node:path';
|
|
2
3
|
import { executeLoopNode } from './loop-executor.js';
|
|
3
4
|
import { executeContextNode } from './context-node-resolver.js';
|
|
4
5
|
import { executeActionAdapter, WorkflowActionError } from './action-adapters.js';
|
|
5
|
-
import { addEvent, renderOptionalTemplate, renderTemplate, resolveNodeCwd, runShellNode, } from './runtime-helpers.js';
|
|
6
|
+
import { addEvent, renderOptionalTemplate, runArgvNode, renderShellCommandTemplate, renderTemplate, resolveNodeCwd, runShellNode, ShellNodeError, } from './runtime-helpers.js';
|
|
6
7
|
import { envNameForCredentialRef } from './action-provider-utils.js';
|
|
7
8
|
import { executeSubflowNode } from './subflow-executor.js';
|
|
8
9
|
import { buildExpressionContext, evaluateConditionExpression } from './expression.js';
|
|
@@ -19,6 +20,10 @@ import { executeGitPublishNode, gitPublishAuthorityDenial } from './git-publish-
|
|
|
19
20
|
* is one entry, not five files.
|
|
20
21
|
*/
|
|
21
22
|
export const NODE_EXECUTORS = new Map();
|
|
23
|
+
const SECRET_LIKE_ENV_NAME_PATTERN = /(^|_)(AUTHORIZATION|CREDENTIAL|PASSWORD|PASSWD|PRIVATE_KEY|SECRET|TOKEN|API_KEY)(_|$)/i;
|
|
24
|
+
function isSecretLikeEnvName(name) {
|
|
25
|
+
return SECRET_LIKE_ENV_NAME_PATTERN.test(name);
|
|
26
|
+
}
|
|
22
27
|
export function registerNodeExecutor(type, executor) {
|
|
23
28
|
NODE_EXECUTORS.set(type, executor);
|
|
24
29
|
}
|
|
@@ -59,6 +64,8 @@ const BUILTIN_NODE_EXECUTORS = {
|
|
|
59
64
|
ref: result.ref,
|
|
60
65
|
branch: result.branch,
|
|
61
66
|
commit: result.commit,
|
|
67
|
+
sourceCategory: result.sourceCategory,
|
|
68
|
+
readWriteMode: result.readWriteMode,
|
|
62
69
|
};
|
|
63
70
|
state.metadata = {
|
|
64
71
|
...(state.metadata ?? {}),
|
|
@@ -66,8 +73,14 @@ const BUILTIN_NODE_EXECUTORS = {
|
|
|
66
73
|
schema: 'viewport.checkout_receipt/v1',
|
|
67
74
|
repository: result.repository,
|
|
68
75
|
remote: result.remote,
|
|
76
|
+
path: result.path,
|
|
77
|
+
source_category: result.sourceCategory,
|
|
78
|
+
read_write_mode: result.readWriteMode,
|
|
79
|
+
requested_ref: result.ref,
|
|
80
|
+
requested_branch: result.branch,
|
|
69
81
|
ref: result.ref,
|
|
70
82
|
branch: result.branch,
|
|
83
|
+
exact_commit: result.commit,
|
|
71
84
|
commit: result.commit,
|
|
72
85
|
credentialMode: result.credentialMode,
|
|
73
86
|
credentialRef: result.credentialRef,
|
|
@@ -77,8 +90,12 @@ const BUILTIN_NODE_EXECUTORS = {
|
|
|
77
90
|
addEvent(run, 'checkout-completed', `Checked out ${result.repository}`, {
|
|
78
91
|
repository: result.repository,
|
|
79
92
|
remote: result.remote,
|
|
93
|
+
path: result.path,
|
|
94
|
+
source_category: result.sourceCategory,
|
|
95
|
+
read_write_mode: result.readWriteMode,
|
|
80
96
|
ref: result.ref,
|
|
81
97
|
branch: result.branch,
|
|
98
|
+
exact_commit: result.commit,
|
|
82
99
|
commit: result.commit,
|
|
83
100
|
}, nodeId);
|
|
84
101
|
return { result: 'completed', artifactCwd: result.path };
|
|
@@ -147,19 +164,80 @@ const BUILTIN_NODE_EXECUTORS = {
|
|
|
147
164
|
if (node.type !== 'shell')
|
|
148
165
|
return { result: 'completed' };
|
|
149
166
|
const state = run.nodes[nodeId];
|
|
167
|
+
const startedAt = Date.now();
|
|
150
168
|
const artifactCwd = resolveNodeCwd(run.directoryPath, await renderOptionalTemplate(node.cwd, run));
|
|
151
|
-
const
|
|
152
|
-
const
|
|
169
|
+
const invocation = await renderShellInvocation(node, run);
|
|
170
|
+
const env = await resolveNodeEnv(context, run, node);
|
|
171
|
+
if (state) {
|
|
172
|
+
state.metadata = {
|
|
173
|
+
...(state.metadata ?? {}),
|
|
174
|
+
shell_execution: buildShellExecutionReceipt({
|
|
175
|
+
run,
|
|
176
|
+
nodeId,
|
|
177
|
+
commandDigestMaterial: invocation.digestMaterial,
|
|
178
|
+
executor: invocation.executor,
|
|
179
|
+
cwd: artifactCwd,
|
|
180
|
+
env,
|
|
181
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
182
|
+
startedAt,
|
|
183
|
+
status: 'preflight',
|
|
184
|
+
}),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
const workspaceDenial = shellWorkspaceCwdDenial(run, nodeId, artifactCwd);
|
|
188
|
+
if (workspaceDenial) {
|
|
189
|
+
if (state) {
|
|
190
|
+
state.metadata = {
|
|
191
|
+
...(state.metadata ?? {}),
|
|
192
|
+
shell_execution: buildShellExecutionReceipt({
|
|
193
|
+
run,
|
|
194
|
+
nodeId,
|
|
195
|
+
commandDigestMaterial: invocation.digestMaterial,
|
|
196
|
+
executor: invocation.executor,
|
|
197
|
+
cwd: artifactCwd,
|
|
198
|
+
env,
|
|
199
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
200
|
+
startedAt,
|
|
201
|
+
completedAt: Date.now(),
|
|
202
|
+
status: 'denied',
|
|
203
|
+
denial: workspaceDenial,
|
|
204
|
+
}),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
addEvent(run, 'shell-blocked', workspaceDenial.detail, { workflow_authority_denial: workspaceDenial }, nodeId);
|
|
208
|
+
throw new Error(workspaceDenial.detail);
|
|
209
|
+
}
|
|
210
|
+
const denial = shellAuthorityDenial(run, nodeId, invocation.authorityCommand, artifactCwd, {
|
|
211
|
+
executorKind: typeof invocation.executor.kind === 'string' ? invocation.executor.kind : undefined,
|
|
212
|
+
});
|
|
153
213
|
if (denial) {
|
|
214
|
+
if (state) {
|
|
215
|
+
state.metadata = {
|
|
216
|
+
...(state.metadata ?? {}),
|
|
217
|
+
shell_execution: buildShellExecutionReceipt({
|
|
218
|
+
run,
|
|
219
|
+
nodeId,
|
|
220
|
+
commandDigestMaterial: invocation.digestMaterial,
|
|
221
|
+
executor: invocation.executor,
|
|
222
|
+
cwd: artifactCwd,
|
|
223
|
+
env,
|
|
224
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
225
|
+
startedAt,
|
|
226
|
+
completedAt: Date.now(),
|
|
227
|
+
status: 'denied',
|
|
228
|
+
denial,
|
|
229
|
+
}),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
154
232
|
addEvent(run, 'shell-blocked', denial.detail, { workflow_authority_denial: denial }, nodeId);
|
|
155
233
|
throw new Error(denial.detail);
|
|
156
234
|
}
|
|
157
235
|
const abort = context.shellAbortRegistry.create(run.id, `node:${nodeId}`);
|
|
158
236
|
let result;
|
|
159
237
|
try {
|
|
160
|
-
result = await
|
|
238
|
+
result = await invocation.run({
|
|
161
239
|
cwd: artifactCwd,
|
|
162
|
-
env
|
|
240
|
+
env,
|
|
163
241
|
timeoutSeconds: node.timeoutSeconds,
|
|
164
242
|
signal: abort.signal,
|
|
165
243
|
onOutput: ({ source, chunk, output }) => {
|
|
@@ -169,12 +247,55 @@ const BUILTIN_NODE_EXECUTORS = {
|
|
|
169
247
|
},
|
|
170
248
|
});
|
|
171
249
|
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
if (state) {
|
|
252
|
+
if (error instanceof ShellNodeError) {
|
|
253
|
+
state.output = error.output || state.output;
|
|
254
|
+
state.exitCode = error.exitCode ?? undefined;
|
|
255
|
+
}
|
|
256
|
+
state.metadata = {
|
|
257
|
+
...(state.metadata ?? {}),
|
|
258
|
+
shell_execution: buildShellExecutionReceipt({
|
|
259
|
+
run,
|
|
260
|
+
nodeId,
|
|
261
|
+
commandDigestMaterial: invocation.digestMaterial,
|
|
262
|
+
executor: invocation.executor,
|
|
263
|
+
cwd: artifactCwd,
|
|
264
|
+
env,
|
|
265
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
266
|
+
startedAt,
|
|
267
|
+
completedAt: Date.now(),
|
|
268
|
+
status: error instanceof ShellNodeError && error.message.includes('canceled')
|
|
269
|
+
? 'canceled'
|
|
270
|
+
: 'failed',
|
|
271
|
+
exitCode: error instanceof ShellNodeError ? error.exitCode : null,
|
|
272
|
+
}),
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
throw error;
|
|
276
|
+
}
|
|
172
277
|
finally {
|
|
173
278
|
abort.dispose();
|
|
174
279
|
}
|
|
175
280
|
if (state) {
|
|
176
281
|
state.output = result.output;
|
|
177
282
|
state.exitCode = result.exitCode;
|
|
283
|
+
state.metadata = {
|
|
284
|
+
...(state.metadata ?? {}),
|
|
285
|
+
shell_execution: buildShellExecutionReceipt({
|
|
286
|
+
run,
|
|
287
|
+
nodeId,
|
|
288
|
+
commandDigestMaterial: invocation.digestMaterial,
|
|
289
|
+
executor: invocation.executor,
|
|
290
|
+
cwd: artifactCwd,
|
|
291
|
+
env,
|
|
292
|
+
timeoutSeconds: node.timeoutSeconds,
|
|
293
|
+
startedAt,
|
|
294
|
+
completedAt: Date.now(),
|
|
295
|
+
status: 'completed',
|
|
296
|
+
exitCode: result.exitCode,
|
|
297
|
+
}),
|
|
298
|
+
};
|
|
178
299
|
}
|
|
179
300
|
addEvent(run, 'node-output', `Node ${nodeId} produced shell output`, { output: result.output, exitCode: result.exitCode }, nodeId);
|
|
180
301
|
return { result: 'completed', artifactCwd };
|
|
@@ -469,6 +590,9 @@ async function resolveNodeEnv(context, run, node) {
|
|
|
469
590
|
const env = {};
|
|
470
591
|
for (const [name, value] of Object.entries(node.env)) {
|
|
471
592
|
if (value.value !== undefined) {
|
|
593
|
+
if (isSecretLikeEnvName(name)) {
|
|
594
|
+
throw new Error(`Env ${name} looks secret-like and must use a credential secret handle instead of a literal value.`);
|
|
595
|
+
}
|
|
472
596
|
env[name] = await renderTemplate(value.value, run);
|
|
473
597
|
continue;
|
|
474
598
|
}
|
|
@@ -545,6 +669,118 @@ function redactedContextUpdatePatch(patch) {
|
|
|
545
669
|
plaintext_patch_persisted: false,
|
|
546
670
|
};
|
|
547
671
|
}
|
|
672
|
+
async function renderShellInvocation(node, run) {
|
|
673
|
+
if (node.argv && node.argv.length > 0) {
|
|
674
|
+
const argv = await Promise.all(node.argv.map((entry) => renderTemplate(entry, run)));
|
|
675
|
+
return {
|
|
676
|
+
authorityCommand: argv.join(' '),
|
|
677
|
+
digestMaterial: JSON.stringify({ argv }),
|
|
678
|
+
executor: {
|
|
679
|
+
kind: 'argv',
|
|
680
|
+
command: argv[0] ?? null,
|
|
681
|
+
args_count: Math.max(0, argv.length - 1),
|
|
682
|
+
raw_args_persisted: false,
|
|
683
|
+
},
|
|
684
|
+
run: (options) => runArgvNode(argv, options),
|
|
685
|
+
};
|
|
686
|
+
}
|
|
687
|
+
if (!node.command) {
|
|
688
|
+
throw new Error(`Shell node must set command or argv.`);
|
|
689
|
+
}
|
|
690
|
+
const command = await renderShellCommandTemplate(node.command, run);
|
|
691
|
+
return {
|
|
692
|
+
authorityCommand: command,
|
|
693
|
+
digestMaterial: command,
|
|
694
|
+
executor: {
|
|
695
|
+
kind: 'shell',
|
|
696
|
+
command: 'sh',
|
|
697
|
+
args: ['-lc'],
|
|
698
|
+
},
|
|
699
|
+
run: (options) => runShellNode(command, options),
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
function buildShellExecutionReceipt(input) {
|
|
703
|
+
const durationMs = input.completedAt !== undefined ? Math.max(0, input.completedAt - input.startedAt) : null;
|
|
704
|
+
return {
|
|
705
|
+
schema: 'viewport.shell_execution_receipt/v1',
|
|
706
|
+
node_id: input.nodeId,
|
|
707
|
+
status: input.status,
|
|
708
|
+
executor: input.executor,
|
|
709
|
+
command_digest: digest(input.commandDigestMaterial),
|
|
710
|
+
command_persisted: false,
|
|
711
|
+
cwd: input.cwd,
|
|
712
|
+
cwd_digest: digest(input.cwd),
|
|
713
|
+
env_keys: Object.keys(input.env ?? {}).sort(),
|
|
714
|
+
env_values_persisted: false,
|
|
715
|
+
timeout_seconds: input.timeoutSeconds ?? null,
|
|
716
|
+
authority: shellAuthorityReceipt(input.run),
|
|
717
|
+
started_at: new Date(input.startedAt).toISOString(),
|
|
718
|
+
completed_at: input.completedAt !== undefined ? new Date(input.completedAt).toISOString() : null,
|
|
719
|
+
duration_ms: durationMs,
|
|
720
|
+
exit_code: input.exitCode ?? null,
|
|
721
|
+
denial: input.denial
|
|
722
|
+
? {
|
|
723
|
+
reason: input.denial.reason,
|
|
724
|
+
detail: input.denial.detail,
|
|
725
|
+
}
|
|
726
|
+
: null,
|
|
727
|
+
};
|
|
728
|
+
}
|
|
729
|
+
function shellWorkspaceCwdDenial(run, nodeId, cwd) {
|
|
730
|
+
if (isPathWithin(cwd, run.directoryPath))
|
|
731
|
+
return null;
|
|
732
|
+
return {
|
|
733
|
+
schema: 'viewport.workflow_authority_denial/v1',
|
|
734
|
+
reason: 'shell_cwd_outside_run_workspace',
|
|
735
|
+
runId: run.id,
|
|
736
|
+
nodeId,
|
|
737
|
+
detail: `Shell cwd ${cwd} is outside the run worktree.`,
|
|
738
|
+
};
|
|
739
|
+
}
|
|
740
|
+
function shellAuthorityReceipt(run) {
|
|
741
|
+
const contract = run.workflowAuthorityContract;
|
|
742
|
+
if (!contract || typeof contract !== 'object') {
|
|
743
|
+
return {
|
|
744
|
+
source: 'legacy_local',
|
|
745
|
+
shell_policy: 'legacy',
|
|
746
|
+
authority_contract_present: false,
|
|
747
|
+
};
|
|
748
|
+
}
|
|
749
|
+
const shellPolicy = authorityShellPolicy(contract);
|
|
750
|
+
return {
|
|
751
|
+
source: 'workflow_authority_contract',
|
|
752
|
+
shell_policy: shellPolicy ?? null,
|
|
753
|
+
legacy_command_allowed: authorityLegacyShellCommandAllowed(contract),
|
|
754
|
+
authority_contract_present: true,
|
|
755
|
+
authority_contract_digest: typeof contract.digest === 'string' ? contract.digest : null,
|
|
756
|
+
};
|
|
757
|
+
}
|
|
758
|
+
function authorityShellPolicy(contract) {
|
|
759
|
+
const nested = contract['shell'];
|
|
760
|
+
if (nested && typeof nested === 'object' && !Array.isArray(nested)) {
|
|
761
|
+
const policy = nested['policy'];
|
|
762
|
+
if (typeof policy === 'string' && policy.trim() !== '')
|
|
763
|
+
return policy;
|
|
764
|
+
}
|
|
765
|
+
const flat = contract['shell_policy'];
|
|
766
|
+
if (typeof flat === 'string' && flat.trim() !== '')
|
|
767
|
+
return flat;
|
|
768
|
+
return null;
|
|
769
|
+
}
|
|
770
|
+
function authorityLegacyShellCommandAllowed(contract) {
|
|
771
|
+
const nested = contract['shell'];
|
|
772
|
+
if (nested && typeof nested === 'object' && !Array.isArray(nested)) {
|
|
773
|
+
const allowed = nested['allow_legacy_command'];
|
|
774
|
+
if (typeof allowed === 'boolean')
|
|
775
|
+
return allowed;
|
|
776
|
+
}
|
|
777
|
+
const flat = contract['shell_allow_legacy_command'];
|
|
778
|
+
return typeof flat === 'boolean' ? flat : false;
|
|
779
|
+
}
|
|
780
|
+
function isPathWithin(candidate, root) {
|
|
781
|
+
const relative = path.relative(path.resolve(root), path.resolve(candidate));
|
|
782
|
+
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
783
|
+
}
|
|
548
784
|
function digest(value) {
|
|
549
785
|
return `sha256:${createHash('sha256').update(value).digest('hex')}`;
|
|
550
786
|
}
|