@polpo-ai/core 0.15.144 → 0.16.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/README.md +30 -0
- package/dist/__tests__/custom-tool-runner.test.d.ts +2 -0
- package/dist/__tests__/custom-tool-runner.test.d.ts.map +1 -0
- package/dist/__tests__/custom-tool-runner.test.js +121 -0
- package/dist/__tests__/custom-tool-runner.test.js.map +1 -0
- package/dist/__tests__/mcp-runner-client.test.d.ts +2 -0
- package/dist/__tests__/mcp-runner-client.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-runner-client.test.js +144 -0
- package/dist/__tests__/mcp-runner-client.test.js.map +1 -0
- package/dist/__tests__/mission-execution.test.d.ts +2 -0
- package/dist/__tests__/mission-execution.test.d.ts.map +1 -0
- package/dist/__tests__/mission-execution.test.js +68 -0
- package/dist/__tests__/mission-execution.test.js.map +1 -0
- package/dist/__tests__/run-state-monitor.test.d.ts +2 -0
- package/dist/__tests__/run-state-monitor.test.d.ts.map +1 -0
- package/dist/__tests__/run-state-monitor.test.js +59 -0
- package/dist/__tests__/run-state-monitor.test.js.map +1 -0
- package/dist/__tests__/runtime-metadata.test.d.ts +2 -0
- package/dist/__tests__/runtime-metadata.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-metadata.test.js +17 -0
- package/dist/__tests__/runtime-metadata.test.js.map +1 -0
- package/dist/__tests__/task-execution-router.test.js +1 -1
- package/dist/__tests__/task-execution-router.test.js.map +1 -1
- package/dist/__tests__/task-runner-agent-lifetime.test.d.ts +2 -0
- package/dist/__tests__/task-runner-agent-lifetime.test.d.ts.map +1 -0
- package/dist/__tests__/task-runner-agent-lifetime.test.js +136 -0
- package/dist/__tests__/task-runner-agent-lifetime.test.js.map +1 -0
- package/dist/adapter.d.ts +18 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/agent-manager.d.ts +3 -0
- package/dist/agent-manager.d.ts.map +1 -1
- package/dist/agent-manager.js +28 -2
- package/dist/agent-manager.js.map +1 -1
- package/dist/agent-store.d.ts +70 -1
- package/dist/agent-store.d.ts.map +1 -1
- package/dist/agent-store.js +103 -1
- package/dist/agent-store.js.map +1 -1
- package/dist/approval-manager.d.ts +24 -4
- package/dist/approval-manager.d.ts.map +1 -1
- package/dist/approval-manager.js +160 -112
- package/dist/approval-manager.js.map +1 -1
- package/dist/approval-manager.test.d.ts +2 -0
- package/dist/approval-manager.test.d.ts.map +1 -0
- package/dist/approval-manager.test.js +116 -0
- package/dist/approval-manager.test.js.map +1 -0
- package/dist/assessment-orchestrator.d.ts +12 -1
- package/dist/assessment-orchestrator.d.ts.map +1 -1
- package/dist/assessment-orchestrator.js +181 -83
- package/dist/assessment-orchestrator.js.map +1 -1
- package/dist/chat-interactions.d.ts +23 -3
- package/dist/chat-interactions.d.ts.map +1 -1
- package/dist/chat-interactions.js +50 -2
- package/dist/chat-interactions.js.map +1 -1
- package/dist/chat-interactions.test.js +39 -2
- package/dist/chat-interactions.test.js.map +1 -1
- package/dist/custom-tool-runner.d.ts +56 -0
- package/dist/custom-tool-runner.d.ts.map +1 -0
- package/dist/custom-tool-runner.js +197 -0
- package/dist/custom-tool-runner.js.map +1 -0
- package/dist/escalation-manager.d.ts +2 -0
- package/dist/escalation-manager.d.ts.map +1 -1
- package/dist/escalation-manager.js +79 -25
- package/dist/escalation-manager.js.map +1 -1
- package/dist/events.d.ts +4 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +6 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +19 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-capability.d.ts +40 -0
- package/dist/mcp-capability.d.ts.map +1 -0
- package/dist/mcp-capability.js +2 -0
- package/dist/mcp-capability.js.map +1 -0
- package/dist/mcp-runner.d.ts +45 -0
- package/dist/mcp-runner.d.ts.map +1 -0
- package/dist/mcp-runner.js +238 -0
- package/dist/mcp-runner.js.map +1 -0
- package/dist/mission-cancellation.d.ts +14 -0
- package/dist/mission-cancellation.d.ts.map +1 -0
- package/dist/mission-cancellation.js +43 -0
- package/dist/mission-cancellation.js.map +1 -0
- package/dist/mission-execution.d.ts +103 -0
- package/dist/mission-execution.d.ts.map +1 -0
- package/dist/mission-execution.js +196 -0
- package/dist/mission-execution.js.map +1 -0
- package/dist/mission-executor.d.ts +18 -16
- package/dist/mission-executor.d.ts.map +1 -1
- package/dist/mission-executor.js +339 -203
- package/dist/mission-executor.js.map +1 -1
- package/dist/mission-gating.d.ts +11 -15
- package/dist/mission-gating.d.ts.map +1 -1
- package/dist/mission-gating.js +25 -33
- package/dist/mission-gating.js.map +1 -1
- package/dist/mission-inspection.d.ts +29 -0
- package/dist/mission-inspection.d.ts.map +1 -0
- package/dist/mission-inspection.js +99 -0
- package/dist/mission-inspection.js.map +1 -0
- package/dist/mission-store.d.ts +7 -0
- package/dist/mission-store.d.ts.map +1 -1
- package/dist/mission-store.js +8 -0
- package/dist/mission-store.js.map +1 -1
- package/dist/orchestrator-context.d.ts +3 -0
- package/dist/orchestrator-context.d.ts.map +1 -1
- package/dist/orchestrator-engine.d.ts +39 -39
- package/dist/orchestrator-engine.d.ts.map +1 -1
- package/dist/orchestrator-engine.js +124 -24
- package/dist/orchestrator-engine.js.map +1 -1
- package/dist/run-state-monitor.d.ts +14 -0
- package/dist/run-state-monitor.d.ts.map +1 -0
- package/dist/run-state-monitor.js +63 -0
- package/dist/run-state-monitor.js.map +1 -0
- package/dist/run-store.d.ts +15 -0
- package/dist/run-store.d.ts.map +1 -1
- package/dist/runner-capability.d.ts +43 -0
- package/dist/runner-capability.d.ts.map +1 -0
- package/dist/runner-capability.js +55 -0
- package/dist/runner-capability.js.map +1 -0
- package/dist/runtime-metadata.d.ts +5 -0
- package/dist/runtime-metadata.d.ts.map +1 -0
- package/dist/runtime-metadata.js +21 -0
- package/dist/runtime-metadata.js.map +1 -0
- package/dist/scheduler.d.ts +2 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +16 -6
- package/dist/scheduler.js.map +1 -1
- package/dist/schemas.d.ts +8 -6
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +10 -0
- package/dist/schemas.js.map +1 -1
- package/dist/spawner.d.ts +12 -0
- package/dist/spawner.d.ts.map +1 -1
- package/dist/steering.d.ts +4 -1
- package/dist/steering.d.ts.map +1 -1
- package/dist/steering.js.map +1 -1
- package/dist/task-approval-coordinator.d.ts +29 -0
- package/dist/task-approval-coordinator.d.ts.map +1 -0
- package/dist/task-approval-coordinator.js +216 -0
- package/dist/task-approval-coordinator.js.map +1 -0
- package/dist/task-dispatch.d.ts +40 -0
- package/dist/task-dispatch.d.ts.map +1 -0
- package/dist/task-dispatch.js +136 -0
- package/dist/task-dispatch.js.map +1 -0
- package/dist/task-execution.d.ts +146 -0
- package/dist/task-execution.d.ts.map +1 -0
- package/dist/task-execution.js +357 -0
- package/dist/task-execution.js.map +1 -0
- package/dist/task-manager.d.ts +31 -22
- package/dist/task-manager.d.ts.map +1 -1
- package/dist/task-manager.js +74 -7
- package/dist/task-manager.js.map +1 -1
- package/dist/task-runner.d.ts +30 -3
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +429 -90
- package/dist/task-runner.js.map +1 -1
- package/dist/task-store.d.ts +9 -3
- package/dist/task-store.d.ts.map +1 -1
- package/dist/tool-invocation.d.ts +4 -0
- package/dist/tool-invocation.d.ts.map +1 -1
- package/dist/tool-invocation.js +8 -1
- package/dist/tool-invocation.js.map +1 -1
- package/dist/tool-invocation.test.d.ts +2 -0
- package/dist/tool-invocation.test.d.ts.map +1 -0
- package/dist/tool-invocation.test.js +40 -0
- package/dist/tool-invocation.test.js.map +1 -0
- package/dist/types/agent.d.ts +4 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/mission.d.ts +23 -1
- package/dist/types/mission.d.ts.map +1 -1
- package/dist/types/task.d.ts +10 -0
- package/dist/types/task.d.ts.map +1 -1
- package/package.json +17 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-execution-router.test.js","sourceRoot":"","sources":["../../src/__tests__/task-execution-router.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-execution-router.test.js","sourceRoot":"","sources":["../../src/__tests__/task-execution-router.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/C,MAAM,KAAK,GAAsC;IAC/C,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;QAC7C,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,qBAAqB;gBACnC,KAAK,EAAE,CAAC,YAAY,CAAC;gBACrB,IAAI,EAAE,KAAK;aACZ;SACF;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,uBAAuB;QACpC,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;KAChE;CACF,CAAC;AAEF,SAAS,IAAI,CAAC,YAA2B,EAAE;IACzC,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,YAAkC,EAAE;IACjD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;QACpC,eAAe,EAAE;YACf,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;SACpC;QACD,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,YAAqC,EAAE;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAClD,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,MAAM,+BAA+B,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,QAAQ,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACjC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,4BAA4B;aACrC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,GAAG,GAAQ;QACf,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;SACF;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;SACrC;QACD,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;SACjC;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAQ,EAAE,EAAE;gBAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC;YACF,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,MAAc,EAAE,MAAe,EAAE,EAAE;gBACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC;YACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClD;QACD,WAAW,EAAE;YACX,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;gBACpB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;SACH;QACD,KAAK,EAAE;YACL,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAoB,EAAE,EAAE;gBAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;YACrD,CAAC,CAAC;YACF,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;YAC3B,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;SACd;QACD,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,OAAO;aAClB;YACD,SAAS,EAAE,SAAS;SACrB;QACD,QAAQ,EAAE,iBAAiB;QAC3B,YAAY,EAAE,UAAU;QACxB,cAAc;QACd,+BAA+B;QAC/B,GAAG,SAAS;KACb,CAAC;IACF,OAAO;QACL,KAAK;QACL,GAAG;QACH,MAAM;QACN,cAAc;QACd,+BAA+B;QAC/B,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,CAAC,GAAG,OAAO,CAAC;YAChB,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;oBAChC,eAAe,EAAE;wBACf,IAAI,EAAE,MAAM;wBACZ,YAAY,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;wBACnC,KAAK,EAAE,CAAC;gCACN,EAAE,EAAE,YAAY;gCAChB,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE;oCACJ,SAAS,EAAE,CAAC,WAAW,CAAC;oCACxB,SAAS,EAAE,CAAC,gBAAgB,CAAC;iCAC9B;6BACF,CAAC;qBACH;iBACF,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC5C,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE;SACrD,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YAChD,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,4CAA4C;SACrD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,IAAI,eAAoB,CAAC;QACzB,MAAM,+BAA+B,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzD,QAAQ,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBACjC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzB,eAAe,GAAG,KAAK,CAAC;gBACxB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,4BAA4B;iBACrC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,GAAG,CAAC,+BAA+B,GAAG,+BAA+B,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEnD,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACtB,eAAe;YACf,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,qDAAqD;YAC5D,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,8BAA8B;iBAC5C;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;oBACd,WAAW,EAAE,uBAAuB;iBACrC;aACF;YACD,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,CAAC,+BAA+B,CAAC,CAAC,oBAAoB,CAAC;YAC3D,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YAChD,OAAO,EAAE,MAAM;YACf,gBAAgB,EAAE,MAAM;YACxB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;YAC9B,yBAAyB;YACzB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aACrD,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG;YACjC,cAAc,EAAE,SAAS;YACzB,uBAAuB,EAAE,KAAK;YAC9B,gBAAgB,EAAE,SAAS;YAC3B,wBAAwB,EAAE,MAAM;YAChC,mBAAmB,EAAE,QAAQ;SAC9B,CAAC;QACF,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;QAC/C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;aAClB,qBAAqB,CAAC,6CAA6C,CAAC;aACpE,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG;YACrB,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC3B,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,CAAC;gCACR,EAAE,EAAE,UAAU;gCACd,OAAO,EAAE,wCAAwC;gCACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE;gCAC1C,SAAS,EAAE,0BAA0B;gCACrC,KAAK,EAAE,eAAe;6BACvB,CAAC;qBACH,CAAC;aACH,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjC,UAAU,EAAE;gBACV,cAAc,EAAE,SAAS;gBACzB,uBAAuB,EAAE,KAAK;gBAC9B,gBAAgB,EAAE,SAAS;gBAC3B,wBAAwB,EAAE,MAAM;gBAChC,mBAAmB,EAAE,QAAQ;aAC9B;YACD,cAAc,EAAE;gBACd,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,CAAC;gCACR,EAAE,EAAE,UAAU;gCACd,OAAO,EAAE,wCAAwC;6BAClD,CAAC;qBACH,CAAC;aACH;YACD,YAAY,EAAE,SAAS;YACvB,qBAAqB,EAAE,CAAC;oBACtB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,6CAA6C;iBACvD,CAAC;YACF,cAAc,EAAE;gBACd,OAAO,EAAE,MAAM;gBACf,gBAAgB,EAAE,MAAM;gBACxB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU;aACjB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QAEpB,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YAChD,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,cAAc,EAAE,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,KAAK,MAAM,eAAe,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAc,EAAE,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,GAAG,OAAO,CAAC;gBAChB,UAAU,EAAE;oBACV,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;iBACxD;aACF,CAAC,CAAC;YAEH,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YAEjD,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAChD,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACjE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,CAAC,GAAG,OAAO,CAAC;YAChB,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YAChD,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,GAAG,CAAC,+BAA+B,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzD,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACrB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,oBAAoB;aAC7B,CAAC;SACH,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;YAChD,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QAEpB,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACrD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,QAAQ,EACR,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;SAChD,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,OAAO,CAAC;YAChB,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;oBAChC,eAAe,EAAE;wBACf,IAAI,EAAE,MAAM;wBACZ,YAAY,EAAE,KAAK,CAAC,IAAI,CACtB,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAC9B;qBACF;iBACF,CAAC,CAAC;aACJ;YACD,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACrD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,QAAQ,EACR,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,+BAA+B,CAAC;SACjE,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runner-agent-lifetime.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/task-runner-agent-lifetime.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { TaskRunner } from "../task-runner.js";
|
|
3
|
+
import { HookRegistry } from "../hooks.js";
|
|
4
|
+
function fixture() {
|
|
5
|
+
const task = { id: "task", title: "Read", description: "Read", assignTo: "support", dependsOn: [], status: "pending",
|
|
6
|
+
expectations: [], metrics: [], retries: 0, maxRetries: 0, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString() };
|
|
7
|
+
let snapshot = { agent: { name: "support", role: "original" }, teamName: "default", revision: { incarnation: "original", version: 0 } };
|
|
8
|
+
const agentStore = { getAgent: vi.fn(async () => ({ name: "support", role: "unversioned" })), getAgentSnapshot: vi.fn(async () => snapshot),
|
|
9
|
+
compareAndSwapAgent: vi.fn(), deleteAgentIfRevision: vi.fn() };
|
|
10
|
+
const spawner = { spawn: vi.fn(async (_config) => ({ pid: 123, configPath: "memory://test" })), isAlive: () => false, kill: vi.fn() };
|
|
11
|
+
const runStore = { upsertRun: vi.fn(), updateSpawnInfo: vi.fn(), completeRun: vi.fn(), markRunCollected: vi.fn(),
|
|
12
|
+
getActiveRuns: vi.fn(async () => []), getRunByTaskId: vi.fn() };
|
|
13
|
+
const memoryStore = { get: vi.fn(async () => "") };
|
|
14
|
+
const ctx = { agentStore, spawner, runStore, memoryStore, emitter: { emit: vi.fn() }, hooks: new HookRegistry(),
|
|
15
|
+
taskStore: { transition: vi.fn(), updateTask: vi.fn(), getState: async () => ({ processes: [] }), listTasks: async () => [task], getTask: async () => task },
|
|
16
|
+
config: { settings: { maxRetries: 0, workDir: ".", logLevel: "quiet" }, teams: [] },
|
|
17
|
+
workDir: "/tmp/lifetime-test", agentWorkDir: "/tmp/lifetime-test", polpoDir: "/tmp/lifetime-test/.polpo",
|
|
18
|
+
};
|
|
19
|
+
return { task, agentStore, spawner, runStore, memoryStore, runner: new TaskRunner(ctx), replace: (next) => { snapshot = next; } };
|
|
20
|
+
}
|
|
21
|
+
describe("TaskRunner agent lifetime", () => {
|
|
22
|
+
it("retries a failed pending cancellation while another pending cancellation remains owned", async () => {
|
|
23
|
+
const f = fixture();
|
|
24
|
+
let releaseA, releaseB;
|
|
25
|
+
const heldA = new Promise(resolve => { releaseA = resolve; });
|
|
26
|
+
const heldB = new Promise(resolve => { releaseB = resolve; });
|
|
27
|
+
f.spawner.spawn.mockImplementation(async (config) => {
|
|
28
|
+
await (config.taskId === "a" ? heldA : heldB);
|
|
29
|
+
throw new Error("Preparation cancelled after cleanup");
|
|
30
|
+
});
|
|
31
|
+
const workA = f.runner.spawnForTask({ ...f.task, id: "a" });
|
|
32
|
+
const workB = f.runner.spawnForTask({ ...f.task, id: "b" });
|
|
33
|
+
await vi.waitFor(() => expect(f.spawner.spawn).toHaveBeenCalledTimes(2));
|
|
34
|
+
const runA = f.spawner.spawn.mock.calls.find(([config]) => config.taskId === "a")[0].runId;
|
|
35
|
+
const runB = f.spawner.spawn.mock.calls.find(([config]) => config.taskId === "b")[0].runId;
|
|
36
|
+
let attemptsA = 0;
|
|
37
|
+
const cancelRun = vi.fn(async (runId) => {
|
|
38
|
+
if (runId === runA) {
|
|
39
|
+
if (++attemptsA === 1)
|
|
40
|
+
throw new Error("Cleanup unavailable");
|
|
41
|
+
releaseA();
|
|
42
|
+
}
|
|
43
|
+
else
|
|
44
|
+
await heldB;
|
|
45
|
+
});
|
|
46
|
+
Object.assign(f.spawner, { cancelRun });
|
|
47
|
+
Object.assign(f.runStore, { getRun: async () => undefined });
|
|
48
|
+
let error;
|
|
49
|
+
const first = f.runner.close().catch(value => { error = value; });
|
|
50
|
+
let retry;
|
|
51
|
+
try {
|
|
52
|
+
await vi.waitFor(() => expect(error).toMatchObject({ message: "Cleanup unavailable" }));
|
|
53
|
+
expect(cancelRun.mock.calls).toEqual([[runA], [runB]]);
|
|
54
|
+
retry = f.runner.close();
|
|
55
|
+
await vi.waitFor(() => expect(cancelRun.mock.calls).toEqual([[runA], [runB], [runA]]));
|
|
56
|
+
releaseB();
|
|
57
|
+
await Promise.all([retry, workA, workB]);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
releaseA();
|
|
61
|
+
releaseB();
|
|
62
|
+
await Promise.all([first, retry, workA, workB]);
|
|
63
|
+
await f.runner.close();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
it("updates the pre-registered Run through the atomic configuration port before spawning", async () => {
|
|
67
|
+
const f = fixture();
|
|
68
|
+
const updateRunConfig = vi.fn(async () => true);
|
|
69
|
+
Object.assign(f.runStore, { updateRunConfig });
|
|
70
|
+
await f.runner.spawnForTask(f.task);
|
|
71
|
+
const runnerConfig = f.spawner.spawn.mock.calls[0][0];
|
|
72
|
+
expect(f.runStore.upsertRun).toHaveBeenCalledTimes(1);
|
|
73
|
+
expect(updateRunConfig).toHaveBeenCalledExactlyOnceWith(runnerConfig.runId, runnerConfig, `pending://${runnerConfig.runId}`);
|
|
74
|
+
});
|
|
75
|
+
it.each(["missing", "terminal"])("does not spawn or upsert again when the configuration port rejects a %s Run", async () => {
|
|
76
|
+
const f = fixture();
|
|
77
|
+
const updateRunConfig = vi.fn(async () => false);
|
|
78
|
+
Object.assign(f.runStore, { updateRunConfig });
|
|
79
|
+
await f.runner.spawnForTask(f.task);
|
|
80
|
+
expect(updateRunConfig).toHaveBeenCalledTimes(1);
|
|
81
|
+
expect(f.runStore.upsertRun).toHaveBeenCalledTimes(1);
|
|
82
|
+
expect(f.spawner.spawn).not.toHaveBeenCalled();
|
|
83
|
+
expect(f.runStore.completeRun).not.toHaveBeenCalled();
|
|
84
|
+
});
|
|
85
|
+
it("does not fall back to upsert or spawn after a configuration write error", async () => {
|
|
86
|
+
const f = fixture();
|
|
87
|
+
Object.assign(f.runStore, { updateRunConfig: vi.fn(async () => { throw new Error("config write failed"); }) });
|
|
88
|
+
await f.runner.spawnForTask(f.task);
|
|
89
|
+
expect(f.runStore.upsertRun).toHaveBeenCalledTimes(1);
|
|
90
|
+
expect(f.spawner.spawn).not.toHaveBeenCalled();
|
|
91
|
+
expect(f.runStore.completeRun).toHaveBeenCalledWith(expect.any(String), "failed", expect.objectContaining({ stderr: expect.stringContaining("config write failed") }));
|
|
92
|
+
});
|
|
93
|
+
it("retains the legacy registration path only for a store without the optional port", async () => {
|
|
94
|
+
const f = fixture();
|
|
95
|
+
await f.runner.spawnForTask(f.task);
|
|
96
|
+
expect(f.runStore.upsertRun).toHaveBeenCalledTimes(2);
|
|
97
|
+
expect(f.spawner.spawn).toHaveBeenCalledTimes(1);
|
|
98
|
+
});
|
|
99
|
+
it("pins config and identity before asynchronous context loading", async () => {
|
|
100
|
+
const f = fixture();
|
|
101
|
+
f.memoryStore.get.mockImplementationOnce(async () => {
|
|
102
|
+
f.replace({ agent: { name: "support", role: "replacement" }, teamName: "default", revision: { incarnation: "replacement", version: 0 } });
|
|
103
|
+
return "";
|
|
104
|
+
});
|
|
105
|
+
await f.runner.spawnForTask(f.task);
|
|
106
|
+
expect(f.spawner.spawn.mock.calls[0][0]).toMatchObject({ agent: { role: "original" }, agentIdentity: { name: "support", incarnation: "original" } });
|
|
107
|
+
expect(f.agentStore.getAgent).not.toHaveBeenCalled();
|
|
108
|
+
});
|
|
109
|
+
it("does not fall back to a name-only config for a missing snapshot", async () => {
|
|
110
|
+
const f = fixture();
|
|
111
|
+
f.replace(undefined);
|
|
112
|
+
await f.runner.spawnForTask(f.task);
|
|
113
|
+
expect(f.spawner.spawn).not.toHaveBeenCalled();
|
|
114
|
+
expect(f.runStore.completeRun).toHaveBeenCalledWith(expect.any(String), "failed", expect.objectContaining({ stderr: expect.stringContaining('No agent "support"') }));
|
|
115
|
+
});
|
|
116
|
+
it.each([undefined, { name: "support", incarnation: "former" }])("does not adopt a recovered checkpoint from another lifetime: %j", async (agentIdentity) => {
|
|
117
|
+
const f = fixture();
|
|
118
|
+
f.runStore.getActiveRuns.mockResolvedValueOnce([{ id: "old", taskId: "task", pid: 1,
|
|
119
|
+
config: { agentIdentity }, resumeState: { turn: 0, history: [{ role: "user", content: "old" }], context: {}, steps: [], createdAt: new Date().toISOString() } }]);
|
|
120
|
+
await f.runner.recoverOrphanedTasks();
|
|
121
|
+
await f.runner.spawnForTask(f.task);
|
|
122
|
+
expect(f.spawner.spawn).not.toHaveBeenCalled();
|
|
123
|
+
expect(f.runStore.completeRun).toHaveBeenLastCalledWith(expect.any(String), "failed", expect.objectContaining({ stderr: expect.stringMatching(/identity/i) }));
|
|
124
|
+
});
|
|
125
|
+
it("resumes a recovered checkpoint from the same creation identity after config edits", async () => {
|
|
126
|
+
const f = fixture();
|
|
127
|
+
f.replace({ agent: { name: "support", role: "edited" }, teamName: "default", revision: { incarnation: "original", version: 35 } });
|
|
128
|
+
f.runStore.getActiveRuns.mockResolvedValueOnce([{ id: "old", taskId: "task", pid: 1,
|
|
129
|
+
config: { agentIdentity: { name: "support", incarnation: "original" } },
|
|
130
|
+
resumeState: { turn: 0, history: [{ role: "user", content: "old" }], context: {}, steps: [], createdAt: new Date().toISOString() } }]);
|
|
131
|
+
await f.runner.recoverOrphanedTasks();
|
|
132
|
+
await f.runner.spawnForTask(f.task);
|
|
133
|
+
expect(f.spawner.spawn.mock.calls[0][0]).toMatchObject({ agentIdentity: { name: "support", incarnation: "original" }, resumeState: { turn: 0 } });
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=task-runner-agent-lifetime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-runner-agent-lifetime.test.js","sourceRoot":"","sources":["../../src/__tests__/task-runner-agent-lifetime.test.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter.d.ts
CHANGED
|
@@ -13,6 +13,18 @@ import type { RunOutputPolicy, RunToolMiddleware, RuntimeOutputEnforcementMode }
|
|
|
13
13
|
import type { RuntimeContextResolution, RuntimeContextTrustMode, RuntimePromptContextSegment } from "./runtime-context/index.js";
|
|
14
14
|
import type { BrainReadService, BrainServiceContext } from "./brain/index.js";
|
|
15
15
|
import type { ToolInvocationContext } from "./tool-invocation.js";
|
|
16
|
+
import type { PolpoTool } from "./tool-types.js";
|
|
17
|
+
/** Trusted host port for loading custom tools whose execution is owned by the
|
|
18
|
+
* host (for example a remote sandbox). Never supplied by agent/tool source.
|
|
19
|
+
* Presence replaces the local bundle importer, including on empty/error results.
|
|
20
|
+
* The host owns isolation and per-call authorization; the runtime still applies
|
|
21
|
+
* exact custom-tool assignment and all narrower execution policies. */
|
|
22
|
+
export type ResolveCustomTools = (input: Readonly<{
|
|
23
|
+
agentName: string;
|
|
24
|
+
allowedTools?: readonly string[];
|
|
25
|
+
invocation?: ToolInvocationContext;
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
}>) => Promise<readonly PolpoTool[]>;
|
|
16
28
|
/**
|
|
17
29
|
* Handle returned by the engine after spawning an agent.
|
|
18
30
|
* The orchestrator uses this to monitor and control the agent.
|
|
@@ -65,6 +77,10 @@ export interface SpawnContext {
|
|
|
65
77
|
toolInvocation?: ToolInvocationContext;
|
|
66
78
|
/** Host-owned resolver for invocation-scoped logical Connection slots. */
|
|
67
79
|
connectionCapabilityResolver?: import("./connection-capability.js").ConnectionCapabilityResolver;
|
|
80
|
+
/** Replaces local custom-tool imports with host-owned execution. */
|
|
81
|
+
resolveCustomTools?: ResolveCustomTools;
|
|
82
|
+
/** Host-owned MCP inventory and per-operation capability factory. */
|
|
83
|
+
resolveMcpCapabilities?: import("./mcp-capability.js").ResolveMcpRuntimeCapabilities;
|
|
68
84
|
/** Pre-resolved retrieval snapshot rendered into task system prompts. */
|
|
69
85
|
runtimeContext?: RuntimeContextResolution;
|
|
70
86
|
/** Per-task output directory (.polpo/output/<taskId>/). Agents write deliverables here. */
|
|
@@ -172,6 +188,8 @@ export interface SpawnContext {
|
|
|
172
188
|
* takes no dependency on `ai`.
|
|
173
189
|
*/
|
|
174
190
|
export interface ChatSessionInjection {
|
|
191
|
+
/** Original captured invocation, including agent creation identity. */
|
|
192
|
+
toolInvocation?: ToolInvocationContext;
|
|
175
193
|
/** Conversation session that groups this streaming run with its chat transcript. */
|
|
176
194
|
sessionId?: string;
|
|
177
195
|
/** Frozen, secret-free planning decision for this invocation. */
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,UAAU,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-manager.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { OrchestratorContext } from "./orchestrator-context.js";
|
|
2
2
|
import type { AgentConfig, Team } from "./types.js";
|
|
3
|
+
import { type AgentMutation, type AgentMutationReceipt, type AgentSnapshot } from "./agent-store.js";
|
|
3
4
|
/**
|
|
4
5
|
* Manages multi-team agent topology: CRUD operations on teams and agents,
|
|
5
6
|
* volatile (mission-tied) agents.
|
|
@@ -34,6 +35,8 @@ export declare class AgentManager {
|
|
|
34
35
|
addAgent(agent: AgentConfig, teamName?: string): Promise<void>;
|
|
35
36
|
/** Atomic update of an agent's fields. No more remove+add. */
|
|
36
37
|
updateAgent(name: string, updates: Partial<Omit<AgentConfig, "name">>): Promise<AgentConfig>;
|
|
38
|
+
getAgentSnapshot(name: string): Promise<AgentSnapshot | undefined>;
|
|
39
|
+
compareAndSwapAgent(name: string, mutation: AgentMutation): Promise<AgentMutationReceipt>;
|
|
37
40
|
removeAgent(name: string): Promise<boolean>;
|
|
38
41
|
addVolatileAgent(agent: AgentConfig, group: string): Promise<void>;
|
|
39
42
|
cleanupVolatileAgents(group: string): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAqE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAExK;;;;;;;GAOG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,mBAAmB;IAI5C,4DAA4D;IACtD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtC,yEAAyE;YAC3D,WAAW;IAOnB,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAK3B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAWvD,gEAAgE;IAC1D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAclC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa1C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejE,mDAAmD;IAC7C,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzC,8CAA8C;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAI/D,2CAA2C;IACrC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAMtD,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE,8DAA8D;IACxD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAO5F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMlE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAazF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe3C,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlE,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ5D"}
|
package/dist/agent-manager.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AgentMutationError, isVersionedAgentStore, normalizeAgentMutation } from "./agent-store.js";
|
|
1
2
|
/**
|
|
2
3
|
* Manages multi-team agent topology: CRUD operations on teams and agents,
|
|
3
4
|
* volatile (mission-tied) agents.
|
|
@@ -135,9 +136,34 @@ export class AgentManager {
|
|
|
135
136
|
this.ctx.emitter.emit("log", { level: "info", message: `Agent updated: ${name}` });
|
|
136
137
|
return updated;
|
|
137
138
|
}
|
|
139
|
+
async getAgentSnapshot(name) {
|
|
140
|
+
const store = this.ctx.agentStore;
|
|
141
|
+
if (!isVersionedAgentStore(store))
|
|
142
|
+
throw new Error("Agent store does not support revision preconditions");
|
|
143
|
+
return store.getAgentSnapshot(name);
|
|
144
|
+
}
|
|
145
|
+
async compareAndSwapAgent(name, mutation) {
|
|
146
|
+
const store = this.ctx.agentStore;
|
|
147
|
+
if (!isVersionedAgentStore(store))
|
|
148
|
+
throw new Error("Agent store does not support revision preconditions");
|
|
149
|
+
mutation = normalizeAgentMutation(mutation);
|
|
150
|
+
if (mutation.patch.teamName !== undefined && !await this.ctx.teamStore.getTeam(mutation.patch.teamName)) {
|
|
151
|
+
throw new AgentMutationError("invalid_agent_mutation", `Team "${mutation.patch.teamName}" not found`);
|
|
152
|
+
}
|
|
153
|
+
const receipt = await store.compareAndSwapAgent(name, mutation);
|
|
154
|
+
await this.syncConfigCache();
|
|
155
|
+
this.ctx.emitter.emit("log", { level: "info", message: `Agent updated: ${name}` });
|
|
156
|
+
return receipt;
|
|
157
|
+
}
|
|
138
158
|
async removeAgent(name) {
|
|
139
|
-
const
|
|
140
|
-
const
|
|
159
|
+
const store = this.ctx.agentStore;
|
|
160
|
+
const snapshot = isVersionedAgentStore(store) ? await store.getAgentSnapshot(name) : undefined;
|
|
161
|
+
if (isVersionedAgentStore(store) && !snapshot)
|
|
162
|
+
return false;
|
|
163
|
+
const teamName = snapshot?.teamName ?? await store.getAgentTeam(name);
|
|
164
|
+
const deleted = isVersionedAgentStore(store)
|
|
165
|
+
? await store.deleteAgentIfRevision(name, snapshot.revision)
|
|
166
|
+
: await store.deleteAgent(name);
|
|
141
167
|
if (deleted) {
|
|
142
168
|
await this.syncConfigCache();
|
|
143
169
|
this.ctx.emitter.emit("log", { level: "info", message: `Agent removed: ${name}${teamName ? ` (team: ${teamName})` : ""}` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-store.d.ts
CHANGED
|
@@ -16,7 +16,8 @@ export interface AgentStore {
|
|
|
16
16
|
getAgentTeam(name: string): Promise<string | undefined>;
|
|
17
17
|
/** Add a new agent to the given team. Throws if name already exists. */
|
|
18
18
|
createAgent(agent: AgentConfig, teamName: string): Promise<AgentConfig>;
|
|
19
|
-
/**
|
|
19
|
+
/** Merge supplied fields against the current configuration. For changes
|
|
20
|
+
* derived from an earlier read, use VersionedAgentStore and its precondition. */
|
|
20
21
|
updateAgent(name: string, updates: Partial<Omit<AgentConfig, "name">>): Promise<AgentConfig>;
|
|
21
22
|
/** Move an agent to a different team. */
|
|
22
23
|
moveAgent(name: string, newTeamName: string): Promise<AgentConfig>;
|
|
@@ -29,4 +30,72 @@ export interface AgentStore {
|
|
|
29
30
|
teamName: string;
|
|
30
31
|
}>): Promise<void>;
|
|
31
32
|
}
|
|
33
|
+
/** A creation identity plus monotonically increasing generation. Recreating an
|
|
34
|
+
* agent with the same name MUST allocate a different incarnation. */
|
|
35
|
+
export interface AgentRevision {
|
|
36
|
+
incarnation: string;
|
|
37
|
+
version: number;
|
|
38
|
+
}
|
|
39
|
+
export interface AgentSnapshot {
|
|
40
|
+
agent: AgentConfig;
|
|
41
|
+
teamName: string;
|
|
42
|
+
revision: AgentRevision;
|
|
43
|
+
}
|
|
44
|
+
/** Host-owned creation identity captured WITH the execution configuration.
|
|
45
|
+
* Configuration edits preserve it; deleting and recreating the agent does not.
|
|
46
|
+
* Never derive this from a model argument, request metadata or a late name lookup. */
|
|
47
|
+
export interface AgentIdentity {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
readonly incarnation: string;
|
|
50
|
+
}
|
|
51
|
+
export declare function normalizeAgentIdentity(value: unknown): AgentIdentity;
|
|
52
|
+
export declare function agentIdentityFromSnapshot(snapshot: AgentSnapshot): AgentIdentity;
|
|
53
|
+
export declare class AgentIdentityError extends Error {
|
|
54
|
+
readonly code = "agent_identity_changed";
|
|
55
|
+
constructor();
|
|
56
|
+
}
|
|
57
|
+
/** Check creation identity, not mutable configuration version. A host must
|
|
58
|
+
* repeat this check at protected dispatch, including after refresh/other waits. */
|
|
59
|
+
export declare function assertAgentIdentity(identity: AgentIdentity | undefined, current: AgentSnapshot | undefined): void;
|
|
60
|
+
type AgentField = Exclude<keyof AgentConfig, "name" | "loops" | "pipeline">;
|
|
61
|
+
/** Top-level replacement patch. Omission preserves a field; null is JSON null;
|
|
62
|
+
* unset removes it. Nested objects are replaced, never implicitly deep-merged. */
|
|
63
|
+
export interface AgentConfigPatch {
|
|
64
|
+
set?: {
|
|
65
|
+
[K in AgentField]?: AgentConfig[K] | null;
|
|
66
|
+
};
|
|
67
|
+
unset?: AgentField[];
|
|
68
|
+
teamName?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface AgentMutation {
|
|
71
|
+
expected: AgentRevision;
|
|
72
|
+
mutationId: string;
|
|
73
|
+
patch: AgentConfigPatch;
|
|
74
|
+
}
|
|
75
|
+
export interface AgentMutationReceipt {
|
|
76
|
+
mutationId: string;
|
|
77
|
+
previousRevision: AgentRevision;
|
|
78
|
+
snapshot: AgentSnapshot;
|
|
79
|
+
}
|
|
80
|
+
/** Explicit capability for concurrency-sensitive hosts. Never emulate it with
|
|
81
|
+
* getAgent + updateAgent or fall back to an unconditional write. */
|
|
82
|
+
export interface VersionedAgentStore extends AgentStore {
|
|
83
|
+
getAgentSnapshot(name: string): Promise<AgentSnapshot | undefined>;
|
|
84
|
+
/** Commit once, including no-op patches. Retrying an identical mutation may
|
|
85
|
+
* recover its receipt ONLY while that exact generation is still current. */
|
|
86
|
+
compareAndSwapAgent(name: string, mutation: AgentMutation): Promise<AgentMutationReceipt>;
|
|
87
|
+
/** Delete only this exact generation. Missing is false; an existing agent
|
|
88
|
+
* with another revision/incarnation is a conflict, never a retry target. */
|
|
89
|
+
deleteAgentIfRevision(name: string, expected: AgentRevision): Promise<boolean>;
|
|
90
|
+
}
|
|
91
|
+
export declare class AgentMutationError extends Error {
|
|
92
|
+
readonly code: "invalid_agent_mutation" | "agent_revision_conflict" | "agent_not_found";
|
|
93
|
+
constructor(code: "invalid_agent_mutation" | "agent_revision_conflict" | "agent_not_found", message: string);
|
|
94
|
+
}
|
|
95
|
+
export declare function isVersionedAgentStore(store: AgentStore): store is VersionedAgentStore;
|
|
96
|
+
/** Validates and copies the request before an asynchronous write. Its stable
|
|
97
|
+
* serialization can be hashed by adapters for lost-acknowledgement recovery. */
|
|
98
|
+
export declare function normalizeAgentMutation(input: AgentMutation): AgentMutation;
|
|
99
|
+
export declare function applyAgentConfigPatch(snapshot: AgentSnapshot, patch: AgentConfigPatch): Pick<AgentSnapshot, "agent" | "teamName">;
|
|
100
|
+
export {};
|
|
32
101
|
//# sourceMappingURL=agent-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IAGzB,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAErD,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEzD,8DAA8D;IAC9D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAIxD,wEAAwE;IACxE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAExE
|
|
1
|
+
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../src/agent-store.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-store.js
CHANGED
|
@@ -1,2 +1,104 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export function normalizeAgentIdentity(value) {
|
|
2
|
+
if (!value || typeof value !== "object" || Array.isArray(value)
|
|
3
|
+
|| ![Object.prototype, null].includes(Object.getPrototypeOf(value))
|
|
4
|
+
|| Object.keys(value).some(key => key !== "name" && key !== "incarnation")) {
|
|
5
|
+
throw new TypeError("Invalid agent identity");
|
|
6
|
+
}
|
|
7
|
+
const { name, incarnation } = value;
|
|
8
|
+
if (typeof name !== "string" || !name || name !== name.trim() || name.length > 512
|
|
9
|
+
|| typeof incarnation !== "string" || !/^[\w.:-]{1,160}$/.test(incarnation)) {
|
|
10
|
+
throw new TypeError("Invalid agent identity");
|
|
11
|
+
}
|
|
12
|
+
return Object.freeze({ name, incarnation });
|
|
13
|
+
}
|
|
14
|
+
export function agentIdentityFromSnapshot(snapshot) {
|
|
15
|
+
return normalizeAgentIdentity({ name: snapshot.agent.name, incarnation: snapshot.revision.incarnation });
|
|
16
|
+
}
|
|
17
|
+
export class AgentIdentityError extends Error {
|
|
18
|
+
code = "agent_identity_changed";
|
|
19
|
+
constructor() {
|
|
20
|
+
super("Agent identity is missing or no longer matches this execution");
|
|
21
|
+
this.name = "AgentIdentityError";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Check creation identity, not mutable configuration version. A host must
|
|
25
|
+
* repeat this check at protected dispatch, including after refresh/other waits. */
|
|
26
|
+
export function assertAgentIdentity(identity, current) {
|
|
27
|
+
if (!identity || !current || identity.name !== current.agent.name
|
|
28
|
+
|| identity.incarnation !== current.revision.incarnation)
|
|
29
|
+
throw new AgentIdentityError();
|
|
30
|
+
}
|
|
31
|
+
export class AgentMutationError extends Error {
|
|
32
|
+
code;
|
|
33
|
+
constructor(code, message) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.code = code;
|
|
36
|
+
this.name = "AgentMutationError";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function isVersionedAgentStore(store) {
|
|
40
|
+
const candidate = store;
|
|
41
|
+
return typeof candidate.getAgentSnapshot === "function" && typeof candidate.compareAndSwapAgent === "function"
|
|
42
|
+
&& typeof candidate.deleteAgentIfRevision === "function";
|
|
43
|
+
}
|
|
44
|
+
const forbiddenFields = new Set(["name", "team", "teamName", "loops", "pipeline", "__proto__", "constructor", "prototype"]);
|
|
45
|
+
const invalid = () => { throw new AgentMutationError("invalid_agent_mutation", "Invalid agent mutation; use explicit JSON set/unset fields and a valid revision"); };
|
|
46
|
+
/** Validates and copies the request before an asynchronous write. Its stable
|
|
47
|
+
* serialization can be hashed by adapters for lost-acknowledgement recovery. */
|
|
48
|
+
export function normalizeAgentMutation(input) {
|
|
49
|
+
const request = jsonCopy(input);
|
|
50
|
+
if (!request || typeof request !== "object" || Array.isArray(request)
|
|
51
|
+
|| Object.keys(request).some(k => !["expected", "mutationId", "patch"].includes(k)))
|
|
52
|
+
invalid();
|
|
53
|
+
if (typeof request.mutationId !== "string" || !/^[\w.:-]{1,160}$/.test(request.mutationId))
|
|
54
|
+
invalid();
|
|
55
|
+
const revision = request.expected;
|
|
56
|
+
if (!revision || typeof revision !== "object" || Array.isArray(revision)
|
|
57
|
+
|| Object.keys(revision).some(k => !["incarnation", "version"].includes(k))
|
|
58
|
+
|| typeof revision.incarnation !== "string" || !/^[\w.:-]{1,160}$/.test(revision.incarnation)
|
|
59
|
+
|| !Number.isInteger(revision.version) || revision.version < 0 || revision.version >= 2_147_483_647)
|
|
60
|
+
invalid();
|
|
61
|
+
const patch = request.patch;
|
|
62
|
+
if (!patch || typeof patch !== "object" || Array.isArray(patch)
|
|
63
|
+
|| Object.keys(patch).some(k => !["set", "unset", "teamName"].includes(k)))
|
|
64
|
+
invalid();
|
|
65
|
+
if (Object.hasOwn(patch, "teamName") && (typeof patch.teamName !== "string"
|
|
66
|
+
|| !patch.teamName.trim() || patch.teamName !== patch.teamName.trim()))
|
|
67
|
+
invalid();
|
|
68
|
+
const set = patch.set ?? {};
|
|
69
|
+
if (Object.hasOwn(patch, "set") && (!patch.set || typeof patch.set !== "object" || Array.isArray(patch.set)))
|
|
70
|
+
invalid();
|
|
71
|
+
if (Object.keys(set).some(k => forbiddenFields.has(k)))
|
|
72
|
+
invalid();
|
|
73
|
+
const unset = patch.unset ?? [];
|
|
74
|
+
if (!Array.isArray(unset) || (Object.hasOwn(patch, "unset") && patch.unset === null)
|
|
75
|
+
|| unset.some(k => typeof k !== "string" || forbiddenFields.has(k) || Object.hasOwn(set, k))
|
|
76
|
+
|| new Set(unset).size !== unset.length)
|
|
77
|
+
invalid();
|
|
78
|
+
// Canonicalize equivalent key order without weakening the mutation identity.
|
|
79
|
+
if (patch.unset)
|
|
80
|
+
patch.unset.sort();
|
|
81
|
+
return request;
|
|
82
|
+
}
|
|
83
|
+
function jsonCopy(value, depth = 0) {
|
|
84
|
+
if (depth > 64)
|
|
85
|
+
invalid();
|
|
86
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
87
|
+
return value;
|
|
88
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
89
|
+
return value;
|
|
90
|
+
if (Array.isArray(value))
|
|
91
|
+
return Array.from(value, child => jsonCopy(child, depth + 1));
|
|
92
|
+
if (value && typeof value === "object" && [Object.prototype, null].includes(Object.getPrototypeOf(value))) {
|
|
93
|
+
return Object.fromEntries(Object.keys(value).sort().map(key => [key, jsonCopy(value[key], depth + 1)]));
|
|
94
|
+
}
|
|
95
|
+
return invalid();
|
|
96
|
+
}
|
|
97
|
+
export function applyAgentConfigPatch(snapshot, patch) {
|
|
98
|
+
const { loops: _loops, pipeline: _pipeline, ...clean } = snapshot.agent;
|
|
99
|
+
const agent = { ...clean, ...patch.set, name: snapshot.agent.name };
|
|
100
|
+
for (const field of patch.unset ?? [])
|
|
101
|
+
delete agent[field];
|
|
102
|
+
return { agent, teamName: patch.teamName ?? snapshot.teamName };
|
|
103
|
+
}
|
|
2
104
|
//# sourceMappingURL=agent-store.js.map
|