@jterrats/open-orchestra 0.5.7 → 1.0.1
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/AGENTS.md +9 -8
- package/CLAUDE.md +13 -11
- package/README.md +78 -11
- package/dist/assets/web-console.js +169 -32
- package/dist/automation-evidence.d.ts +23 -0
- package/dist/automation-evidence.js +97 -0
- package/dist/automation-evidence.js.map +1 -0
- package/dist/autonomous-run-store.js +3 -3
- package/dist/autonomous-run-store.js.map +1 -1
- package/dist/benchmark.d.ts +4 -1
- package/dist/benchmark.js +93 -4
- package/dist/benchmark.js.map +1 -1
- package/dist/cli.js +73 -2
- package/dist/cli.js.map +1 -1
- package/dist/collaboration-flows.js +3 -5
- package/dist/collaboration-flows.js.map +1 -1
- package/dist/collection-utils.d.ts +3 -0
- package/dist/collection-utils.js +10 -0
- package/dist/collection-utils.js.map +1 -0
- package/dist/command-manifest.d.ts +12 -1
- package/dist/command-manifest.js +213 -10
- package/dist/command-manifest.js.map +1 -1
- package/dist/commands.d.ts +10 -5
- package/dist/commands.js +16 -6
- package/dist/commands.js.map +1 -1
- package/dist/config-migrations.d.ts +24 -0
- package/dist/config-migrations.js +102 -0
- package/dist/config-migrations.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -1
- package/dist/dashboard-commands.d.ts +2 -0
- package/dist/dashboard-commands.js +14 -0
- package/dist/dashboard-commands.js.map +1 -0
- package/dist/defaults.d.ts +13 -0
- package/dist/defaults.js +13 -0
- package/dist/defaults.js.map +1 -1
- package/dist/delegation-decision.js +23 -8
- package/dist/delegation-decision.js.map +1 -1
- package/dist/delivery-commands.js +5 -0
- package/dist/delivery-commands.js.map +1 -1
- package/dist/delivery-dashboard-charts.d.ts +4 -0
- package/dist/delivery-dashboard-charts.js +156 -0
- package/dist/delivery-dashboard-charts.js.map +1 -0
- package/dist/delivery-dashboard-html.d.ts +2 -0
- package/dist/delivery-dashboard-html.js +115 -0
- package/dist/delivery-dashboard-html.js.map +1 -0
- package/dist/delivery-dashboard-types.d.ts +78 -0
- package/dist/delivery-dashboard-types.js +2 -0
- package/dist/delivery-dashboard-types.js.map +1 -0
- package/dist/delivery-dashboard.d.ts +8 -0
- package/dist/delivery-dashboard.js +124 -0
- package/dist/delivery-dashboard.js.map +1 -0
- package/dist/effort-classification.d.ts +7 -0
- package/dist/effort-classification.js +72 -0
- package/dist/effort-classification.js.map +1 -0
- package/dist/extension-commands.d.ts +3 -0
- package/dist/extension-commands.js +40 -0
- package/dist/extension-commands.js.map +1 -0
- package/dist/extensions.d.ts +22 -0
- package/dist/extensions.js +126 -0
- package/dist/extensions.js.map +1 -0
- package/dist/github.d.ts +2 -0
- package/dist/github.js +15 -3
- package/dist/github.js.map +1 -1
- package/dist/health-checks.js +51 -0
- package/dist/health-checks.js.map +1 -1
- package/dist/lucid-story-map.d.ts +73 -0
- package/dist/lucid-story-map.js +112 -0
- package/dist/lucid-story-map.js.map +1 -0
- package/dist/mcp-integrations.d.ts +19 -0
- package/dist/mcp-integrations.js +58 -0
- package/dist/mcp-integrations.js.map +1 -0
- package/dist/mcp-tool-adapter.d.ts +21 -0
- package/dist/mcp-tool-adapter.js +56 -0
- package/dist/mcp-tool-adapter.js.map +1 -0
- package/dist/metrics-commands.js +47 -13
- package/dist/metrics-commands.js.map +1 -1
- package/dist/model-commands.d.ts +5 -0
- package/dist/model-commands.js +95 -1
- package/dist/model-commands.js.map +1 -1
- package/dist/model-providers.js +13 -1
- package/dist/model-providers.js.map +1 -1
- package/dist/package-update-check.d.ts +18 -0
- package/dist/package-update-check.js +20 -0
- package/dist/package-update-check.js.map +1 -1
- package/dist/phase-executor.d.ts +1 -0
- package/dist/phase-executor.js +115 -14
- package/dist/phase-executor.js.map +1 -1
- package/dist/phase-playbooks.d.ts +15 -0
- package/dist/phase-playbooks.js +82 -0
- package/dist/phase-playbooks.js.map +1 -1
- package/dist/planning-commands.d.ts +1 -0
- package/dist/planning-commands.js +24 -1
- package/dist/planning-commands.js.map +1 -1
- package/dist/project-detection.js +9 -7
- package/dist/project-detection.js.map +1 -1
- package/dist/prompt-registry-update.d.ts +2 -0
- package/dist/prompt-registry-update.js +5 -1
- package/dist/prompt-registry-update.js.map +1 -1
- package/dist/prompt-registry-validation.js +39 -2
- package/dist/prompt-registry-validation.js.map +1 -1
- package/dist/qa-commands.d.ts +2 -0
- package/dist/qa-commands.js +18 -0
- package/dist/qa-commands.js.map +1 -0
- package/dist/qa-coverage.d.ts +24 -0
- package/dist/qa-coverage.js +189 -0
- package/dist/qa-coverage.js.map +1 -0
- package/dist/qa-readiness.d.ts +5 -0
- package/dist/qa-readiness.js +26 -0
- package/dist/qa-readiness.js.map +1 -0
- package/dist/refresh-generated.d.ts +10 -1
- package/dist/refresh-generated.js +83 -6
- package/dist/refresh-generated.js.map +1 -1
- package/dist/release-candidate.d.ts +9 -1
- package/dist/release-candidate.js +52 -1
- package/dist/release-candidate.js.map +1 -1
- package/dist/release-commands.js +161 -8
- package/dist/release-commands.js.map +1 -1
- package/dist/release-readiness.d.ts +33 -0
- package/dist/release-readiness.js +187 -3
- package/dist/release-readiness.js.map +1 -1
- package/dist/runtime-bootstrap.js +1 -1
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-commands.d.ts +2 -0
- package/dist/runtime-commands.js +77 -0
- package/dist/runtime-commands.js.map +1 -1
- package/dist/runtime-execution-renderer.d.ts +3 -2
- package/dist/runtime-execution-renderer.js +19 -1
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-execution.d.ts +2 -1
- package/dist/runtime-execution.js +71 -11
- package/dist/runtime-execution.js.map +1 -1
- package/dist/runtime-guardrails.d.ts +26 -0
- package/dist/runtime-guardrails.js +168 -0
- package/dist/runtime-guardrails.js.map +1 -0
- package/dist/setup-agents-import.js +5 -3
- package/dist/setup-agents-import.js.map +1 -1
- package/dist/skills-commands.d.ts +4 -0
- package/dist/skills-commands.js +55 -2
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-memory.d.ts +36 -2
- package/dist/skills-memory.js +165 -6
- package/dist/skills-memory.js.map +1 -1
- package/dist/skills-planning.js +2 -4
- package/dist/skills-planning.js.map +1 -1
- package/dist/skills-render.js +2 -4
- package/dist/skills-render.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/sprint-commands.js +2 -1
- package/dist/sprint-commands.js.map +1 -1
- package/dist/subagent-protocol.js +3 -5
- package/dist/subagent-protocol.js.map +1 -1
- package/dist/support-commands.d.ts +2 -0
- package/dist/support-commands.js +18 -0
- package/dist/support-commands.js.map +1 -0
- package/dist/support-diagnostics.d.ts +49 -0
- package/dist/support-diagnostics.js +86 -0
- package/dist/support-diagnostics.js.map +1 -0
- package/dist/task-graph-commands.js +5 -3
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/telemetry-redaction.js +8 -1
- package/dist/telemetry-redaction.js.map +1 -1
- package/dist/tool-commands.d.ts +3 -0
- package/dist/tool-commands.js +62 -0
- package/dist/tool-commands.js.map +1 -1
- package/dist/tracker-adapters.d.ts +71 -0
- package/dist/tracker-adapters.js +186 -0
- package/dist/tracker-adapters.js.map +1 -0
- package/dist/tracker-commands.d.ts +2 -0
- package/dist/tracker-commands.js +119 -0
- package/dist/tracker-commands.js.map +1 -0
- package/dist/types/metrics.d.ts +24 -0
- package/dist/types/model-config.d.ts +35 -0
- package/dist/types/runtime.d.ts +56 -0
- package/dist/types/skills.d.ts +2 -0
- package/dist/types/tasks.d.ts +6 -0
- package/dist/types/workflow-run.d.ts +17 -0
- package/dist/types.d.ts +4 -4
- package/dist/types.js.map +1 -1
- package/dist/upgrade-commands.js +13 -4
- package/dist/upgrade-commands.js.map +1 -1
- package/dist/validation.js +2 -2
- package/dist/validation.js.map +1 -1
- package/dist/visual-validation.d.ts +81 -0
- package/dist/visual-validation.js +290 -0
- package/dist/visual-validation.js.map +1 -0
- package/dist/web-action-security.d.ts +11 -0
- package/dist/web-action-security.js +45 -0
- package/dist/web-action-security.js.map +1 -0
- package/dist/web-api-read-routes.js +101 -1
- package/dist/web-api-read-routes.js.map +1 -1
- package/dist/web-api.js +507 -5
- package/dist/web-api.js.map +1 -1
- package/dist/web-artifacts.d.ts +55 -0
- package/dist/web-artifacts.js +222 -0
- package/dist/web-artifacts.js.map +1 -0
- package/dist/web-console/assets/index-C9lx-V42.css +1 -0
- package/dist/web-console/assets/index-M3S0g1GK.js +11 -0
- package/dist/web-console/index.html +13 -0
- package/dist/web-console.js +9 -3
- package/dist/web-console.js.map +1 -1
- package/dist/web-recovery.d.ts +30 -0
- package/dist/web-recovery.js +163 -0
- package/dist/web-recovery.js.map +1 -0
- package/dist/web-workflow-progress.d.ts +41 -0
- package/dist/web-workflow-progress.js +114 -0
- package/dist/web-workflow-progress.js.map +1 -0
- package/dist/workflow-approval-service.d.ts +2 -1
- package/dist/workflow-approval-service.js +72 -0
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-evidence-service.js +8 -1
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.d.ts +1 -0
- package/dist/workflow-gates.js +57 -0
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-run-commands.js +13 -1
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.d.ts +16 -12
- package/dist/workflow-services.js +311 -253
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.d.ts +11 -0
- package/dist/workflow-task-service.js +242 -0
- package/dist/workflow-task-service.js.map +1 -0
- package/dist/workspace-validator.js +109 -3
- package/dist/workspace-validator.js.map +1 -1
- package/dist/workspace.js +8 -2
- package/dist/workspace.js.map +1 -1
- package/docs/adoption-guide.md +147 -0
- package/docs/autonomous-workflow.md +118 -27
- package/docs/benchmark.md +15 -7
- package/docs/command-contracts.md +18 -1
- package/docs/core-command-surface.md +59 -13
- package/docs/end-to-end-demo.md +1 -0
- package/docs/extension-contracts.md +83 -0
- package/docs/orchestra-mvp.md +83 -3
- package/docs/persona-workflows.md +32 -0
- package/docs/release-test-matrix.md +42 -0
- package/docs/runtime-adapters.md +92 -0
- package/docs/runtime-llm-flow.md +13 -0
- package/docs/setup-agents-applicability-review.md +173 -0
- package/docs/source-of-truth-and-agent-learning.md +14 -0
- package/docs/traceability-flow.md +5 -1
- package/docs/tracker-adapter-contract.md +10 -1
- package/docs/web-console-qa.md +35 -0
- package/package.json +12 -6
- package/rules/development-engineering.mdc +66 -0
package/dist/runtime-commands.js
CHANGED
|
@@ -4,10 +4,13 @@ import { requireArg } from "./args.js";
|
|
|
4
4
|
import { parseCsv, parseSkillRenderTarget, removeUndefined, stringOption, } from "./command-utils.js";
|
|
5
5
|
import { listCommandManifest } from "./command-manifest.js";
|
|
6
6
|
import { resolveWorkspaceWritePath } from "./fs-utils.js";
|
|
7
|
+
import { normalizeRuntimeDelegationGuardrails, summarizeRuntimeDelegationOperations, } from "./runtime-guardrails.js";
|
|
7
8
|
import { listRuntimeAdapterCatalog } from "./runtime-adapters.js";
|
|
8
9
|
import { renderRuntimeBootstrap, upsertRuntimeBootstrapBlock, } from "./runtime-bootstrap.js";
|
|
9
10
|
import { recordRuntimeHandoff, renderRuntimeBrief, renderRuntimeDelegationPacket, } from "./runtime-execution.js";
|
|
10
11
|
import { renderSubagentProtocol, upsertSubagentProtocolBlock, } from "./subagent-protocol.js";
|
|
12
|
+
import { appendEvent, readEvents } from "./workspace.js";
|
|
13
|
+
import { getWorkflowConfig } from "./workflow-services.js";
|
|
11
14
|
export async function commandsManifestCommand(options, io) {
|
|
12
15
|
const manifest = listCommandManifest();
|
|
13
16
|
if (options.json) {
|
|
@@ -65,6 +68,7 @@ export async function runtimeDelegatePlanCommand(options, io) {
|
|
|
65
68
|
...(runtime ? { runtime } : {}),
|
|
66
69
|
roles,
|
|
67
70
|
tokenBudget: numberOption(options.budget, 1800),
|
|
71
|
+
delegationDepth: numberOption(options.depth, 0),
|
|
68
72
|
});
|
|
69
73
|
if (options.json) {
|
|
70
74
|
io.log(JSON.stringify(packet, null, 2));
|
|
@@ -73,6 +77,52 @@ export async function runtimeDelegatePlanCommand(options, io) {
|
|
|
73
77
|
io.log(packet.content);
|
|
74
78
|
io.log(`\nArtifact: ${packet.artifact}`);
|
|
75
79
|
}
|
|
80
|
+
export async function runtimeSessionsCommand(options, io) {
|
|
81
|
+
const taskId = stringOption(options.task);
|
|
82
|
+
const report = await runtimeOperationsReport({
|
|
83
|
+
...(taskId ? { taskId } : {}),
|
|
84
|
+
includeClosed: Boolean(options["include-closed"]),
|
|
85
|
+
});
|
|
86
|
+
if (options.json) {
|
|
87
|
+
io.log(JSON.stringify(report, null, 2));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
io.log(`Runtime sessions: ${report.counts.total}`);
|
|
91
|
+
io.log(`Active: ${report.counts.active}`);
|
|
92
|
+
io.log(`Stale: ${report.counts.stale}`);
|
|
93
|
+
for (const session of report.sessions) {
|
|
94
|
+
io.log(`${session.sessionId} ${session.status} task=${session.taskId} runtime=${session.runtime ?? "unknown"}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export async function runtimeSessionCommand(options, io) {
|
|
98
|
+
const sessionId = requireArg(options, "session");
|
|
99
|
+
const action = parseRuntimeSessionAction(requireArg(options, "action"));
|
|
100
|
+
const report = await runtimeOperationsReport({ includeClosed: true });
|
|
101
|
+
const session = report.sessions.find((candidate) => candidate.sessionId === sessionId);
|
|
102
|
+
if (!session) {
|
|
103
|
+
throw new Error(`unknown runtime delegation session: ${sessionId}`);
|
|
104
|
+
}
|
|
105
|
+
if (session.status === "closed" && action !== "close") {
|
|
106
|
+
throw new Error(`runtime delegation session is already closed: ${sessionId}`);
|
|
107
|
+
}
|
|
108
|
+
const event = await appendEvent(process.cwd(), {
|
|
109
|
+
type: runtimeSessionActionEvent(action),
|
|
110
|
+
taskId: session.taskId,
|
|
111
|
+
actor: "parent",
|
|
112
|
+
summary: `Runtime delegation session ${action}: ${sessionId}`,
|
|
113
|
+
artifacts: session.artifacts,
|
|
114
|
+
metadata: {
|
|
115
|
+
sessionId,
|
|
116
|
+
runtime: session.runtime,
|
|
117
|
+
previousStatus: session.status,
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
if (options.json) {
|
|
121
|
+
io.log(JSON.stringify(event, null, 2));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
io.log(`Runtime delegation session ${action}: ${sessionId}`);
|
|
125
|
+
}
|
|
76
126
|
export async function runtimeHandoffCommand(options, io) {
|
|
77
127
|
const taskId = requireArg(options, "task");
|
|
78
128
|
const runtime = requireArg(options, "runtime");
|
|
@@ -92,6 +142,33 @@ export async function runtimeHandoffCommand(options, io) {
|
|
|
92
142
|
}
|
|
93
143
|
io.log(`Runtime handoff recorded: ${event.id}`);
|
|
94
144
|
}
|
|
145
|
+
async function runtimeOperationsReport(options) {
|
|
146
|
+
const config = await getWorkflowConfig(process.cwd());
|
|
147
|
+
const policy = normalizeRuntimeDelegationGuardrails(config.runtimePolicy?.delegation?.guardrails);
|
|
148
|
+
return summarizeRuntimeDelegationOperations({
|
|
149
|
+
policy,
|
|
150
|
+
events: await readEvents(process.cwd()),
|
|
151
|
+
...options,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function parseRuntimeSessionAction(value) {
|
|
155
|
+
if (value === "suspend" ||
|
|
156
|
+
value === "resume" ||
|
|
157
|
+
value === "cancel" ||
|
|
158
|
+
value === "close") {
|
|
159
|
+
return value;
|
|
160
|
+
}
|
|
161
|
+
throw new Error("runtime session action must be suspend, resume, cancel, or close");
|
|
162
|
+
}
|
|
163
|
+
function runtimeSessionActionEvent(action) {
|
|
164
|
+
const events = {
|
|
165
|
+
suspend: "RUNTIME_DELEGATION_SESSION_SUSPENDED",
|
|
166
|
+
resume: "RUNTIME_DELEGATION_SESSION_RESUMED",
|
|
167
|
+
cancel: "RUNTIME_DELEGATION_SESSION_CANCELED",
|
|
168
|
+
close: "RUNTIME_DELEGATION_SESSION_CLOSED",
|
|
169
|
+
};
|
|
170
|
+
return events[action];
|
|
171
|
+
}
|
|
95
172
|
export async function runtimeBootstrapCommand(options, io) {
|
|
96
173
|
const target = parseSkillRenderTarget(stringOption(options.target) ?? "generic");
|
|
97
174
|
const bootstrap = renderRuntimeBootstrap(target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-commands.js","sourceRoot":"","sources":["../src/runtime-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-commands.js","sourceRoot":"","sources":["../src/runtime-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { RuntimeDelegationAssignment, RuntimeDelegationPacket, RuntimeExecutionAdapter, PhasePlaybook, Task, TaskContext } from "./types.js";
|
|
1
|
+
import type { RuntimeDelegationAssignment, RuntimeDelegationGuardrailEvaluation, RuntimeDelegationPacket, RuntimeExecutionAdapter, PhasePlaybook, Task, TaskContext } from "./types.js";
|
|
2
2
|
export declare function runtimeBriefContent(context: TaskContext, runtime: RuntimeExecutionAdapter, phasePlaybook?: PhasePlaybook): string;
|
|
3
|
-
export declare function runtimeDelegationContent({ context, runtime, assignments, phasePlaybooks, mode, allowDirectProviderApi, }: {
|
|
3
|
+
export declare function runtimeDelegationContent({ context, runtime, assignments, phasePlaybooks, mode, allowDirectProviderApi, guardrails, }: {
|
|
4
4
|
context: TaskContext;
|
|
5
5
|
runtime: RuntimeExecutionAdapter;
|
|
6
6
|
assignments: RuntimeDelegationAssignment[];
|
|
7
7
|
phasePlaybooks?: Record<string, PhasePlaybook>;
|
|
8
8
|
mode: RuntimeDelegationPacket["mode"];
|
|
9
9
|
allowDirectProviderApi: boolean;
|
|
10
|
+
guardrails: RuntimeDelegationGuardrailEvaluation;
|
|
10
11
|
}): string;
|
|
11
12
|
export declare function delegationAssignment(role: string, task: Task): RuntimeDelegationAssignment;
|
|
@@ -60,7 +60,7 @@ export function runtimeBriefContent(context, runtime, phasePlaybook) {
|
|
|
60
60
|
...toolPermissionLines(runtime),
|
|
61
61
|
].join("\n");
|
|
62
62
|
}
|
|
63
|
-
export function runtimeDelegationContent({ context, runtime, assignments, phasePlaybooks = {}, mode, allowDirectProviderApi, }) {
|
|
63
|
+
export function runtimeDelegationContent({ context, runtime, assignments, phasePlaybooks = {}, mode, allowDirectProviderApi, guardrails, }) {
|
|
64
64
|
return [
|
|
65
65
|
`# Runtime Subagent Delegation Packet: ${context.task.id}`,
|
|
66
66
|
"",
|
|
@@ -88,8 +88,11 @@ export function runtimeDelegationContent({ context, runtime, assignments, phaseP
|
|
|
88
88
|
"- Do not call OpenAI, Anthropic, or other vendor APIs from Orchestra for this delegation.",
|
|
89
89
|
"- Use the active runtime's own authenticated agent/subagent mechanism.",
|
|
90
90
|
"- If runtime-native delegation is unsupported, stop at this packet and ask the user for approval.",
|
|
91
|
+
"- Child agents must not spawn more agents unless nested delegation is explicitly approved.",
|
|
92
|
+
"- Close every delegated session with a summarized handoff; do not paste full transcripts into parent context.",
|
|
91
93
|
"- Avoid overlapping writes; respect ownership paths and active locks.",
|
|
92
94
|
"- Use `orchestra commands manifest --json` for supported commands and flags.",
|
|
95
|
+
...guardrailLines(guardrails),
|
|
93
96
|
"",
|
|
94
97
|
"## Tool Permission Policy",
|
|
95
98
|
...toolPermissionLines(runtime),
|
|
@@ -135,6 +138,21 @@ function toolPermissionLines(runtime) {
|
|
|
135
138
|
`- Warning: ${policy.warning}`,
|
|
136
139
|
];
|
|
137
140
|
}
|
|
141
|
+
function guardrailLines(evaluation) {
|
|
142
|
+
return [
|
|
143
|
+
`- Guardrail status: ${evaluation.status}`,
|
|
144
|
+
`- Requested spawns: ${evaluation.requestedSpawns}/${evaluation.policy.maxSpawnsPerTask}`,
|
|
145
|
+
`- Active delegates: ${evaluation.activeSessions}/${evaluation.policy.maxConcurrentDelegates}`,
|
|
146
|
+
`- Delegation depth: ${evaluation.delegationDepth}/${evaluation.policy.maxDelegationDepth}`,
|
|
147
|
+
`- Context budget: ${evaluation.contextBudgetTokens}/${evaluation.policy.contextBudgetTokens}`,
|
|
148
|
+
`- Spawn budget: ${evaluation.spawnBudgetTokens}`,
|
|
149
|
+
`- Timeout ms: ${evaluation.policy.timeoutMs}`,
|
|
150
|
+
`- Stale claim TTL ms: ${evaluation.policy.staleClaimTtlMs}`,
|
|
151
|
+
`- Nested delegation allowed: ${evaluation.policy.allowNestedDelegation}`,
|
|
152
|
+
`- Handoff max chars: ${evaluation.policy.handoffMaxChars}`,
|
|
153
|
+
`- Guardrail reasons: ${joinOrNone(evaluation.reasons)}`,
|
|
154
|
+
];
|
|
155
|
+
}
|
|
138
156
|
function joinOrNone(items) {
|
|
139
157
|
return items.length > 0 ? items.join(", ") : "none";
|
|
140
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-execution-renderer.js","sourceRoot":"","sources":["../src/runtime-execution-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-execution-renderer.js","sourceRoot":"","sources":["../src/runtime-execution-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,12 @@ export declare function renderRuntimeBrief({ taskId, runtime, tokenBudget, root,
|
|
|
17
17
|
tokenBudget?: number;
|
|
18
18
|
root?: string;
|
|
19
19
|
}): Promise<RuntimeBrief>;
|
|
20
|
-
export declare function renderRuntimeDelegationPacket({ taskId, runtime, roles, tokenBudget, root, }: {
|
|
20
|
+
export declare function renderRuntimeDelegationPacket({ taskId, runtime, roles, tokenBudget, delegationDepth, root, }: {
|
|
21
21
|
taskId: string;
|
|
22
22
|
runtime?: string;
|
|
23
23
|
roles: string[];
|
|
24
24
|
tokenBudget?: number;
|
|
25
|
+
delegationDepth?: number;
|
|
25
26
|
root?: string;
|
|
26
27
|
}): Promise<RuntimeDelegationPacket>;
|
|
27
28
|
export declare function recordRuntimeHandoff({ taskId, runtime, artifact, summary, sessionId, root, }: {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { getRuntimeExecutionAdapter, parseRuntimeExecutionId, } from "./runtime-adapters.js";
|
|
3
|
-
import {
|
|
3
|
+
import { uniqueNonEmptyStrings } from "./collection-utils.js";
|
|
4
|
+
import { appendEvent, readEvents, writeArtifact } from "./workspace.js";
|
|
4
5
|
import { loadPhasePlaybookForRole, loadPhasePlaybooksForRoles, } from "./phase-playbooks.js";
|
|
6
|
+
import { assertRuntimeDelegationAllowed, evaluateRuntimeDelegationGuardrails, normalizeRuntimeDelegationGuardrails, } from "./runtime-guardrails.js";
|
|
5
7
|
import { getTaskContext, getWorkflowConfig } from "./workflow-services.js";
|
|
6
8
|
import { delegationAssignment, runtimeBriefContent, runtimeDelegationContent, } from "./runtime-execution-renderer.js";
|
|
7
9
|
export async function selectRuntimeExecutionAdapter({ taskId, role, runtime, root = process.cwd(), }) {
|
|
@@ -84,9 +86,12 @@ export async function renderRuntimeBrief({ taskId, runtime, tokenBudget, root =
|
|
|
84
86
|
contextBudget: context.contextBudget,
|
|
85
87
|
};
|
|
86
88
|
}
|
|
87
|
-
export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, tokenBudget, root = process.cwd(), }) {
|
|
89
|
+
export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, tokenBudget, delegationDepth = 0, root = process.cwd(), }) {
|
|
90
|
+
const config = await getWorkflowConfig(root);
|
|
91
|
+
const policy = normalizedRuntimePolicy(config.runtimePolicy);
|
|
92
|
+
const guardrails = normalizeRuntimeDelegationGuardrails(policy.delegation.guardrails);
|
|
88
93
|
const context = await getTaskContext(taskId, root, {
|
|
89
|
-
|
|
94
|
+
tokenBudget: tokenBudget ?? guardrails.contextBudgetTokens,
|
|
90
95
|
});
|
|
91
96
|
const runtimeOption = runtime ? { runtime } : {};
|
|
92
97
|
const selected = await selectRuntimeExecutionAdapter({
|
|
@@ -95,13 +100,22 @@ export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, to
|
|
|
95
100
|
root,
|
|
96
101
|
...runtimeOption,
|
|
97
102
|
});
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
const requestedRoles = uniqueNonEmptyStrings(roles);
|
|
104
|
+
const guardrailEvaluation = evaluateRuntimeDelegationGuardrails({
|
|
105
|
+
policy: guardrails,
|
|
106
|
+
roles: requestedRoles,
|
|
107
|
+
events: await readEvents(root),
|
|
108
|
+
taskId,
|
|
109
|
+
delegationDepth,
|
|
110
|
+
contextBudgetTokens: context.contextBudget.tokenBudget,
|
|
111
|
+
});
|
|
112
|
+
assertRuntimeDelegationAllowed(guardrailEvaluation);
|
|
113
|
+
const assignments = requestedRoles.map((role) => delegationAssignment(role, context.task));
|
|
114
|
+
const phasePlaybooks = await loadPhasePlaybooksForRoles(root, requestedRoles);
|
|
102
115
|
const mode = selected.runtime.subagents.runtimeNative
|
|
103
116
|
? policy.delegation.mode
|
|
104
117
|
: "brief-only";
|
|
118
|
+
const sessionId = runtimeSessionId(taskId, selected.runtime.id);
|
|
105
119
|
const content = runtimeDelegationContent({
|
|
106
120
|
context,
|
|
107
121
|
runtime: selected.runtime,
|
|
@@ -109,6 +123,7 @@ export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, to
|
|
|
109
123
|
phasePlaybooks,
|
|
110
124
|
mode,
|
|
111
125
|
allowDirectProviderApi: policy.delegation.allowDirectProviderApi,
|
|
126
|
+
guardrails: guardrailEvaluation,
|
|
112
127
|
});
|
|
113
128
|
const artifact = await writeArtifact(root, "runs", `${taskId}-runtime-${selected.runtime.id}-delegation.md`, content);
|
|
114
129
|
await appendEvent(root, {
|
|
@@ -120,13 +135,29 @@ export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, to
|
|
|
120
135
|
metadata: {
|
|
121
136
|
runtime: selected.runtime.id,
|
|
122
137
|
mode,
|
|
123
|
-
roles,
|
|
138
|
+
roles: requestedRoles,
|
|
124
139
|
directProviderApiAllowed: false,
|
|
125
140
|
runtimeNativeSupported: selected.runtime.subagents.runtimeNative,
|
|
141
|
+
guardrails: guardrailEvaluation,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
await appendEvent(root, {
|
|
145
|
+
type: "RUNTIME_DELEGATION_SESSION_PLANNED",
|
|
146
|
+
taskId,
|
|
147
|
+
actor: "parent",
|
|
148
|
+
summary: `Runtime delegation session planned: ${selected.runtime.id}`,
|
|
149
|
+
artifacts: [artifact],
|
|
150
|
+
metadata: {
|
|
151
|
+
sessionId,
|
|
152
|
+
runtime: selected.runtime.id,
|
|
153
|
+
mode,
|
|
154
|
+
roles: requestedRoles,
|
|
155
|
+
guardrails: guardrailEvaluation,
|
|
126
156
|
},
|
|
127
157
|
});
|
|
128
158
|
return {
|
|
129
159
|
taskId,
|
|
160
|
+
sessionId,
|
|
130
161
|
runtime: selected.runtime.id,
|
|
131
162
|
artifact,
|
|
132
163
|
content,
|
|
@@ -135,24 +166,46 @@ export async function renderRuntimeDelegationPacket({ taskId, runtime, roles, to
|
|
|
135
166
|
assignments,
|
|
136
167
|
requiresApproval: !selected.runtime.subagents.runtimeNative,
|
|
137
168
|
contextBudget: context.contextBudget,
|
|
169
|
+
guardrails: guardrailEvaluation,
|
|
138
170
|
};
|
|
139
171
|
}
|
|
140
172
|
export async function recordRuntimeHandoff({ taskId, runtime, artifact, summary, sessionId, root = process.cwd(), }) {
|
|
141
173
|
const runtimeId = parseRuntimeExecutionId(runtime);
|
|
174
|
+
const effectiveSessionId = sessionId ?? runtimeSessionId(taskId, runtimeId);
|
|
175
|
+
const config = await getWorkflowConfig(root);
|
|
176
|
+
const guardrails = normalizeRuntimeDelegationGuardrails(config.runtimePolicy?.delegation?.guardrails);
|
|
177
|
+
const safeSummary = trimHandoffSummary(summary ?? `Runtime execution handoff recorded: ${runtimeId}`, guardrails.handoffMaxChars);
|
|
142
178
|
if (artifact)
|
|
143
179
|
assertWorkflowArtifactPath(artifact);
|
|
144
|
-
|
|
180
|
+
const event = await appendEvent(root, {
|
|
145
181
|
type: "RUNTIME_EXECUTION_HANDOFF_RECORDED",
|
|
146
182
|
taskId,
|
|
147
183
|
actor: "parent",
|
|
148
|
-
summary:
|
|
184
|
+
summary: safeSummary,
|
|
149
185
|
artifacts: artifact ? [artifact] : [],
|
|
150
186
|
metadata: {
|
|
151
187
|
runtime: runtimeId,
|
|
152
|
-
|
|
188
|
+
sessionId: effectiveSessionId,
|
|
153
189
|
directProviderApiAllowed: false,
|
|
190
|
+
handoffMaxChars: guardrails.handoffMaxChars,
|
|
191
|
+
truncated: safeSummary.length < (summary ?? "").length,
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
await appendEvent(root, {
|
|
195
|
+
type: "RUNTIME_DELEGATION_SESSION_CLOSED",
|
|
196
|
+
taskId,
|
|
197
|
+
actor: "parent",
|
|
198
|
+
summary: `Runtime delegation session closed: ${runtimeId}`,
|
|
199
|
+
artifacts: artifact ? [artifact] : [],
|
|
200
|
+
metadata: {
|
|
201
|
+
runtime: runtimeId,
|
|
202
|
+
sessionId: effectiveSessionId,
|
|
154
203
|
},
|
|
155
204
|
});
|
|
205
|
+
return event;
|
|
206
|
+
}
|
|
207
|
+
function runtimeSessionId(taskId, runtimeId) {
|
|
208
|
+
return `${taskId}:${runtimeId}`;
|
|
156
209
|
}
|
|
157
210
|
function selection(taskId, role, runtimeId, source) {
|
|
158
211
|
return {
|
|
@@ -171,6 +224,7 @@ function normalizedRuntimePolicy(policy) {
|
|
|
171
224
|
delegation: {
|
|
172
225
|
mode: policy?.delegation?.mode ?? "runtime-native",
|
|
173
226
|
allowDirectProviderApi: policy?.delegation?.allowDirectProviderApi ?? false,
|
|
227
|
+
guardrails: normalizeRuntimeDelegationGuardrails(policy?.delegation?.guardrails),
|
|
174
228
|
},
|
|
175
229
|
};
|
|
176
230
|
}
|
|
@@ -199,4 +253,10 @@ function assertWorkflowArtifactPath(artifact) {
|
|
|
199
253
|
throw new Error("runtime artifact must be workspace workflow-local");
|
|
200
254
|
}
|
|
201
255
|
}
|
|
256
|
+
function trimHandoffSummary(summary, maxChars) {
|
|
257
|
+
if (summary.length <= maxChars) {
|
|
258
|
+
return summary;
|
|
259
|
+
}
|
|
260
|
+
return (summary.slice(0, Math.max(0, maxChars - 14)).trimEnd() + "\n[truncated]");
|
|
261
|
+
}
|
|
202
262
|
//# sourceMappingURL=runtime-execution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-execution.js","sourceRoot":"","sources":["../src/runtime-execution.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-execution.js","sourceRoot":"","sources":["../src/runtime-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { EventEntry, RuntimeDelegationGuardrailEvaluation, RuntimeDelegationGuardrails, RuntimeDelegationOperationsReport, RuntimeDelegationSessionSummary } from "./types.js";
|
|
2
|
+
export declare const DEFAULT_RUNTIME_DELEGATION_GUARDRAILS: RuntimeDelegationGuardrails;
|
|
3
|
+
export declare function normalizeRuntimeDelegationGuardrails(guardrails: Partial<RuntimeDelegationGuardrails> | undefined): RuntimeDelegationGuardrails;
|
|
4
|
+
export declare function evaluateRuntimeDelegationGuardrails({ policy, roles, events, taskId, delegationDepth, contextBudgetTokens, }: {
|
|
5
|
+
policy: RuntimeDelegationGuardrails;
|
|
6
|
+
roles: string[];
|
|
7
|
+
events: EventEntry[];
|
|
8
|
+
taskId: string;
|
|
9
|
+
delegationDepth?: number;
|
|
10
|
+
contextBudgetTokens: number;
|
|
11
|
+
}): RuntimeDelegationGuardrailEvaluation;
|
|
12
|
+
export declare function summarizeRuntimeDelegationOperations({ policy, events, taskId, includeClosed, now, }: {
|
|
13
|
+
policy: RuntimeDelegationGuardrails;
|
|
14
|
+
events: EventEntry[];
|
|
15
|
+
taskId?: string;
|
|
16
|
+
includeClosed?: boolean;
|
|
17
|
+
now?: number;
|
|
18
|
+
}): RuntimeDelegationOperationsReport;
|
|
19
|
+
export declare function listRuntimeDelegationSessions({ policy, events, taskId, includeClosed, now, }: {
|
|
20
|
+
policy: RuntimeDelegationGuardrails;
|
|
21
|
+
events: EventEntry[];
|
|
22
|
+
taskId?: string;
|
|
23
|
+
includeClosed?: boolean;
|
|
24
|
+
now?: number;
|
|
25
|
+
}): RuntimeDelegationSessionSummary[];
|
|
26
|
+
export declare function assertRuntimeDelegationAllowed(evaluation: RuntimeDelegationGuardrailEvaluation): void;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { uniqueNonEmptyStrings } from "./collection-utils.js";
|
|
2
|
+
export const DEFAULT_RUNTIME_DELEGATION_GUARDRAILS = {
|
|
3
|
+
maxConcurrentDelegates: 3,
|
|
4
|
+
maxDelegationDepth: 1,
|
|
5
|
+
maxSpawnsPerTask: 3,
|
|
6
|
+
spawnBudgetTokens: 6000,
|
|
7
|
+
contextBudgetTokens: 3000,
|
|
8
|
+
timeoutMs: 600000,
|
|
9
|
+
staleClaimTtlMs: 1800000,
|
|
10
|
+
allowNestedDelegation: false,
|
|
11
|
+
limitAction: "queue",
|
|
12
|
+
handoffMaxChars: 4000,
|
|
13
|
+
};
|
|
14
|
+
const SESSION_STATUS_BY_EVENT = {
|
|
15
|
+
RUNTIME_DELEGATION_SESSION_PLANNED: "planned",
|
|
16
|
+
RUNTIME_DELEGATION_SESSION_SPAWNED: "spawned",
|
|
17
|
+
RUNTIME_DELEGATION_SESSION_HEARTBEAT: "active",
|
|
18
|
+
RUNTIME_DELEGATION_SESSION_SUSPENDED: "suspended",
|
|
19
|
+
RUNTIME_DELEGATION_SESSION_RESUMED: "active",
|
|
20
|
+
RUNTIME_DELEGATION_SESSION_COMPLETED: "completed",
|
|
21
|
+
RUNTIME_DELEGATION_SESSION_FAILED: "failed",
|
|
22
|
+
RUNTIME_DELEGATION_SESSION_TIMED_OUT: "timed_out",
|
|
23
|
+
RUNTIME_DELEGATION_SESSION_CANCELED: "canceled",
|
|
24
|
+
RUNTIME_DELEGATION_SESSION_CLOSED: "closed",
|
|
25
|
+
};
|
|
26
|
+
export function normalizeRuntimeDelegationGuardrails(guardrails) {
|
|
27
|
+
return {
|
|
28
|
+
...DEFAULT_RUNTIME_DELEGATION_GUARDRAILS,
|
|
29
|
+
...(guardrails ?? {}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function evaluateRuntimeDelegationGuardrails({ policy, roles, events, taskId, delegationDepth = 0, contextBudgetTokens, }) {
|
|
33
|
+
const requestedSpawns = uniqueNonEmptyStrings(roles).length;
|
|
34
|
+
const sessions = activeRuntimeDelegationSessions(events, taskId, policy);
|
|
35
|
+
const reasons = [];
|
|
36
|
+
if (!policy.allowNestedDelegation && delegationDepth > 0) {
|
|
37
|
+
reasons.push("nested delegation requires explicit policy approval");
|
|
38
|
+
}
|
|
39
|
+
if (delegationDepth > policy.maxDelegationDepth) {
|
|
40
|
+
reasons.push(`delegation depth ${delegationDepth} exceeds max ${policy.maxDelegationDepth}`);
|
|
41
|
+
}
|
|
42
|
+
if (requestedSpawns > policy.maxSpawnsPerTask) {
|
|
43
|
+
reasons.push(`requested spawns ${requestedSpawns} exceed max per task ${policy.maxSpawnsPerTask}`);
|
|
44
|
+
}
|
|
45
|
+
if (sessions.active.length + requestedSpawns >
|
|
46
|
+
policy.maxConcurrentDelegates) {
|
|
47
|
+
reasons.push(`active delegates ${sessions.active.length} plus requested ${requestedSpawns} exceed max concurrent ${policy.maxConcurrentDelegates}`);
|
|
48
|
+
}
|
|
49
|
+
if (contextBudgetTokens > policy.contextBudgetTokens) {
|
|
50
|
+
reasons.push(`context budget ${contextBudgetTokens} exceeds delegate budget ${policy.contextBudgetTokens}`);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
status: reasons.length === 0 ? "allow" : policy.limitAction,
|
|
54
|
+
reasons,
|
|
55
|
+
policy,
|
|
56
|
+
activeSessions: sessions.active.length,
|
|
57
|
+
requestedSpawns,
|
|
58
|
+
delegationDepth,
|
|
59
|
+
contextBudgetTokens,
|
|
60
|
+
spawnBudgetTokens: policy.spawnBudgetTokens,
|
|
61
|
+
staleSessions: sessions.stale,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export function summarizeRuntimeDelegationOperations({ policy, events, taskId, includeClosed = false, now = Date.now(), }) {
|
|
65
|
+
const sessions = listRuntimeDelegationSessions({
|
|
66
|
+
policy,
|
|
67
|
+
events,
|
|
68
|
+
includeClosed,
|
|
69
|
+
now,
|
|
70
|
+
...(taskId ? { taskId } : {}),
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
generatedAt: new Date(now).toISOString(),
|
|
74
|
+
...(taskId ? { taskId } : {}),
|
|
75
|
+
policy,
|
|
76
|
+
counts: {
|
|
77
|
+
total: sessions.length,
|
|
78
|
+
active: sessions.filter((session) => session.active).length,
|
|
79
|
+
stale: sessions.filter((session) => session.stale).length,
|
|
80
|
+
suspended: sessions.filter((session) => session.status === "suspended")
|
|
81
|
+
.length,
|
|
82
|
+
terminal: sessions.filter((session) => isTerminalStatus(session.status))
|
|
83
|
+
.length,
|
|
84
|
+
},
|
|
85
|
+
sessions,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function listRuntimeDelegationSessions({ policy, events, taskId, includeClosed = false, now = Date.now(), }) {
|
|
89
|
+
const sessions = new Map();
|
|
90
|
+
for (const event of events) {
|
|
91
|
+
if (taskId && event.taskId !== taskId) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const sessionId = sessionIdFromEvent(event);
|
|
95
|
+
const status = SESSION_STATUS_BY_EVENT[event.type];
|
|
96
|
+
if (!sessionId || !status || !event.taskId) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const ageMs = Math.max(0, now - Date.parse(event.timestamp));
|
|
100
|
+
const active = isActiveStatus(status);
|
|
101
|
+
const runtime = stringMetadata(event, "runtime");
|
|
102
|
+
const mode = modeMetadata(event);
|
|
103
|
+
sessions.set(sessionId, {
|
|
104
|
+
sessionId,
|
|
105
|
+
taskId: event.taskId,
|
|
106
|
+
...(runtime ? { runtime } : {}),
|
|
107
|
+
...(mode ? { mode } : {}),
|
|
108
|
+
roles: stringArrayMetadata(event, "roles"),
|
|
109
|
+
status,
|
|
110
|
+
lastEventType: event.type,
|
|
111
|
+
updatedAt: event.timestamp,
|
|
112
|
+
ageMs,
|
|
113
|
+
active,
|
|
114
|
+
stale: active && Number.isFinite(ageMs) && ageMs > policy.staleClaimTtlMs,
|
|
115
|
+
artifacts: event.artifacts ?? [],
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return [...sessions.values()]
|
|
119
|
+
.filter((session) => includeClosed || session.status !== "closed")
|
|
120
|
+
.sort((left, right) => right.updatedAt.localeCompare(left.updatedAt));
|
|
121
|
+
}
|
|
122
|
+
export function assertRuntimeDelegationAllowed(evaluation) {
|
|
123
|
+
if (evaluation.status === "allow") {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
throw new Error(`runtime delegation ${evaluation.status}: ${evaluation.reasons.join("; ")}`);
|
|
127
|
+
}
|
|
128
|
+
function activeRuntimeDelegationSessions(events, taskId, policy) {
|
|
129
|
+
const sessions = listRuntimeDelegationSessions({ policy, events, taskId });
|
|
130
|
+
const active = sessions
|
|
131
|
+
.filter((session) => session.active && !session.stale)
|
|
132
|
+
.map((session) => session.sessionId);
|
|
133
|
+
const stale = sessions
|
|
134
|
+
.filter((session) => session.stale)
|
|
135
|
+
.map((session) => session.sessionId);
|
|
136
|
+
return { active, stale };
|
|
137
|
+
}
|
|
138
|
+
function sessionIdFromEvent(event) {
|
|
139
|
+
const value = event.metadata.sessionId;
|
|
140
|
+
return typeof value === "string" && value.trim() ? value : undefined;
|
|
141
|
+
}
|
|
142
|
+
function stringMetadata(event, key) {
|
|
143
|
+
const value = event.metadata[key];
|
|
144
|
+
return typeof value === "string" && value.trim() ? value : undefined;
|
|
145
|
+
}
|
|
146
|
+
function stringArrayMetadata(event, key) {
|
|
147
|
+
const value = event.metadata[key];
|
|
148
|
+
return Array.isArray(value)
|
|
149
|
+
? value.filter((item) => typeof item === "string")
|
|
150
|
+
: [];
|
|
151
|
+
}
|
|
152
|
+
function modeMetadata(event) {
|
|
153
|
+
const value = event.metadata.mode;
|
|
154
|
+
return value === "runtime-native" || value === "brief-only"
|
|
155
|
+
? value
|
|
156
|
+
: undefined;
|
|
157
|
+
}
|
|
158
|
+
function isActiveStatus(status) {
|
|
159
|
+
return status === "planned" || status === "spawned" || status === "active";
|
|
160
|
+
}
|
|
161
|
+
function isTerminalStatus(status) {
|
|
162
|
+
return (status === "completed" ||
|
|
163
|
+
status === "failed" ||
|
|
164
|
+
status === "timed_out" ||
|
|
165
|
+
status === "canceled" ||
|
|
166
|
+
status === "closed");
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=runtime-guardrails.js.map
|