@polpo-ai/server 0.15.143 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deps.d.ts +8 -5
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +0 -7
- package/dist/deps.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/agent-revisions.test.d.ts +2 -0
- package/dist/routes/agent-revisions.test.d.ts.map +1 -0
- package/dist/routes/agent-revisions.test.js +118 -0
- package/dist/routes/agent-revisions.test.js.map +1 -0
- package/dist/routes/agents.d.ts +3 -0
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +88 -8
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +22 -2
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/completions/agent-step-runner.d.ts.map +1 -1
- package/dist/routes/completions/agent-step-runner.js +1 -1
- package/dist/routes/completions/agent-step-runner.js.map +1 -1
- package/dist/routes/completions/agent-step-runner.test.js +3 -1
- package/dist/routes/completions/agent-step-runner.test.js.map +1 -1
- package/dist/routes/completions/chat-handler.d.ts +1 -0
- package/dist/routes/completions/chat-handler.d.ts.map +1 -1
- package/dist/routes/completions/chat-handler.js.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.d.ts.map +1 -1
- package/dist/routes/completions/chat-via-run-handler.js +1 -0
- package/dist/routes/completions/chat-via-run-handler.js.map +1 -1
- package/dist/routes/completions/conversation-turn.d.ts +3 -1
- package/dist/routes/completions/conversation-turn.d.ts.map +1 -1
- package/dist/routes/completions/conversation-turn.js +27 -10
- package/dist/routes/completions/conversation-turn.js.map +1 -1
- package/dist/routes/completions/project-loop-runner.d.ts +3 -1
- package/dist/routes/completions/project-loop-runner.d.ts.map +1 -1
- package/dist/routes/completions/project-loop-runner.js +36 -5
- package/dist/routes/completions/project-loop-runner.js.map +1 -1
- package/dist/routes/completions/schemas.d.ts +2 -2
- package/dist/routes/completions/schemas.d.ts.map +1 -1
- package/dist/routes/completions/schemas.js +2 -5
- package/dist/routes/completions/schemas.js.map +1 -1
- package/dist/routes/completions/skill-activation-runtime.test.js +1 -1
- package/dist/routes/completions/skill-activation-runtime.test.js.map +1 -1
- package/dist/routes/completions-agent-lifetime.test.d.ts +2 -0
- package/dist/routes/completions-agent-lifetime.test.d.ts.map +1 -0
- package/dist/routes/completions-agent-lifetime.test.js +97 -0
- package/dist/routes/completions-agent-lifetime.test.js.map +1 -0
- package/dist/routes/completions.d.ts +4 -1
- package/dist/routes/completions.d.ts.map +1 -1
- package/dist/routes/completions.js +1 -0
- package/dist/routes/completions.js.map +1 -1
- package/dist/routes/connect-callback.d.ts +5 -0
- package/dist/routes/connect-callback.d.ts.map +1 -0
- package/dist/routes/connect-callback.js +30 -0
- package/dist/routes/connect-callback.js.map +1 -0
- package/dist/routes/connect-callback.test.d.ts +2 -0
- package/dist/routes/connect-callback.test.d.ts.map +1 -0
- package/dist/routes/connect-callback.test.js +52 -0
- package/dist/routes/connect-callback.test.js.map +1 -0
- package/dist/routes/connect.d.ts.map +1 -1
- package/dist/routes/connect.js +161 -5
- package/dist/routes/connect.js.map +1 -1
- package/dist/routes/connect.test.js +171 -2
- package/dist/routes/connect.test.js.map +1 -1
- package/dist/routes/data-openapi.d.ts +4 -0
- package/dist/routes/data-openapi.d.ts.map +1 -0
- package/dist/routes/data-openapi.js +156 -0
- package/dist/routes/data-openapi.js.map +1 -0
- package/dist/routes/data.d.ts +6 -0
- package/dist/routes/data.d.ts.map +1 -0
- package/dist/routes/data.js +102 -0
- package/dist/routes/data.js.map +1 -0
- package/dist/routes/data.test.d.ts +2 -0
- package/dist/routes/data.test.d.ts.map +1 -0
- package/dist/routes/data.test.js +51 -0
- package/dist/routes/data.test.js.map +1 -0
- package/dist/routes/missions.d.ts +3 -2
- package/dist/routes/missions.d.ts.map +1 -1
- package/dist/routes/missions.js +47 -16
- package/dist/routes/missions.js.map +1 -1
- package/dist/routes/missions.test.d.ts +2 -0
- package/dist/routes/missions.test.d.ts.map +1 -0
- package/dist/routes/missions.test.js +88 -0
- package/dist/routes/missions.test.js.map +1 -0
- package/dist/routes/queued-metadata.test.d.ts +2 -0
- package/dist/routes/queued-metadata.test.d.ts.map +1 -0
- package/dist/routes/queued-metadata.test.js +29 -0
- package/dist/routes/queued-metadata.test.js.map +1 -0
- package/dist/routes/task-cancellation.test.d.ts +2 -0
- package/dist/routes/task-cancellation.test.d.ts.map +1 -0
- package/dist/routes/task-cancellation.test.js +58 -0
- package/dist/routes/task-cancellation.test.js.map +1 -0
- package/dist/routes/tasks.d.ts +2 -1
- package/dist/routes/tasks.d.ts.map +1 -1
- package/dist/routes/tasks.js +42 -6
- package/dist/routes/tasks.js.map +1 -1
- package/dist/schemas.d.ts +53 -15
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +12 -4
- package/dist/schemas.js.map +1 -1
- package/dist/schemas.test.js +16 -2
- package/dist/schemas.test.js.map +1 -1
- package/package.json +7 -7
package/dist/deps.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MissionAbortOptions, MissionAbortResult, MissionExecutionOptions } from "@polpo-ai/core/mission-store";
|
|
1
2
|
/**
|
|
2
3
|
* Route dependency interfaces.
|
|
3
4
|
*
|
|
@@ -74,6 +75,8 @@ export interface AgentRouteDeps {
|
|
|
74
75
|
addAgent: (...args: any[]) => Promise<any>;
|
|
75
76
|
removeAgent: (...args: any[]) => Promise<any>;
|
|
76
77
|
updateAgent: (...args: any[]) => Promise<any>;
|
|
78
|
+
getAgentSnapshot?: import("@polpo-ai/core/agent-store").VersionedAgentStore["getAgentSnapshot"];
|
|
79
|
+
compareAndSwapAgent?: import("@polpo-ai/core/agent-store").VersionedAgentStore["compareAndSwapAgent"];
|
|
77
80
|
getTeams: () => Promise<any[]>;
|
|
78
81
|
getTeam: (name?: string) => Promise<any>;
|
|
79
82
|
addTeam: (...args: any[]) => Promise<any>;
|
|
@@ -93,12 +96,12 @@ export interface MissionRouteDeps {
|
|
|
93
96
|
createMission: (...args: any[]) => Promise<any>;
|
|
94
97
|
updateMission: (missionId: string, updates: any) => Promise<any>;
|
|
95
98
|
deleteMission: (missionId: string) => Promise<any>;
|
|
96
|
-
executeMission: (missionId: string) => Promise<any>;
|
|
99
|
+
executeMission: (missionId: string, options?: MissionExecutionOptions) => Promise<any>;
|
|
97
100
|
resumeMission: (missionId: string, opts?: any) => Promise<any>;
|
|
98
|
-
|
|
99
|
-
getActiveCheckpoints: () => any[]
|
|
101
|
+
abortMission: (missionId: string, options?: MissionAbortOptions) => Promise<MissionAbortResult>;
|
|
102
|
+
getActiveCheckpoints: () => any[] | Promise<any[]>;
|
|
100
103
|
resumeCheckpointByMissionId: (missionId: string, checkpointName: string) => Promise<any>;
|
|
101
|
-
getActiveDelays: () => any[]
|
|
104
|
+
getActiveDelays: () => any[] | Promise<any[]>;
|
|
102
105
|
addMissionTask: (missionId: string, task: any) => Promise<any>;
|
|
103
106
|
updateMissionTask: (missionId: string, taskTitle: string, updates: any) => Promise<any>;
|
|
104
107
|
removeMissionTask: (missionId: string, taskTitle: string) => Promise<any>;
|
|
@@ -120,7 +123,7 @@ export interface MissionRouteDeps {
|
|
|
120
123
|
export interface PlaybookRouteDeps {
|
|
121
124
|
playbookStore: PlaybookStore;
|
|
122
125
|
createMission: (...args: any[]) => Promise<any>;
|
|
123
|
-
executeMission: (missionId: string) => Promise<any>;
|
|
126
|
+
executeMission: (missionId: string, options?: MissionExecutionOptions) => Promise<any>;
|
|
124
127
|
}
|
|
125
128
|
export interface ApprovalRouteDeps {
|
|
126
129
|
getAllApprovals: (status?: string) => Promise<any[]>;
|
package/dist/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACrH;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,0BAA0B;IACzC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,6BAA6B,EAAE,CAC7B,cAAc,EAAE,OAAO,KACpB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,8BAA8B,CAAC;IACvD,+EAA+E;IAC/E,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,KACpB,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtD,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,KACpB,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CACb,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,gBAAgB,KACpB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,qBAAqB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACvD,sBAAsB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1D;AAID,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,4BAA4B,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAChG,mBAAmB,CAAC,EAAE,OAAO,4BAA4B,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IACtG,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9E,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,WAAW,EAAE,MAAM,MAAM,CAAC;CAC3B;AAID,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,oBAAoB,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACvF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChG,oBAAoB,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,2BAA2B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,eAAe,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxF,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnG,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACrF,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3E,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACtE,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9F,wBAAwB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChF,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/F,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,0BAA0B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrF;AAID,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACxF;AAID,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjH,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CAC3C;AAID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,GAAG,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,aAAa,EAAE,MAAM,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAID,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,GAAG,EAAE,CAAC;IAC7B,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,GAAG,CAAC;IACnD,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,CAAC;IACvC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACnE;AAID,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,kBAAkB,GAAG,SAAS,CAAC;IACxD,SAAS,EAAE,SAAS,CAAC;CACtB;AAID,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,CAAC;IACrB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,UAAU,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;CACzC;AAID,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,CAAC;IACrB,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,sBAAsB,GAAG,SAAS,CAAC;IAChE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;IAC3C,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1D;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,CAAC;CACtB;AAID,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1C"}
|
package/dist/deps.js
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Route dependency interfaces.
|
|
3
|
-
*
|
|
4
|
-
* Each route factory accepts a `() => XxxDeps` thunk that is evaluated
|
|
5
|
-
* at request time (after orchestrator init). This decouples routes from
|
|
6
|
-
* the Orchestrator god-object so consumers can wire stores directly.
|
|
7
|
-
*/
|
|
8
1
|
export {};
|
|
9
2
|
//# sourceMappingURL=deps.js.map
|
package/dist/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* For routes that require Node.js (completions, files, agents avatar),
|
|
8
8
|
* import from "polpo-ai" instead.
|
|
9
9
|
*/
|
|
10
|
+
export { dataRoutes, type DataServiceResolver } from "./routes/data.js";
|
|
10
11
|
export { taskRoutes } from "./routes/tasks.js";
|
|
11
12
|
export { missionRoutes } from "./routes/missions.js";
|
|
12
13
|
export { playbookRoutes } from "./routes/playbooks.js";
|
|
@@ -33,6 +34,7 @@ export { configRoutes } from "./routes/config.js";
|
|
|
33
34
|
export { fileRoutes, type FileRouteDeps } from "./routes/files.js";
|
|
34
35
|
export { skillRoutes, type SkillRouteDeps } from "./routes/skills.js";
|
|
35
36
|
export { connectRoutes } from "./routes/connect.js";
|
|
37
|
+
export { connectCallbackRoutes } from "./routes/connect-callback.js";
|
|
36
38
|
export { memoryItemRoutes } from "./routes/memory-items.js";
|
|
37
39
|
export { memoryCandidateRoutes } from "./routes/memory-candidates.js";
|
|
38
40
|
export { customToolRoutes, type CustomToolDeployer, type CustomToolDeployProgress, type CustomToolDeployResult, type CustomToolRouteDeps, type CustomToolRunner, } from "./routes/custom-tools.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* import from "polpo-ai" instead.
|
|
9
9
|
*/
|
|
10
10
|
// Route factories
|
|
11
|
+
export { dataRoutes } from "./routes/data.js";
|
|
11
12
|
export { taskRoutes } from "./routes/tasks.js";
|
|
12
13
|
export { missionRoutes } from "./routes/missions.js";
|
|
13
14
|
export { playbookRoutes } from "./routes/playbooks.js";
|
|
@@ -33,6 +34,7 @@ export { configRoutes } from "./routes/config.js";
|
|
|
33
34
|
export { fileRoutes } from "./routes/files.js";
|
|
34
35
|
export { skillRoutes } from "./routes/skills.js";
|
|
35
36
|
export { connectRoutes } from "./routes/connect.js";
|
|
37
|
+
export { connectCallbackRoutes } from "./routes/connect-callback.js";
|
|
36
38
|
export { memoryItemRoutes } from "./routes/memory-items.js";
|
|
37
39
|
export { memoryCandidateRoutes } from "./routes/memory-candidates.js";
|
|
38
40
|
export { customToolRoutes, } from "./routes/custom-tools.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,EACf,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAO9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,WAAW,GAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GAYvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,oCAAoC,GAWrC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAyB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,GAGlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAsC,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACL,gBAAgB,GAMjB,MAAM,0BAA0B,CAAC;AAoBlC,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC1I,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,4BAA4B,GAI7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,EACf,oBAAoB,GAIrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAO9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,WAAW,GAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,GAYvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,wBAAwB,EACxB,oCAAoC,GAWrC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAyB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,GAGlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAsC,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACL,gBAAgB,GAMjB,MAAM,0BAA0B,CAAC;AAoBlC,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAC1I,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,4BAA4B,GAI7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEhF,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-revisions.test.d.ts","sourceRoot":"","sources":["../../src/routes/agent-revisions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { AgentMutationError } from "@polpo-ai/core/agent-store";
|
|
3
|
+
import { agentRoutes } from "./agents.js";
|
|
4
|
+
function fixture(versioned = true) {
|
|
5
|
+
const snapshot = { agent: { name: "support", allowedTools: ["read"], identity: { displayName: "Support" } },
|
|
6
|
+
teamName: "main", revision: { incarnation: "creation", version: 7 } };
|
|
7
|
+
const getAgents = vi.fn(async () => [snapshot.agent]);
|
|
8
|
+
const getAgentSnapshot = vi.fn(async () => structuredClone(snapshot));
|
|
9
|
+
const updateAgent = vi.fn(async () => ({ ...snapshot.agent, role: "ordinary receipt" }));
|
|
10
|
+
const compareAndSwapAgent = vi.fn(async (_name, mutation) => {
|
|
11
|
+
if (mutation.expected.version !== snapshot.revision.version)
|
|
12
|
+
throw new AgentMutationError("agent_revision_conflict", "Changed");
|
|
13
|
+
return { mutationId: mutation.mutationId, previousRevision: mutation.expected, snapshot: {
|
|
14
|
+
...snapshot, agent: { ...snapshot.agent, ...mutation.patch.set },
|
|
15
|
+
revision: { ...snapshot.revision, version: snapshot.revision.version + 1 },
|
|
16
|
+
} };
|
|
17
|
+
});
|
|
18
|
+
const app = agentRoutes(() => ({
|
|
19
|
+
getAgents, updateAgent, ...(versioned ? { getAgentSnapshot, compareAndSwapAgent } : {}),
|
|
20
|
+
addAgent: async () => { }, removeAgent: async () => false, getTeams: async () => [], getTeam: async () => undefined,
|
|
21
|
+
addTeam: async () => { }, updateTeam: async () => undefined, removeTeam: async () => false, renameTeam: async () => { },
|
|
22
|
+
taskStore: {}, runStore: {}, polpoDir: ".polpo",
|
|
23
|
+
}));
|
|
24
|
+
return { app, snapshot, getAgents, getAgentSnapshot, compareAndSwapAgent, updateAgent };
|
|
25
|
+
}
|
|
26
|
+
describe("agent revision HTTP contract", () => {
|
|
27
|
+
it("returns the revision and ETag of the same snapshot", async () => {
|
|
28
|
+
const f = fixture();
|
|
29
|
+
const response = await f.app.request("/support");
|
|
30
|
+
expect(response.status).toBe(200);
|
|
31
|
+
expect(response.headers.get("ETag")).toBe('"agent:creation:7"');
|
|
32
|
+
expect(await response.json()).toMatchObject({ revision: f.snapshot.revision, data: f.snapshot.agent });
|
|
33
|
+
expect(f.getAgents).not.toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
it("uses If-Match and an idempotency key and returns the commit, never a later reread", async () => {
|
|
36
|
+
const f = fixture();
|
|
37
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
38
|
+
"content-type": "application/json", "if-match": '"agent:creation:7"', "idempotency-key": "assignment-1",
|
|
39
|
+
}, body: JSON.stringify({ allowedTools: ["read", "gmail_read"], identity: { bio: "New" }, reportsTo: "" }) });
|
|
40
|
+
expect(response.status).toBe(200);
|
|
41
|
+
expect(response.headers.get("ETag")).toBe('"agent:creation:8"');
|
|
42
|
+
expect(f.compareAndSwapAgent).toHaveBeenCalledWith("support", {
|
|
43
|
+
expected: f.snapshot.revision, mutationId: "assignment-1", patch: {
|
|
44
|
+
set: { allowedTools: ["read", "gmail_read"], identity: { displayName: "Support", bio: "New" } }, unset: ["reportsTo"],
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
expect(await response.json()).toMatchObject({ data: { allowedTools: ["read", "gmail_read"] },
|
|
48
|
+
mutation: { mutationId: "assignment-1", previousRevision: f.snapshot.revision }, revision: { version: 8 } });
|
|
49
|
+
expect(f.updateAgent).not.toHaveBeenCalled();
|
|
50
|
+
expect(f.getAgents).not.toHaveBeenCalled();
|
|
51
|
+
expect(f.getAgentSnapshot).toHaveBeenCalledTimes(1);
|
|
52
|
+
});
|
|
53
|
+
it("rejects stale configuration with a structured precondition failure", async () => {
|
|
54
|
+
const f = fixture();
|
|
55
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
56
|
+
"content-type": "application/json", "if-match": '"agent:creation:6"', "idempotency-key": "stale",
|
|
57
|
+
}, body: JSON.stringify({ allowedTools: [] }) });
|
|
58
|
+
expect(response.status).toBe(412);
|
|
59
|
+
expect(await response.json()).toMatchObject({ code: "agent_revision_conflict" });
|
|
60
|
+
expect(f.updateAgent).not.toHaveBeenCalled();
|
|
61
|
+
});
|
|
62
|
+
it.each([
|
|
63
|
+
{ "if-match": "*", "idempotency-key": "id" },
|
|
64
|
+
{ "if-match": 'W/"agent:creation:7"', "idempotency-key": "id" },
|
|
65
|
+
{ "if-match": '"agent:creation:7"' },
|
|
66
|
+
{ "idempotency-key": "orphan" },
|
|
67
|
+
])("never degrades a malformed conditional request to an ordinary write: %j", async (headers) => {
|
|
68
|
+
const f = fixture();
|
|
69
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: { "content-type": "application/json", ...headers },
|
|
70
|
+
body: JSON.stringify({ role: "new" }) });
|
|
71
|
+
expect(response.status).toBe(400);
|
|
72
|
+
expect(f.updateAgent).not.toHaveBeenCalled();
|
|
73
|
+
expect(f.compareAndSwapAgent).not.toHaveBeenCalled();
|
|
74
|
+
});
|
|
75
|
+
it("fails closed on an adapter without conditional mutation support", async () => {
|
|
76
|
+
const f = fixture(false);
|
|
77
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
78
|
+
"content-type": "application/json", "if-match": '"agent:creation:7"', "idempotency-key": "id",
|
|
79
|
+
}, body: JSON.stringify({ allowedTools: [] }) });
|
|
80
|
+
expect(response.status).toBe(501);
|
|
81
|
+
expect(f.updateAgent).not.toHaveBeenCalled();
|
|
82
|
+
});
|
|
83
|
+
it("rejects an empty team before delegating the mutation", async () => {
|
|
84
|
+
const f = fixture();
|
|
85
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
86
|
+
"content-type": "application/json", "if-match": '"agent:creation:7"', "idempotency-key": "invalid-team",
|
|
87
|
+
}, body: JSON.stringify({ team: "" }) });
|
|
88
|
+
expect(response.status).toBe(400);
|
|
89
|
+
expect(f.compareAndSwapAgent).not.toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
it("carries explicit field removal without turning it into an empty replacement", async () => {
|
|
92
|
+
const f = fixture();
|
|
93
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
94
|
+
"content-type": "application/json", "if-match": '"agent:creation:7"', "idempotency-key": "unset-policy",
|
|
95
|
+
}, body: JSON.stringify({ unset: ["allowedTools", "mcpServers"] }) });
|
|
96
|
+
expect(response.status).toBe(200);
|
|
97
|
+
expect(f.compareAndSwapAgent).toHaveBeenCalledWith("support", expect.objectContaining({
|
|
98
|
+
patch: { set: {}, unset: ["allowedTools", "mcpServers"] },
|
|
99
|
+
}));
|
|
100
|
+
});
|
|
101
|
+
it.each([false, true])("rejects ambiguous/unconditional field removal (%s)", async (conditional) => {
|
|
102
|
+
const f = fixture();
|
|
103
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: {
|
|
104
|
+
"content-type": "application/json", ...(conditional ? { "if-match": '"agent:creation:7"', "idempotency-key": "unset" } : {}),
|
|
105
|
+
}, body: JSON.stringify({ role: "both set and unset", unset: ["role"] }) });
|
|
106
|
+
expect(response.status).toBe(400);
|
|
107
|
+
expect(f.compareAndSwapAgent).not.toHaveBeenCalled();
|
|
108
|
+
expect(f.updateAgent).not.toHaveBeenCalled();
|
|
109
|
+
});
|
|
110
|
+
it("returns the actual ordinary mutation receipt as well", async () => {
|
|
111
|
+
const f = fixture(false);
|
|
112
|
+
const response = await f.app.request("/support", { method: "PATCH", headers: { "content-type": "application/json" },
|
|
113
|
+
body: JSON.stringify({ role: "ordinary receipt" }) });
|
|
114
|
+
expect(response.status).toBe(200);
|
|
115
|
+
expect(await response.json()).toMatchObject({ data: { role: "ordinary receipt" } });
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=agent-revisions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-revisions.test.js","sourceRoot":"","sources":["../../src/routes/agent-revisions.test.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/agents.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
2
|
import type { FileSystem } from "@polpo-ai/core";
|
|
3
|
+
import { type AgentSnapshot, type AgentMutation, type AgentMutationReceipt } from "@polpo-ai/core/agent-store";
|
|
3
4
|
/**
|
|
4
5
|
* Agent/team management routes.
|
|
5
6
|
*/
|
|
@@ -8,6 +9,8 @@ export declare function agentRoutes(getDeps: () => {
|
|
|
8
9
|
addAgent: (agent: any, teamName?: string) => Promise<void>;
|
|
9
10
|
removeAgent: (name: string) => Promise<boolean>;
|
|
10
11
|
updateAgent: (name: string, updates: any) => Promise<any>;
|
|
12
|
+
getAgentSnapshot?: (name: string) => Promise<AgentSnapshot | undefined>;
|
|
13
|
+
compareAndSwapAgent?: (name: string, mutation: AgentMutation) => Promise<AgentMutationReceipt>;
|
|
11
14
|
getTeams: () => Promise<any[]>;
|
|
12
15
|
getTeam: (name?: string) => Promise<any>;
|
|
13
16
|
addTeam: (team: any) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/routes/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAA8C,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAsB,MAAM,4BAA4B,CAAC;AAwC/K;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM;IACzC,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACxE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/F,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9E,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB,GAAG,WAAW,CAqkBd"}
|
package/dist/routes/agents.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
2
2
|
import { join, extname } from "node:path";
|
|
3
|
+
import { AgentMutationError, normalizeAgentMutation } from "@polpo-ai/core/agent-store";
|
|
3
4
|
import { AddAgentSchema, UpdateAgentSchema, RenameTeamSchema, AddTeamSchema, UpdateTeamSchema, } from "../schemas.js";
|
|
4
5
|
import { redactAgentConfig, redactTeam, sanitizeTranscriptEntry } from "../security.js";
|
|
5
6
|
/** Enrich agent with avatarUrl for client convenience. */
|
|
@@ -14,6 +15,23 @@ function withAvatarUrl(agent) {
|
|
|
14
15
|
},
|
|
15
16
|
};
|
|
16
17
|
}
|
|
18
|
+
function revisionEtag(revision) {
|
|
19
|
+
return `"agent:${revision.incarnation}:${revision.version}"`;
|
|
20
|
+
}
|
|
21
|
+
const agentRevisionSchema = z.object({ incarnation: z.string(), version: z.number().int().nonnegative() });
|
|
22
|
+
const agentSnapshotResponseSchema = z.object({
|
|
23
|
+
ok: z.boolean(), data: z.any(), revision: agentRevisionSchema.optional(),
|
|
24
|
+
mutation: z.object({ mutationId: z.string(), previousRevision: agentRevisionSchema }).optional(),
|
|
25
|
+
});
|
|
26
|
+
function mutationPrecondition(etag, mutationId) {
|
|
27
|
+
if (etag === undefined && mutationId === undefined)
|
|
28
|
+
return undefined;
|
|
29
|
+
const match = etag?.match(/^"agent:([\w.:-]+):([0-9]+)"$/);
|
|
30
|
+
if (!match || !mutationId)
|
|
31
|
+
throw new AgentMutationError("invalid_agent_mutation", "Supply a strong agent If-Match and Idempotency-Key together");
|
|
32
|
+
const normalized = normalizeAgentMutation({ expected: { incarnation: match[1], version: Number(match[2]) }, mutationId, patch: {} });
|
|
33
|
+
return { expected: normalized.expected, mutationId: normalized.mutationId };
|
|
34
|
+
}
|
|
17
35
|
/**
|
|
18
36
|
* Agent/team management routes.
|
|
19
37
|
*/
|
|
@@ -111,12 +129,25 @@ export function agentRoutes(getDeps) {
|
|
|
111
129
|
content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } },
|
|
112
130
|
description: "Agent not found",
|
|
113
131
|
},
|
|
132
|
+
409: {
|
|
133
|
+
content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } },
|
|
134
|
+
description: "Agent changed while deletion was pending",
|
|
135
|
+
},
|
|
114
136
|
},
|
|
115
137
|
});
|
|
116
138
|
app.openapi(deleteAgentRoute, async (c) => {
|
|
117
139
|
const deps = getDeps();
|
|
118
140
|
const { name } = c.req.valid("param");
|
|
119
|
-
|
|
141
|
+
let removed;
|
|
142
|
+
try {
|
|
143
|
+
removed = await deps.removeAgent(name);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
if (error instanceof AgentMutationError && error.code === "agent_revision_conflict") {
|
|
147
|
+
return c.json({ ok: false, error: error.message, code: error.code }, 409);
|
|
148
|
+
}
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
120
151
|
if (!removed) {
|
|
121
152
|
return c.json({ ok: false, error: "Agent not found", code: "NOT_FOUND" }, 404);
|
|
122
153
|
}
|
|
@@ -351,28 +382,47 @@ export function agentRoutes(getDeps) {
|
|
|
351
382
|
summary: "Update agent",
|
|
352
383
|
request: {
|
|
353
384
|
params: z.object({ name: z.string() }),
|
|
385
|
+
headers: z.object({ "if-match": z.string().optional(), "idempotency-key": z.string().optional() }),
|
|
354
386
|
body: { content: { "application/json": { schema: UpdateAgentSchema } } },
|
|
355
387
|
},
|
|
356
388
|
responses: {
|
|
357
389
|
200: {
|
|
358
|
-
content: { "application/json": { schema:
|
|
390
|
+
content: { "application/json": { schema: agentSnapshotResponseSchema } },
|
|
359
391
|
description: "Agent updated",
|
|
360
392
|
},
|
|
361
393
|
404: {
|
|
362
394
|
content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } },
|
|
363
395
|
description: "Agent not found",
|
|
364
396
|
},
|
|
397
|
+
400: { content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } }, description: "Invalid mutation precondition" },
|
|
398
|
+
412: { content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } }, description: "Agent revision changed" },
|
|
399
|
+
501: { content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } }, description: "Host does not support versioned agent writes" },
|
|
365
400
|
},
|
|
366
401
|
});
|
|
367
402
|
app.openapi(updateAgentRoute, async (c) => {
|
|
368
403
|
const deps = getDeps();
|
|
369
404
|
const { name } = c.req.valid("param");
|
|
370
|
-
|
|
405
|
+
let precondition;
|
|
406
|
+
try {
|
|
407
|
+
precondition = mutationPrecondition(c.req.header("If-Match"), c.req.header("Idempotency-Key"));
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
return c.json({ ok: false, error: error.message, code: "invalid_agent_mutation" }, 400);
|
|
411
|
+
}
|
|
412
|
+
if (precondition && (!deps.getAgentSnapshot || !deps.compareAndSwapAgent)) {
|
|
413
|
+
return c.json({ ok: false, error: "This host does not support conditional agent mutations", code: "agent_revision_unsupported" }, 501);
|
|
414
|
+
}
|
|
415
|
+
const existing = precondition
|
|
416
|
+
? (await deps.getAgentSnapshot(name))?.agent
|
|
417
|
+
: (await deps.getAgents()).find(a => a.name === name);
|
|
371
418
|
if (!existing) {
|
|
372
419
|
return c.json({ ok: false, error: "Agent not found", code: "NOT_FOUND" }, 404);
|
|
373
420
|
}
|
|
374
421
|
const body = c.req.valid("json");
|
|
375
422
|
// Handle reportsTo: empty string clears it
|
|
423
|
+
if (body.unset !== undefined && !precondition) {
|
|
424
|
+
return c.json({ ok: false, error: "Explicit field removal requires If-Match and Idempotency-Key", code: "invalid_agent_mutation" }, 400);
|
|
425
|
+
}
|
|
376
426
|
let reportsTo = undefined;
|
|
377
427
|
if (typeof body.reportsTo === "string") {
|
|
378
428
|
reportsTo = body.reportsTo.trim() || undefined;
|
|
@@ -419,8 +469,35 @@ export function agentRoutes(getDeps) {
|
|
|
419
469
|
// omit the field to leave existing config untouched.
|
|
420
470
|
...(body.mcpServers !== undefined && { mcpServers: body.mcpServers }),
|
|
421
471
|
};
|
|
422
|
-
|
|
423
|
-
|
|
472
|
+
if (precondition) {
|
|
473
|
+
const set = {}, unset = [...(body.unset ?? [])];
|
|
474
|
+
for (const [field, value] of Object.entries(updates)) {
|
|
475
|
+
if (field === "team")
|
|
476
|
+
continue;
|
|
477
|
+
if (value === undefined)
|
|
478
|
+
unset.push(field);
|
|
479
|
+
else
|
|
480
|
+
set[field] = value;
|
|
481
|
+
}
|
|
482
|
+
try {
|
|
483
|
+
const mutation = normalizeAgentMutation({ ...precondition, patch: {
|
|
484
|
+
set, unset: unset,
|
|
485
|
+
...(body.team !== undefined && { teamName: body.team }),
|
|
486
|
+
} });
|
|
487
|
+
const receipt = await deps.compareAndSwapAgent(name, mutation);
|
|
488
|
+
c.header("ETag", revisionEtag(receipt.snapshot.revision));
|
|
489
|
+
return c.json({ ok: true, data: withAvatarUrl(redactAgentConfig(receipt.snapshot.agent)),
|
|
490
|
+
revision: receipt.snapshot.revision, mutation: { mutationId: receipt.mutationId, previousRevision: receipt.previousRevision } }, 200);
|
|
491
|
+
}
|
|
492
|
+
catch (error) {
|
|
493
|
+
if (error instanceof AgentMutationError) {
|
|
494
|
+
const status = error.code === "agent_revision_conflict" ? 412 : error.code === "agent_not_found" ? 404 : 400;
|
|
495
|
+
return c.json({ ok: false, error: error.message, code: error.code }, status);
|
|
496
|
+
}
|
|
497
|
+
throw error;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
const updated = await deps.updateAgent(name, updates);
|
|
424
501
|
return c.json({ ok: true, data: updated ? withAvatarUrl(redactAgentConfig(updated)) : null }, 200);
|
|
425
502
|
});
|
|
426
503
|
// GET /agents/:name — single agent detail (registered after static routes to avoid conflicts)
|
|
@@ -434,7 +511,7 @@ export function agentRoutes(getDeps) {
|
|
|
434
511
|
},
|
|
435
512
|
responses: {
|
|
436
513
|
200: {
|
|
437
|
-
content: { "application/json": { schema:
|
|
514
|
+
content: { "application/json": { schema: agentSnapshotResponseSchema } },
|
|
438
515
|
description: "Agent detail",
|
|
439
516
|
},
|
|
440
517
|
404: {
|
|
@@ -446,11 +523,14 @@ export function agentRoutes(getDeps) {
|
|
|
446
523
|
app.openapi(getAgentRoute, async (c) => {
|
|
447
524
|
const deps = getDeps();
|
|
448
525
|
const { name } = c.req.valid("param");
|
|
449
|
-
const
|
|
526
|
+
const snapshot = deps.getAgentSnapshot ? await deps.getAgentSnapshot(name) : undefined;
|
|
527
|
+
const agent = deps.getAgentSnapshot ? snapshot?.agent : (await deps.getAgents()).find(a => a.name === name);
|
|
450
528
|
if (!agent) {
|
|
451
529
|
return c.json({ ok: false, error: "Agent not found", code: "NOT_FOUND" }, 404);
|
|
452
530
|
}
|
|
453
|
-
|
|
531
|
+
if (snapshot)
|
|
532
|
+
c.header("ETag", revisionEtag(snapshot.revision));
|
|
533
|
+
return c.json({ ok: true, data: withAvatarUrl(redactAgentConfig(agent)), ...(snapshot && { revision: snapshot.revision }) }, 200);
|
|
454
534
|
});
|
|
455
535
|
// ── POST /agents/:name/avatar — upload agent avatar ──
|
|
456
536
|
app.post("/:name/avatar", async (c) => {
|