@polpo-ai/core 0.10.3 → 0.10.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/README.md +51 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/loop/code.d.ts +11 -0
- package/dist/loop/code.d.ts.map +1 -0
- package/dist/loop/code.js +15 -0
- package/dist/loop/code.js.map +1 -0
- package/dist/loop/contract.test.js +19 -0
- package/dist/loop/contract.test.js.map +1 -1
- package/dist/loop/pipeline.d.ts +5 -1
- package/dist/loop/pipeline.d.ts.map +1 -1
- package/dist/loop/pipeline.js +105 -4
- package/dist/loop/pipeline.js.map +1 -1
- package/dist/loop/pipeline.test.js +58 -0
- package/dist/loop/pipeline.test.js.map +1 -1
- package/dist/loop/run-store.d.ts +97 -0
- package/dist/loop/run-store.d.ts.map +1 -0
- package/dist/loop/run-store.js +127 -0
- package/dist/loop/run-store.js.map +1 -0
- package/dist/loop/run-store.test.d.ts +2 -0
- package/dist/loop/run-store.test.d.ts.map +1 -0
- package/dist/loop/run-store.test.js +36 -0
- package/dist/loop/run-store.test.js.map +1 -0
- package/dist/loop/types.d.ts +23 -1
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/types.js.map +1 -1
- package/dist/schemas.d.ts +92 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +18 -0
- package/dist/schemas.js.map +1 -1
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -8,6 +8,57 @@ Pure business logic, types, schemas, and store interfaces for the [Polpo](https:
|
|
|
8
8
|
npm install @polpo-ai/core
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Agentic loops
|
|
12
|
+
|
|
13
|
+
Use `defineProjectLoop` for code-first loop definitions that compile to the same JSON-compatible contract used by the API, CLI, dashboard, and runtime:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { defineProjectLoop } from "@polpo-ai/core/loop-code";
|
|
17
|
+
|
|
18
|
+
export default defineProjectLoop({
|
|
19
|
+
version: "1",
|
|
20
|
+
kind: "graph",
|
|
21
|
+
name: "support-flow",
|
|
22
|
+
context: "shared",
|
|
23
|
+
permissions: [
|
|
24
|
+
{
|
|
25
|
+
id: "support-tools",
|
|
26
|
+
resource: "tool",
|
|
27
|
+
action: "call",
|
|
28
|
+
effect: "allow",
|
|
29
|
+
match: { tool: ["read", "search_docs"] },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "refund-approval",
|
|
33
|
+
resource: "tool",
|
|
34
|
+
action: "call",
|
|
35
|
+
effect: "approval",
|
|
36
|
+
match: { tool: "issue_refund" },
|
|
37
|
+
message: "Refunds require human approval.",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
start: "triage",
|
|
41
|
+
steps: {
|
|
42
|
+
triage: {
|
|
43
|
+
type: "agent",
|
|
44
|
+
systemPrompt: "Classify the support request.",
|
|
45
|
+
tools: ["read"],
|
|
46
|
+
next: "end",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Runtime hosts can persist governance/audit data by wiring `LoopRunStore`:
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
import { MemoryLoopRunStore } from "@polpo-ai/core/loop-run-store";
|
|
56
|
+
|
|
57
|
+
const loopRunStore = new MemoryLoopRunStore();
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`PipelineExecutor` emits typed `LoopPermissionDeniedError`, `LoopPermissionApprovalRequiredError`, `LoopPolicyDeniedError`, and `LoopApprovalRequiredError`, plus structured trace events such as `permission.result`, `policy.result`, and `approval.required`. Hosts can map those records to audit logs, approval queues, compliance dashboards, or their own GRC surface.
|
|
61
|
+
|
|
11
62
|
## License
|
|
12
63
|
|
|
13
64
|
Apache 2.0
|
package/dist/index.d.ts
CHANGED
|
@@ -61,9 +61,10 @@ export type { CompactionConfig, CompactionEvent, OnCompactionFn, SummarizeFn, Co
|
|
|
61
61
|
export { EVENT_CATALOG } from "./events-catalog.js";
|
|
62
62
|
export type { EventCatalogGroup, EventCatalogEntry } from "./events-catalog.js";
|
|
63
63
|
export { evaluateExpression, SafeExpressionEvaluator } from "./loop/expression.js";
|
|
64
|
-
export type { AgentLoopConfig, ContextBag, LoopConfig, LoopHookAction, LoopLifecycleHook, LoopNext, LoopPolicyEffect, LoopStepConfig, LoopTraceEvent, LoopTraceEventType, LoopToolChoice, Pipeline, ProjectLoopConfig, ProjectLoopHooks, ProjectLoopKind, ProjectLoopPolicy, ProjectLoopVersion, Step, SwitchCase, Condition, ToolLoopStep, } from "./loop/types.js";
|
|
64
|
+
export type { AgentLoopConfig, ContextBag, LoopConfig, LoopHookAction, LoopLifecycleHook, LoopNext, LoopPermissionEffect, LoopPermissionMatch, LoopPermissionResource, LoopPolicyEffect, LoopStepConfig, LoopTraceEvent, LoopTraceEventType, LoopToolChoice, Pipeline, ProjectLoopConfig, ProjectLoopHooks, ProjectLoopKind, ProjectLoopPermission, ProjectLoopPolicy, ProjectLoopVersion, Step, SwitchCase, Condition, ToolLoopStep, } from "./loop/types.js";
|
|
65
65
|
export { LOOP_LIFECYCLE_HOOKS, isLoopStep, isToolStep, isParallelStep, isSwitchStep, isHumanStep } from "./loop/types.js";
|
|
66
66
|
export { normalizeProjectLoop } from "./loop/normalize.js";
|
|
67
|
+
export { defineLoop, defineProjectLoop } from "./loop/code.js";
|
|
67
68
|
export { LoopHookRegistry } from "./loop/hooks.js";
|
|
68
69
|
export type { LoopBeforeHookResult, LoopHook, LoopHookContext, LoopHookHandler, LoopHookPayloads, LoopHookPhase, LoopHookRegistration, LoopRunStatus, LoopRuntimeConfig, LoopStopReason, LoopToolCall, LoopToolResult, } from "./loop/hooks.js";
|
|
69
70
|
export { LoopRunner } from "./loop/runner.js";
|
|
@@ -72,4 +73,6 @@ export { resolveLoopSelection, resolveActiveLoopTools, resolveActiveLoopSkills }
|
|
|
72
73
|
export type { LoopSelection } from "./loop/selector.js";
|
|
73
74
|
export { PipelineExecutor } from "./loop/pipeline.js";
|
|
74
75
|
export type { PipelineExecutionResult, PipelineExecutorOptions, PipelineHumanResult, PipelineLoopResult, PipelineToolResult, PipelineTraceEvent, } from "./loop/pipeline.js";
|
|
76
|
+
export { LoopApprovalRequiredError, LoopPermissionApprovalRequiredError, LoopPermissionDeniedError, LoopPolicyDeniedError, MemoryLoopRunStore, } from "./loop/run-store.js";
|
|
77
|
+
export type { CreateLoopRunInput, LoopApprovalSnapshot, LoopRunListFilter, LoopRunRecord, ProjectLoopRunStatus, LoopRunStore, } from "./loop/run-store.js";
|
|
75
78
|
//# sourceMappingURL=index.d.ts.map
|
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
|
@@ -50,8 +50,10 @@ export { EVENT_CATALOG } from "./events-catalog.js";
|
|
|
50
50
|
export { evaluateExpression, SafeExpressionEvaluator } from "./loop/expression.js";
|
|
51
51
|
export { LOOP_LIFECYCLE_HOOKS, isLoopStep, isToolStep, isParallelStep, isSwitchStep, isHumanStep } from "./loop/types.js";
|
|
52
52
|
export { normalizeProjectLoop } from "./loop/normalize.js";
|
|
53
|
+
export { defineLoop, defineProjectLoop } from "./loop/code.js";
|
|
53
54
|
export { LoopHookRegistry } from "./loop/hooks.js";
|
|
54
55
|
export { LoopRunner } from "./loop/runner.js";
|
|
55
56
|
export { resolveLoopSelection, resolveActiveLoopTools, resolveActiveLoopSkills } from "./loop/selector.js";
|
|
56
57
|
export { PipelineExecutor } from "./loop/pipeline.js";
|
|
58
|
+
export { LoopApprovalRequiredError, LoopPermissionApprovalRequiredError, LoopPermissionDeniedError, LoopPolicyDeniedError, MemoryLoopRunStore, } from "./loop/run-store.js";
|
|
57
59
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ProjectLoopConfig } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Code-first loop definition helper.
|
|
4
|
+
*
|
|
5
|
+
* This intentionally returns the canonical JSON-compatible ProjectLoopConfig:
|
|
6
|
+
* developers can keep loops in TypeScript with type checking, while the runtime,
|
|
7
|
+
* dashboard, API, and audit logs keep one declarative contract.
|
|
8
|
+
*/
|
|
9
|
+
export declare function defineProjectLoop(config: ProjectLoopConfig): ProjectLoopConfig;
|
|
10
|
+
export declare function defineLoop(config: ProjectLoopConfig): ProjectLoopConfig;
|
|
11
|
+
//# sourceMappingURL=code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/loop/code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAE9E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAEvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { projectLoopConfigSchema } from "../schemas.js";
|
|
2
|
+
/**
|
|
3
|
+
* Code-first loop definition helper.
|
|
4
|
+
*
|
|
5
|
+
* This intentionally returns the canonical JSON-compatible ProjectLoopConfig:
|
|
6
|
+
* developers can keep loops in TypeScript with type checking, while the runtime,
|
|
7
|
+
* dashboard, API, and audit logs keep one declarative contract.
|
|
8
|
+
*/
|
|
9
|
+
export function defineProjectLoop(config) {
|
|
10
|
+
return projectLoopConfigSchema.parse(config);
|
|
11
|
+
}
|
|
12
|
+
export function defineLoop(config) {
|
|
13
|
+
return defineProjectLoop(config);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/loop/code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,OAAO,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAsB,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB;IAClD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -129,6 +129,23 @@ describe("agentLoopConfigSchema", () => {
|
|
|
129
129
|
},
|
|
130
130
|
],
|
|
131
131
|
},
|
|
132
|
+
permissions: [
|
|
133
|
+
{
|
|
134
|
+
id: "tools-allowlist",
|
|
135
|
+
resource: "tool",
|
|
136
|
+
action: "call",
|
|
137
|
+
effect: "allow",
|
|
138
|
+
match: { tool: ["read", "policy_check", "audit_log"] },
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: "approval-for-write",
|
|
142
|
+
resource: "tool",
|
|
143
|
+
action: "call",
|
|
144
|
+
effect: "approval",
|
|
145
|
+
match: { tool: "write" },
|
|
146
|
+
message: "Writing requires human approval.",
|
|
147
|
+
},
|
|
148
|
+
],
|
|
132
149
|
policies: [
|
|
133
150
|
{
|
|
134
151
|
id: "deny-dangerous-bash",
|
|
@@ -150,6 +167,8 @@ describe("agentLoopConfigSchema", () => {
|
|
|
150
167
|
expect(loop.version).toBe("1");
|
|
151
168
|
expect(loop.kind).toBe("graph");
|
|
152
169
|
expect(loop.hooks?.["tool:before"]?.[0]?.tool).toBe("policy_check");
|
|
170
|
+
expect(loop.permissions?.[0]?.resource).toBe("tool");
|
|
171
|
+
expect(loop.permissions?.[1]?.effect).toBe("approval");
|
|
153
172
|
expect(loop.policies?.[0]?.effect).toBe("deny");
|
|
154
173
|
expect(normalizeProjectLoop(loop).pipeline?.steps).toEqual([{ loop: "work" }]);
|
|
155
174
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../../src/loop/contract.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../../src/loop/contract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/loop/pipeline.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LoopHookRegistry } from "./hooks.js";
|
|
2
|
-
import { type ContextBag, type LoopConfig, type ProjectLoopHooks, type ProjectLoopPolicy, type LoopTraceEvent, type Pipeline, type Step } from "./types.js";
|
|
2
|
+
import { type ContextBag, type LoopConfig, type ProjectLoopHooks, type ProjectLoopPolicy, type LoopTraceEvent, type Pipeline, type ProjectLoopPermission, type Step } from "./types.js";
|
|
3
3
|
export interface PipelineLoopResult {
|
|
4
4
|
output?: unknown;
|
|
5
5
|
context?: ContextBag;
|
|
@@ -30,6 +30,7 @@ export interface PipelineExecutorOptions {
|
|
|
30
30
|
context?: ContextBag;
|
|
31
31
|
hooks?: LoopHookRegistry;
|
|
32
32
|
projectHooks?: ProjectLoopHooks;
|
|
33
|
+
projectPermissions?: ProjectLoopPermission[];
|
|
33
34
|
projectPolicies?: ProjectLoopPolicy[];
|
|
34
35
|
onTrace?: (event: LoopTraceEvent) => void | Promise<void>;
|
|
35
36
|
runLoop: (name: string, loop: LoopConfig, context: Readonly<ContextBag>) => Promise<PipelineLoopResult>;
|
|
@@ -48,7 +49,10 @@ export declare class PipelineExecutor {
|
|
|
48
49
|
private runTransitionHook;
|
|
49
50
|
private runLifecyclePoint;
|
|
50
51
|
private runHookAction;
|
|
52
|
+
private enforcePermissions;
|
|
51
53
|
private enforcePolicies;
|
|
52
54
|
private policyContext;
|
|
55
|
+
private permissionAppliesToHook;
|
|
56
|
+
private matchesPermission;
|
|
53
57
|
}
|
|
54
58
|
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/loop/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/loop/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAOnD,OAAO,EAML,KAAK,UAAU,EACf,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9I,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrI;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAErD,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAoCnE,YAAY;IAoG1B,OAAO,CAAC,WAAW;YAKL,iBAAiB;YA0BjB,iBAAiB;YAiBjB,aAAa;YAsDb,kBAAkB;YA0DlB,eAAe;IAmD7B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,iBAAiB;CAc1B"}
|
package/dist/loop/pipeline.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SafeExpressionEvaluator } from "./expression.js";
|
|
2
|
+
import { LoopApprovalRequiredError, LoopPermissionApprovalRequiredError, LoopPermissionDeniedError, LoopPolicyDeniedError, } from "./run-store.js";
|
|
2
3
|
import { isHumanStep, isLoopStep, isParallelStep, isSwitchStep, isToolStep, } from "./types.js";
|
|
3
4
|
export class PipelineExecutor {
|
|
4
5
|
evaluator = new SafeExpressionEvaluator();
|
|
@@ -153,7 +154,8 @@ export class PipelineExecutor {
|
|
|
153
154
|
await state.emit({ type: "transition", from, to, status: "completed" });
|
|
154
155
|
}
|
|
155
156
|
async runLifecyclePoint(hook, context, options, state, payload = {}) {
|
|
156
|
-
this.
|
|
157
|
+
await this.enforcePermissions(hook, context, options.projectPermissions ?? [], payload, state);
|
|
158
|
+
await this.enforcePolicies(hook, context, options.projectPolicies ?? [], payload, state);
|
|
157
159
|
const actions = options.projectHooks?.[hook] ?? [];
|
|
158
160
|
for (const action of actions) {
|
|
159
161
|
if (!this.matchesWhen(action.when, this.policyContext(context, hook, payload)))
|
|
@@ -205,7 +207,50 @@ export class PipelineExecutor {
|
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
209
|
}
|
|
208
|
-
|
|
210
|
+
async enforcePermissions(hook, context, permissions, payload, state) {
|
|
211
|
+
const relevant = permissions.filter((permission) => this.permissionAppliesToHook(permission, hook, payload));
|
|
212
|
+
if (relevant.length === 0)
|
|
213
|
+
return;
|
|
214
|
+
const policyContext = this.policyContext(context, hook, payload);
|
|
215
|
+
const allowPermissions = relevant.filter((permission) => permission.effect === "allow");
|
|
216
|
+
let allowMatched = false;
|
|
217
|
+
for (const permission of relevant) {
|
|
218
|
+
const matched = this.matchesPermission(permission, hook, policyContext, payload);
|
|
219
|
+
await state.emit({
|
|
220
|
+
type: "permission.result",
|
|
221
|
+
status: matched ? "completed" : "skipped",
|
|
222
|
+
data: {
|
|
223
|
+
permissionId: permission.id,
|
|
224
|
+
effect: permission.effect,
|
|
225
|
+
resource: permission.resource,
|
|
226
|
+
action: permission.action,
|
|
227
|
+
hook,
|
|
228
|
+
matched,
|
|
229
|
+
},
|
|
230
|
+
});
|
|
231
|
+
if (!matched)
|
|
232
|
+
continue;
|
|
233
|
+
if (permission.effect === "allow") {
|
|
234
|
+
allowMatched = true;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
const id = permission.id ?? "anonymous";
|
|
238
|
+
const suffix = permission.message ? `: ${permission.message}` : "";
|
|
239
|
+
if (permission.effect === "deny") {
|
|
240
|
+
throw new LoopPermissionDeniedError(permission, hook, payload, `Loop permission "${id}" denied ${hook}${suffix}`);
|
|
241
|
+
}
|
|
242
|
+
await state.emit({
|
|
243
|
+
type: "approval.required",
|
|
244
|
+
status: "started",
|
|
245
|
+
data: { type: "permission", permissionId: id, hook, payload },
|
|
246
|
+
});
|
|
247
|
+
throw new LoopPermissionApprovalRequiredError(permission, hook, { ...context }, payload, `Loop permission "${id}" requires approval at ${hook}${suffix}`);
|
|
248
|
+
}
|
|
249
|
+
if (allowPermissions.length > 0 && !allowMatched) {
|
|
250
|
+
throw new LoopPermissionDeniedError(allowPermissions[0], hook, payload, `Loop permission allow-list blocked ${hook}: no allow permission matched`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
async enforcePolicies(hook, context, policies, payload, state) {
|
|
209
254
|
const relevant = policies.filter((policy) => (policy.hook ?? "tool:before") === hook);
|
|
210
255
|
if (relevant.length === 0)
|
|
211
256
|
return;
|
|
@@ -214,6 +259,16 @@ export class PipelineExecutor {
|
|
|
214
259
|
let allowMatched = false;
|
|
215
260
|
for (const policy of relevant) {
|
|
216
261
|
const matched = this.matchesWhen(policy.when, policyContext);
|
|
262
|
+
await state.emit({
|
|
263
|
+
type: "policy.result",
|
|
264
|
+
status: matched ? "completed" : "skipped",
|
|
265
|
+
data: {
|
|
266
|
+
policyId: policy.id,
|
|
267
|
+
effect: policy.effect,
|
|
268
|
+
hook,
|
|
269
|
+
matched,
|
|
270
|
+
},
|
|
271
|
+
});
|
|
217
272
|
if (!matched)
|
|
218
273
|
continue;
|
|
219
274
|
if (policy.effect === "allow") {
|
|
@@ -223,9 +278,14 @@ export class PipelineExecutor {
|
|
|
223
278
|
const id = policy.id ?? "anonymous";
|
|
224
279
|
const suffix = policy.message ? `: ${policy.message}` : "";
|
|
225
280
|
if (policy.effect === "deny") {
|
|
226
|
-
throw new
|
|
281
|
+
throw new LoopPolicyDeniedError(policy, hook, payload, `Loop policy "${id}" denied ${hook}${suffix}`);
|
|
227
282
|
}
|
|
228
|
-
|
|
283
|
+
await state.emit({
|
|
284
|
+
type: "approval.required",
|
|
285
|
+
status: "started",
|
|
286
|
+
data: { type: "policy", policyId: id, hook, payload },
|
|
287
|
+
});
|
|
288
|
+
throw new LoopApprovalRequiredError(policy, hook, { ...context }, payload, `Loop policy "${id}" requires approval at ${hook}${suffix}`);
|
|
229
289
|
}
|
|
230
290
|
if (allowPolicies.length > 0 && !allowMatched) {
|
|
231
291
|
throw new Error(`Loop policy allow-list blocked ${hook}: no allow policy matched`);
|
|
@@ -238,6 +298,47 @@ export class PipelineExecutor {
|
|
|
238
298
|
...payload,
|
|
239
299
|
};
|
|
240
300
|
}
|
|
301
|
+
permissionAppliesToHook(permission, hook, payload) {
|
|
302
|
+
if ((permission.match?.hook && !matchesName(permission.match.hook, hook)) || defaultHookForResource(permission.resource) !== hook) {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
if (permission.resource === "tool" && !payload.tool)
|
|
306
|
+
return false;
|
|
307
|
+
if (permission.resource === "step" && !payload.step)
|
|
308
|
+
return false;
|
|
309
|
+
if (permission.resource === "model" && !payload.step)
|
|
310
|
+
return false;
|
|
311
|
+
if (permission.resource === "human" && !payload.step?.type?.includes?.("human") && !payload.human)
|
|
312
|
+
return false;
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
matchesPermission(permission, hook, policyContext, payload) {
|
|
316
|
+
const match = permission.match;
|
|
317
|
+
if (match?.hook && !matchesName(match.hook, hook))
|
|
318
|
+
return false;
|
|
319
|
+
if (match?.loop && !matchesName(match.loop, String(payload.loop && typeof payload.loop === "object" ? payload.loop.name : policyContext.loop ?? "")))
|
|
320
|
+
return false;
|
|
321
|
+
if (match?.step && !matchesName(match.step, String(payload.step?.name ?? "")))
|
|
322
|
+
return false;
|
|
323
|
+
if (match?.tool && !matchesName(match.tool, String(payload.tool?.name ?? "")))
|
|
324
|
+
return false;
|
|
325
|
+
if (match?.human && !matchesName(match.human, String(payload.human?.name ?? payload.step?.name ?? "")))
|
|
326
|
+
return false;
|
|
327
|
+
return permission.when ? this.matchesWhen(permission.when, policyContext) : true;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
function defaultHookForResource(resource) {
|
|
331
|
+
switch (resource) {
|
|
332
|
+
case "loop": return "loop:start";
|
|
333
|
+
case "step": return "step:before";
|
|
334
|
+
case "model": return "model:before";
|
|
335
|
+
case "tool": return "tool:before";
|
|
336
|
+
case "human": return "step:before";
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
function matchesName(pattern, value) {
|
|
340
|
+
const patterns = Array.isArray(pattern) ? pattern : [pattern];
|
|
341
|
+
return patterns.some((item) => item === "*" || item === value);
|
|
241
342
|
}
|
|
242
343
|
function freezeContext(context) {
|
|
243
344
|
return Object.freeze({ ...context });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/loop/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,GAUX,MAAM,YAAY,CAAC;AAkDpB,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,OAAgC;QAC5C,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAyB,EAAE,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,KAAK,GAA2B;YACpC,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE;YACtC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACpB,MAAM,IAAI,GAAmB;oBAC3B,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE;oBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,GAAG,KAAK;iBACT,CAAC;gBACF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;SACF,CAAC;QAEF,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACzH,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,KAAa,EACb,OAAmB,EACnB,KAA2B,EAC3B,OAAgC,EAChC,KAA6B,EAC7B,YAAqB;QAErB,IAAI,QAAQ,GAAG,YAAY,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9D,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,SAAS;YACX,CAAC;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACnH,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACpH,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9E,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACzI,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAC;gBACnG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;gBAC1C,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/J,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/J,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/H,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC1F,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrL,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrL,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;wBAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;wBACjE,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAC3F,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC1G,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;gBACvH,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACxE,MAAM,aAAa,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;oBACtC,MAAM,WAAW,GAAyB,EAAE,CAAC;oBAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC7E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;gBACxC,CAAC,CAAC,CAAC,CAAC;gBACJ,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;gBACtH,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,WAAW;oBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,KAAK,4BAA4B,CAAC,CAAC;gBAC1G,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACpH,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1I,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5H,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,UAA8B,EAAE,OAAmB;QACrE,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,IAAwB,EACxB,EAAU,EACV,OAAmB,EACnB,OAAgC,EAChC,KAA6B;QAE7B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE;YAC9D,IAAI;YACJ,EAAE;YACF,OAAO;SACR,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,SAAS,EAAE,cAAc,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjI,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,IAAuB,EACvB,OAAmB,EACnB,OAAgC,EAChC,KAA6B,EAC7B,UAAmC,EAAE;QAErC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAAE,SAAS;YACzF,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,IAAuB,EACvB,MAAsB,EACtB,OAAmB,EACnB,OAAgC,EAChC,KAA6B,EAC7B,OAAgC;QAEhC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,MAAM,CAAC,IAAI,2BAA2B,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,IAAI,GAAoC;YAC5C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,MAAM,KAAK,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI;YAClC,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;SACtC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9F,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI;gBAClC,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI;gBAClC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;aACtC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,MAAM,CAAC,IAAI,aAAa,OAAO,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,IAAuB,EACvB,OAAmB,EACnB,QAA6B,EAC7B,OAAgC;QAEhC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC;QACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;QAC7E,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,YAAY,GAAG,IAAI,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,WAAW,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,YAAY,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,0BAA0B,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,2BAA2B,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAmB,EAAE,IAAuB,EAAE,OAAgC;QAClG,OAAO;YACL,GAAG,OAAO;YACV,IAAI;YACJ,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;CACF;AAED,SAAS,aAAa,CAAC,OAAmB;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB,EAAE,IAAY,EAAE,KAAc;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,IAAI,MAAM,GAA4B,OAAO,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,IAAI,CAA4B,CAAC;IACnD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB,EAAE,IAAY,EAAE,MAAqE;IAC/H,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB,EAAE,IAAY,EAAE,MAAgD;IAC1G,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/loop/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import { LoopHookRegistry } from "./hooks.js";
|
|
3
3
|
import { PipelineExecutor } from "./pipeline.js";
|
|
4
|
+
import { LoopApprovalRequiredError, LoopPermissionApprovalRequiredError, LoopPermissionDeniedError, LoopPolicyDeniedError, } from "./run-store.js";
|
|
4
5
|
describe("PipelineExecutor", () => {
|
|
5
6
|
it("runs sequential loop steps and accumulates context by loop name", async () => {
|
|
6
7
|
const executor = new PipelineExecutor();
|
|
@@ -72,6 +73,23 @@ describe("PipelineExecutor", () => {
|
|
|
72
73
|
});
|
|
73
74
|
expect(result.context.underwriter).toEqual({ decision: "approve" });
|
|
74
75
|
});
|
|
76
|
+
it("throws typed errors for deny and approval policies", async () => {
|
|
77
|
+
const executor = new PipelineExecutor();
|
|
78
|
+
await expect(executor.execute({
|
|
79
|
+
loops: {},
|
|
80
|
+
pipeline: { steps: [{ tool: "deploy" }] },
|
|
81
|
+
projectPolicies: [{ id: "no-deploy", hook: "tool:before", effect: "deny", when: "tool.name == 'deploy'" }],
|
|
82
|
+
runLoop: async () => ({ output: {} }),
|
|
83
|
+
runTool: async () => ({ output: "deployed" }),
|
|
84
|
+
})).rejects.toBeInstanceOf(LoopPolicyDeniedError);
|
|
85
|
+
await expect(executor.execute({
|
|
86
|
+
loops: {},
|
|
87
|
+
pipeline: { steps: [{ tool: "send_email" }] },
|
|
88
|
+
projectPolicies: [{ id: "approve-send", hook: "tool:before", effect: "approval", when: "tool.name == 'send_email'" }],
|
|
89
|
+
runLoop: async () => ({ output: {} }),
|
|
90
|
+
runTool: async () => ({ output: "sent" }),
|
|
91
|
+
})).rejects.toBeInstanceOf(LoopApprovalRequiredError);
|
|
92
|
+
});
|
|
75
93
|
it("runs deterministic tool steps and stores output at saveAs path", async () => {
|
|
76
94
|
const executor = new PipelineExecutor();
|
|
77
95
|
const result = await executor.execute({
|
|
@@ -286,5 +304,45 @@ describe("PipelineExecutor", () => {
|
|
|
286
304
|
runLoop: async () => ({ output: {} }),
|
|
287
305
|
})).rejects.toThrow('Loop policy allow-list blocked tool:before: no allow policy matched');
|
|
288
306
|
});
|
|
307
|
+
it("enforces project permissions before tool execution", async () => {
|
|
308
|
+
const executor = new PipelineExecutor();
|
|
309
|
+
const calls = [];
|
|
310
|
+
const allowed = await executor.execute({
|
|
311
|
+
loops: {},
|
|
312
|
+
pipeline: { steps: [{ tool: "unix_time", saveAs: "time" }] },
|
|
313
|
+
projectPermissions: [
|
|
314
|
+
{ id: "tool-allowlist", resource: "tool", action: "call", effect: "allow", match: { tool: ["unix_time"] } },
|
|
315
|
+
],
|
|
316
|
+
runTool: async (name) => {
|
|
317
|
+
calls.push(name);
|
|
318
|
+
return { output: 123 };
|
|
319
|
+
},
|
|
320
|
+
runLoop: async () => ({ output: {} }),
|
|
321
|
+
});
|
|
322
|
+
expect(allowed.context.time).toBe(123);
|
|
323
|
+
expect(calls).toEqual(["unix_time"]);
|
|
324
|
+
expect(allowed.events.some((event) => event.type === "permission.result" && event.data?.permissionId === "tool-allowlist")).toBe(true);
|
|
325
|
+
await expect(executor.execute({
|
|
326
|
+
loops: {},
|
|
327
|
+
pipeline: { steps: [{ tool: "bash" }] },
|
|
328
|
+
projectPermissions: [
|
|
329
|
+
{ id: "tool-allowlist", resource: "tool", action: "call", effect: "allow", match: { tool: ["unix_time"] } },
|
|
330
|
+
],
|
|
331
|
+
runTool: async () => ({ output: "nope" }),
|
|
332
|
+
runLoop: async () => ({ output: {} }),
|
|
333
|
+
})).rejects.toBeInstanceOf(LoopPermissionDeniedError);
|
|
334
|
+
});
|
|
335
|
+
it("distinguishes permission approval gates from policy approval gates", async () => {
|
|
336
|
+
const executor = new PipelineExecutor();
|
|
337
|
+
await expect(executor.execute({
|
|
338
|
+
loops: {},
|
|
339
|
+
pipeline: { steps: [{ tool: "send_email" }] },
|
|
340
|
+
projectPermissions: [
|
|
341
|
+
{ id: "approve-email", resource: "tool", action: "call", effect: "approval", match: { tool: "send_email" } },
|
|
342
|
+
],
|
|
343
|
+
runTool: async () => ({ output: "sent" }),
|
|
344
|
+
runLoop: async () => ({ output: {} }),
|
|
345
|
+
})).rejects.toBeInstanceOf(LoopPermissionApprovalRequiredError);
|
|
346
|
+
});
|
|
289
347
|
});
|
|
290
348
|
//# sourceMappingURL=pipeline.test.js.map
|