@polpo-ai/server 0.10.4 → 0.10.6
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/routes/completions.d.ts +6 -1
- package/dist/routes/completions.d.ts.map +1 -1
- package/dist/routes/completions.js +113 -16
- package/dist/routes/completions.js.map +1 -1
- package/dist/routes/loop-runs.d.ts +5 -0
- package/dist/routes/loop-runs.d.ts.map +1 -1
- package/dist/routes/loop-runs.js +157 -1
- package/dist/routes/loop-runs.js.map +1 -1
- package/dist/routes/loop-runs.test.d.ts +2 -0
- package/dist/routes/loop-runs.test.d.ts.map +1 -0
- package/dist/routes/loop-runs.test.js +96 -0
- package/dist/routes/loop-runs.test.js.map +1 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export { scheduleRoutes } from "./routes/schedules.js";
|
|
|
17
17
|
export { watcherRoutes } from "./routes/watchers.js";
|
|
18
18
|
export { stateRoutes } from "./routes/state.js";
|
|
19
19
|
export { healthRoutes } from "./routes/health.js";
|
|
20
|
-
export { completionRoutes, type CompletionRouteDeps } from "./routes/completions.js";
|
|
20
|
+
export { completionRoutes, resumeProjectLoopRun, type CompletionRouteDeps } from "./routes/completions.js";
|
|
21
21
|
export { agentRoutes } from "./routes/agents.js";
|
|
22
22
|
export { loopRoutes, type LoopRouteDeps } from "./routes/loops.js";
|
|
23
23
|
export { loopRunRoutes, type LoopRunRouteDeps } from "./routes/loop-runs.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,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,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,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,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export { scheduleRoutes } from "./routes/schedules.js";
|
|
|
18
18
|
export { watcherRoutes } from "./routes/watchers.js";
|
|
19
19
|
export { stateRoutes } from "./routes/state.js";
|
|
20
20
|
export { healthRoutes } from "./routes/health.js";
|
|
21
|
-
export { completionRoutes } from "./routes/completions.js";
|
|
21
|
+
export { completionRoutes, resumeProjectLoopRun } from "./routes/completions.js";
|
|
22
22
|
export { agentRoutes } from "./routes/agents.js";
|
|
23
23
|
export { loopRoutes } from "./routes/loops.js";
|
|
24
24
|
export { loopRunRoutes } from "./routes/loop-runs.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,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAA4B,MAAM,yBAAyB,CAAC;
|
|
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,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAA4B,MAAM,yBAAyB,CAAC;AAC3G,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,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;AAiBtE,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEnF,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* the effectiveToolExecutor callback from deps.
|
|
20
20
|
*/
|
|
21
21
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
22
|
-
import { type LoopRunStore, type ProjectLoopConfig } from "@polpo-ai/core";
|
|
22
|
+
import { type LoopRunRecord, type LoopRunStore, type ProjectLoopConfig } from "@polpo-ai/core";
|
|
23
23
|
import type { ApprovalStore } from "@polpo-ai/core/approval-store";
|
|
24
24
|
import { type LanguageModel } from "ai";
|
|
25
25
|
/**
|
|
@@ -103,6 +103,11 @@ export interface CompletionRouteDeps {
|
|
|
103
103
|
isInteractive: (name: string) => boolean;
|
|
104
104
|
}>;
|
|
105
105
|
}
|
|
106
|
+
export declare function resumeProjectLoopRun(options: {
|
|
107
|
+
deps: CompletionRouteDeps;
|
|
108
|
+
runId: string;
|
|
109
|
+
resolvedBy?: string;
|
|
110
|
+
}): Promise<LoopRunRecord>;
|
|
106
111
|
export declare function completionRoutes(getDeps: () => CompletionRouteDeps, apiKeys?: string[]): OpenAPIHono;
|
|
107
112
|
export {};
|
|
108
113
|
//# sourceMappingURL=completions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,
|
|
1
|
+
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
22
22
|
import { streamSSE } from "hono/streaming";
|
|
23
23
|
import { nanoid } from "nanoid";
|
|
24
|
-
import { PipelineExecutor, LoopApprovalRequiredError, LoopPolicyDeniedError, agentMemoryScope, compactIfNeeded, normalizeProjectLoop, resolveLoopSelection, } from "@polpo-ai/core";
|
|
24
|
+
import { PipelineExecutor, LoopApprovalRequiredError, LoopPermissionApprovalRequiredError, LoopPermissionDeniedError, LoopPolicyDeniedError, agentMemoryScope, compactIfNeeded, normalizeProjectLoop, resolveLoopSelection, } from "@polpo-ai/core";
|
|
25
25
|
import { streamText, generateText, jsonSchema } from "ai";
|
|
26
26
|
const MAX_TURNS = 20;
|
|
27
27
|
/** Tools that write/modify files — emit file:changed after successful execution */
|
|
@@ -388,7 +388,7 @@ function modelNotFoundEnvelope(err, fallbackModelId, agent) {
|
|
|
388
388
|
}
|
|
389
389
|
function loopRuntimeErrorEnvelope(err) {
|
|
390
390
|
const message = err instanceof Error ? err.message : String(err);
|
|
391
|
-
if (err instanceof LoopApprovalRequiredError) {
|
|
391
|
+
if (err instanceof LoopApprovalRequiredError || err instanceof LoopPermissionApprovalRequiredError) {
|
|
392
392
|
return {
|
|
393
393
|
message,
|
|
394
394
|
type: "loop_runtime_error",
|
|
@@ -397,6 +397,9 @@ function loopRuntimeErrorEnvelope(err) {
|
|
|
397
397
|
loopRunId: err.loopRunId,
|
|
398
398
|
};
|
|
399
399
|
}
|
|
400
|
+
if (err instanceof LoopPermissionDeniedError) {
|
|
401
|
+
return { message, type: "loop_runtime_error", code: "loop_permission_blocked", loopRunId: err.loopRunId };
|
|
402
|
+
}
|
|
400
403
|
if (err instanceof LoopPolicyDeniedError) {
|
|
401
404
|
return { message, type: "loop_runtime_error", code: "loop_policy_blocked", loopRunId: err.loopRunId };
|
|
402
405
|
}
|
|
@@ -727,14 +730,32 @@ async function runAgentStepCompletion(options) {
|
|
|
727
730
|
}
|
|
728
731
|
}
|
|
729
732
|
async function runProjectLoopCompletion(options) {
|
|
730
|
-
const { deps, agentConfig, projectLoop, aiMessages, extraSystemParts, sessionId, user, onToolCall, onTrace } = options;
|
|
733
|
+
const { deps, agentConfig, projectLoop, aiMessages, extraSystemParts, sessionId, user, onToolCall, onTrace, resumeRun } = options;
|
|
731
734
|
const normalized = normalizeProjectLoop(projectLoop);
|
|
732
735
|
if (!normalized.pipeline)
|
|
733
736
|
throw new Error(`Loop "${projectLoop.name}" does not define a pipeline`);
|
|
734
737
|
const rootTools = await deps.resolveAgentTools(agentConfig);
|
|
735
738
|
const loopRunStore = deps.getLoopRunStore?.();
|
|
736
|
-
const
|
|
737
|
-
|
|
739
|
+
const resumeState = resumeRun?.resume;
|
|
740
|
+
const loopRunId = resumeRun?.id ?? (loopRunStore ? `looprun-${nanoid(16)}` : undefined);
|
|
741
|
+
if (loopRunStore && loopRunId && resumeRun) {
|
|
742
|
+
await loopRunStore.updateRun(loopRunId, {
|
|
743
|
+
status: "resuming",
|
|
744
|
+
error: undefined,
|
|
745
|
+
completedAt: undefined,
|
|
746
|
+
metadata: {
|
|
747
|
+
...resumeRun.metadata,
|
|
748
|
+
resumedAt: new Date().toISOString(),
|
|
749
|
+
resumeAttempts: (resumeState?.attempts ?? 0) + 1,
|
|
750
|
+
},
|
|
751
|
+
resume: resumeState ? {
|
|
752
|
+
...resumeState,
|
|
753
|
+
attempts: (resumeState.attempts ?? 0) + 1,
|
|
754
|
+
updatedAt: new Date().toISOString(),
|
|
755
|
+
} : undefined,
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
else if (loopRunStore && loopRunId) {
|
|
738
759
|
await loopRunStore.createRun({
|
|
739
760
|
id: loopRunId,
|
|
740
761
|
loop: projectLoop,
|
|
@@ -757,11 +778,16 @@ async function runProjectLoopCompletion(options) {
|
|
|
757
778
|
try {
|
|
758
779
|
const result = await executor.execute({
|
|
759
780
|
name: projectLoop.name,
|
|
760
|
-
pipeline: normalized.pipeline,
|
|
781
|
+
pipeline: resumeState ? { ...normalized.pipeline, steps: resumeState.steps } : normalized.pipeline,
|
|
761
782
|
loops: normalized.loops,
|
|
762
|
-
context: {},
|
|
783
|
+
context: resumeState?.context ?? {},
|
|
763
784
|
projectHooks: projectLoop.hooks,
|
|
785
|
+
projectPermissions: projectLoop.permissions,
|
|
764
786
|
projectPolicies: projectLoop.policies,
|
|
787
|
+
resume: resumeState ? {
|
|
788
|
+
previousNode: resumeState.previousNode,
|
|
789
|
+
approvedGates: resumeState.approvedGates,
|
|
790
|
+
} : undefined,
|
|
765
791
|
onTrace: async (event) => {
|
|
766
792
|
events.push(event);
|
|
767
793
|
if (loopRunStore && loopRunId)
|
|
@@ -837,7 +863,9 @@ async function runProjectLoopCompletion(options) {
|
|
|
837
863
|
await loopRunStore.updateRun(loopRunId, {
|
|
838
864
|
status: "completed",
|
|
839
865
|
context: result.context,
|
|
840
|
-
trace: result.events,
|
|
866
|
+
trace: resumeRun ? [...resumeRun.trace, ...result.events] : result.events,
|
|
867
|
+
resume: undefined,
|
|
868
|
+
approval: resumeRun?.approval ? { ...resumeRun.approval, status: "approved" } : undefined,
|
|
841
869
|
completedAt: new Date().toISOString(),
|
|
842
870
|
});
|
|
843
871
|
}
|
|
@@ -855,23 +883,31 @@ async function runProjectLoopCompletion(options) {
|
|
|
855
883
|
catch (err) {
|
|
856
884
|
if (loopRunStore && loopRunId) {
|
|
857
885
|
err.loopRunId = loopRunId;
|
|
858
|
-
if (err instanceof LoopApprovalRequiredError) {
|
|
886
|
+
if (err instanceof LoopApprovalRequiredError || err instanceof LoopPermissionApprovalRequiredError) {
|
|
859
887
|
const approvalStore = deps.getApprovalStore?.();
|
|
860
888
|
let approvalRequestId;
|
|
889
|
+
const gateId = err instanceof LoopPermissionApprovalRequiredError
|
|
890
|
+
? err.permission.id ?? `loop-permission-${nanoid(8)}`
|
|
891
|
+
: err.policy.id ?? `loop-policy-${nanoid(8)}`;
|
|
892
|
+
const gateName = err instanceof LoopPermissionApprovalRequiredError
|
|
893
|
+
? err.permission.description ?? err.permission.id ?? "Loop permission approval"
|
|
894
|
+
: err.policy.description ?? err.policy.id ?? "Loop policy approval";
|
|
895
|
+
const approvalType = err instanceof LoopPermissionApprovalRequiredError ? "permission" : "policy";
|
|
861
896
|
if (approvalStore) {
|
|
862
897
|
approvalRequestId = `approval-${nanoid(16)}`;
|
|
863
898
|
await approvalStore.upsert({
|
|
864
899
|
id: approvalRequestId,
|
|
865
|
-
gateId
|
|
866
|
-
gateName
|
|
900
|
+
gateId,
|
|
901
|
+
gateName,
|
|
867
902
|
status: "pending",
|
|
868
903
|
payload: {
|
|
869
904
|
type: "loop_approval",
|
|
905
|
+
approvalType,
|
|
870
906
|
loopRunId,
|
|
871
907
|
loopName: projectLoop.name,
|
|
872
908
|
agentName: agentConfig.name,
|
|
873
909
|
hook: err.hook,
|
|
874
|
-
policy: err.policy,
|
|
910
|
+
...(err instanceof LoopPermissionApprovalRequiredError ? { permission: err.permission } : { policy: err.policy }),
|
|
875
911
|
payload: err.payload,
|
|
876
912
|
context: err.context,
|
|
877
913
|
trace: events,
|
|
@@ -883,22 +919,26 @@ async function runProjectLoopCompletion(options) {
|
|
|
883
919
|
await loopRunStore.updateRun(loopRunId, {
|
|
884
920
|
status: "awaiting_approval",
|
|
885
921
|
context: err.context,
|
|
886
|
-
trace: events,
|
|
922
|
+
trace: resumeRun ? [...resumeRun.trace, ...events] : events,
|
|
887
923
|
approvalRequestId,
|
|
888
924
|
approval: {
|
|
889
|
-
|
|
925
|
+
type: approvalType,
|
|
926
|
+
policyId: err instanceof LoopPermissionApprovalRequiredError ? "permission" : err.policy.id ?? "anonymous",
|
|
927
|
+
permissionId: err instanceof LoopPermissionApprovalRequiredError ? err.permission.id ?? "anonymous" : undefined,
|
|
890
928
|
hook: err.hook,
|
|
891
|
-
message: err.policy.message,
|
|
929
|
+
message: err instanceof LoopPermissionApprovalRequiredError ? err.permission.message : err.policy.message,
|
|
892
930
|
payload: err.payload,
|
|
893
931
|
context: err.context,
|
|
932
|
+
status: "pending",
|
|
894
933
|
},
|
|
934
|
+
resume: buildLoopResumeState(err.resume, aiMessages, extraSystemParts, resumeRun?.resume?.approvedGates),
|
|
895
935
|
error: err.message,
|
|
896
936
|
});
|
|
897
937
|
}
|
|
898
938
|
else {
|
|
899
939
|
await loopRunStore.updateRun(loopRunId, {
|
|
900
940
|
status: "failed",
|
|
901
|
-
trace: events,
|
|
941
|
+
trace: resumeRun ? [...resumeRun.trace, ...events] : events,
|
|
902
942
|
error: err instanceof Error ? err.message : String(err),
|
|
903
943
|
completedAt: new Date().toISOString(),
|
|
904
944
|
});
|
|
@@ -912,6 +952,63 @@ async function runProjectLoopCompletion(options) {
|
|
|
912
952
|
}
|
|
913
953
|
}
|
|
914
954
|
}
|
|
955
|
+
function buildLoopResumeState(continuation, aiMessages, extraSystemParts, approvedGates) {
|
|
956
|
+
if (!continuation)
|
|
957
|
+
return undefined;
|
|
958
|
+
return {
|
|
959
|
+
context: continuation.context,
|
|
960
|
+
steps: continuation.steps,
|
|
961
|
+
previousNode: continuation.previousNode,
|
|
962
|
+
approvedGates: approvedGates ?? [],
|
|
963
|
+
runtime: {
|
|
964
|
+
aiMessages,
|
|
965
|
+
extraSystemParts,
|
|
966
|
+
},
|
|
967
|
+
attempts: 0,
|
|
968
|
+
createdAt: new Date().toISOString(),
|
|
969
|
+
};
|
|
970
|
+
}
|
|
971
|
+
export async function resumeProjectLoopRun(options) {
|
|
972
|
+
const loopRunStore = options.deps.getLoopRunStore?.();
|
|
973
|
+
if (!loopRunStore)
|
|
974
|
+
throw new Error("Loop run store is not configured");
|
|
975
|
+
const run = await loopRunStore.getRun(options.runId);
|
|
976
|
+
if (!run)
|
|
977
|
+
throw new Error(`Loop run "${options.runId}" not found`);
|
|
978
|
+
if (run.status !== "approval_approved") {
|
|
979
|
+
throw new Error(`Loop run "${options.runId}" is ${run.status}, not approval_approved`);
|
|
980
|
+
}
|
|
981
|
+
if (!run.resume || run.resume.steps.length === 0) {
|
|
982
|
+
throw new Error(`Loop run "${options.runId}" has no resume checkpoint`);
|
|
983
|
+
}
|
|
984
|
+
const agents = await options.deps.getAgents();
|
|
985
|
+
const agentConfig = agents.find((agent) => agent.name === run.agentName);
|
|
986
|
+
if (!agentConfig)
|
|
987
|
+
throw new Error(`Agent "${run.agentName ?? "unknown"}" not found for loop run "${run.id}"`);
|
|
988
|
+
if (!options.deps.getProjectLoop)
|
|
989
|
+
throw new Error("Project loop resolver is not configured");
|
|
990
|
+
const projectLoop = await options.deps.getProjectLoop(run.loopName);
|
|
991
|
+
if (!projectLoop)
|
|
992
|
+
throw new Error(`Project loop "${run.loopName}" not found`);
|
|
993
|
+
const aiMessages = Array.isArray(run.resume.runtime?.aiMessages) ? run.resume.runtime.aiMessages : [];
|
|
994
|
+
const extraSystemParts = Array.isArray(run.resume.runtime?.extraSystemParts)
|
|
995
|
+
? run.resume.runtime.extraSystemParts
|
|
996
|
+
: [];
|
|
997
|
+
await runProjectLoopCompletion({
|
|
998
|
+
deps: options.deps,
|
|
999
|
+
agentConfig,
|
|
1000
|
+
projectLoop,
|
|
1001
|
+
aiMessages,
|
|
1002
|
+
extraSystemParts,
|
|
1003
|
+
sessionId: run.sessionId,
|
|
1004
|
+
user: run.user,
|
|
1005
|
+
resumeRun: run,
|
|
1006
|
+
});
|
|
1007
|
+
const updated = await loopRunStore.getRun(run.id);
|
|
1008
|
+
if (!updated)
|
|
1009
|
+
throw new Error(`Loop run "${run.id}" disappeared after resume`);
|
|
1010
|
+
return updated;
|
|
1011
|
+
}
|
|
915
1012
|
export function completionRoutes(getDeps, apiKeys) {
|
|
916
1013
|
const app = new OpenAPIHono();
|
|
917
1014
|
app.openapi(chatCompletionsRoute, async (c) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
+
import type { ApprovalStore } from "@polpo-ai/core/approval-store";
|
|
2
3
|
import type { LoopRunStore } from "@polpo-ai/core/loop-run-store";
|
|
3
4
|
export interface LoopRunRouteDeps {
|
|
4
5
|
loopRunStore?: LoopRunStore;
|
|
6
|
+
approvalStore?: ApprovalStore;
|
|
7
|
+
resumeLoopRun?: (id: string, opts?: {
|
|
8
|
+
resolvedBy?: string;
|
|
9
|
+
}) => Promise<unknown>;
|
|
5
10
|
}
|
|
6
11
|
export declare function loopRunRoutes(getDeps: () => LoopRunRouteDeps): OpenAPIHono;
|
|
7
12
|
//# sourceMappingURL=loop-runs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-runs.d.ts","sourceRoot":"","sources":["../../src/routes/loop-runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"loop-runs.d.ts","sourceRoot":"","sources":["../../src/routes/loop-runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAgE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhI,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClF;AAWD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,gBAAgB,GAAG,WAAW,CA2I1E"}
|
package/dist/routes/loop-runs.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
2
|
-
const statusSchema = z.enum(["running", "completed", "failed", "awaiting_approval", "cancelled"]);
|
|
2
|
+
const statusSchema = z.enum(["running", "completed", "failed", "awaiting_approval", "approval_approved", "approval_rejected", "resuming", "cancelled"]);
|
|
3
|
+
const resolveApprovalBodySchema = z.object({
|
|
4
|
+
resolvedBy: z.string().optional(),
|
|
5
|
+
note: z.string().optional(),
|
|
6
|
+
});
|
|
7
|
+
const rejectApprovalBodySchema = resolveApprovalBodySchema.extend({
|
|
8
|
+
feedback: z.string().optional(),
|
|
9
|
+
});
|
|
3
10
|
export function loopRunRoutes(getDeps) {
|
|
4
11
|
const app = new OpenAPIHono();
|
|
5
12
|
app.openapi(createRoute({
|
|
@@ -56,6 +63,155 @@ export function loopRunRoutes(getDeps) {
|
|
|
56
63
|
return c.json({ ok: false, error: "Loop run not found", code: "NOT_FOUND" }, 404);
|
|
57
64
|
return c.json({ ok: true, data: run }, 200);
|
|
58
65
|
});
|
|
66
|
+
app.openapi(createRoute({
|
|
67
|
+
method: "post",
|
|
68
|
+
path: "/:id/approve",
|
|
69
|
+
tags: ["Loop Runs"],
|
|
70
|
+
summary: "Approve a loop run approval gate",
|
|
71
|
+
request: {
|
|
72
|
+
params: z.object({ id: z.string().min(1) }),
|
|
73
|
+
body: { content: { "application/json": { schema: resolveApprovalBodySchema } }, required: false },
|
|
74
|
+
},
|
|
75
|
+
responses: {
|
|
76
|
+
200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Loop run approval resolved" },
|
|
77
|
+
400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run is not awaiting approval" },
|
|
78
|
+
404: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run not found" },
|
|
79
|
+
501: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run store unavailable" },
|
|
80
|
+
},
|
|
81
|
+
}), async (c) => resolveLoopApproval(c, getDeps(), "approved"));
|
|
82
|
+
app.openapi(createRoute({
|
|
83
|
+
method: "post",
|
|
84
|
+
path: "/:id/reject",
|
|
85
|
+
tags: ["Loop Runs"],
|
|
86
|
+
summary: "Reject a loop run approval gate",
|
|
87
|
+
request: {
|
|
88
|
+
params: z.object({ id: z.string().min(1) }),
|
|
89
|
+
body: { content: { "application/json": { schema: rejectApprovalBodySchema } }, required: false },
|
|
90
|
+
},
|
|
91
|
+
responses: {
|
|
92
|
+
200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Loop run approval rejected" },
|
|
93
|
+
400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run is not awaiting approval" },
|
|
94
|
+
404: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run not found" },
|
|
95
|
+
501: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run store unavailable" },
|
|
96
|
+
},
|
|
97
|
+
}), async (c) => resolveLoopApproval(c, getDeps(), "rejected"));
|
|
98
|
+
app.openapi(createRoute({
|
|
99
|
+
method: "post",
|
|
100
|
+
path: "/:id/resume",
|
|
101
|
+
tags: ["Loop Runs"],
|
|
102
|
+
summary: "Resume an approved loop run from its approval checkpoint",
|
|
103
|
+
request: {
|
|
104
|
+
params: z.object({ id: z.string().min(1) }),
|
|
105
|
+
body: { content: { "application/json": { schema: resolveApprovalBodySchema } }, required: false },
|
|
106
|
+
},
|
|
107
|
+
responses: {
|
|
108
|
+
200: { content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } }, description: "Loop run resumed" },
|
|
109
|
+
400: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run cannot be resumed" },
|
|
110
|
+
404: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Loop run not found" },
|
|
111
|
+
501: { content: { "application/json": { schema: z.object({ ok: z.literal(false), error: z.string(), code: z.string() }) } }, description: "Resume handler unavailable" },
|
|
112
|
+
},
|
|
113
|
+
}), async (c) => {
|
|
114
|
+
const deps = getDeps();
|
|
115
|
+
if (!deps.loopRunStore)
|
|
116
|
+
return c.json({ ok: false, error: "Loop run store is not configured", code: "LOOP_RUN_STORE_UNAVAILABLE" }, 501);
|
|
117
|
+
if (!deps.resumeLoopRun)
|
|
118
|
+
return c.json({ ok: false, error: "Loop resume handler is not configured", code: "LOOP_RESUME_UNAVAILABLE" }, 501);
|
|
119
|
+
const run = await deps.loopRunStore.getRun(c.req.param("id"));
|
|
120
|
+
if (!run)
|
|
121
|
+
return c.json({ ok: false, error: "Loop run not found", code: "NOT_FOUND" }, 404);
|
|
122
|
+
if (run.status !== "approval_approved") {
|
|
123
|
+
return c.json({ ok: false, error: `Loop run is ${run.status}, not approval_approved`, code: "NOT_APPROVED" }, 400);
|
|
124
|
+
}
|
|
125
|
+
const body = await c.req.json().catch(() => ({}));
|
|
126
|
+
try {
|
|
127
|
+
const data = await deps.resumeLoopRun(run.id, { resolvedBy: body.resolvedBy });
|
|
128
|
+
return c.json({ ok: true, data }, 200);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return c.json({ ok: false, error: err instanceof Error ? err.message : String(err), code: "RESUME_FAILED" }, 400);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
59
134
|
return app;
|
|
60
135
|
}
|
|
136
|
+
async function resolveLoopApproval(c, deps, decision) {
|
|
137
|
+
const store = deps.loopRunStore;
|
|
138
|
+
if (!store)
|
|
139
|
+
return c.json({ ok: false, error: "Loop run store is not configured", code: "LOOP_RUN_STORE_UNAVAILABLE" }, 501);
|
|
140
|
+
const run = await store.getRun(c.req.param("id"));
|
|
141
|
+
if (!run)
|
|
142
|
+
return c.json({ ok: false, error: "Loop run not found", code: "NOT_FOUND" }, 404);
|
|
143
|
+
if (run.status !== "awaiting_approval") {
|
|
144
|
+
return c.json({ ok: false, error: `Loop run is ${run.status}, not awaiting approval`, code: "NOT_AWAITING_APPROVAL" }, 400);
|
|
145
|
+
}
|
|
146
|
+
const body = await c.req.json().catch(() => ({}));
|
|
147
|
+
const now = new Date().toISOString();
|
|
148
|
+
const note = decision === "rejected" ? body.feedback ?? body.note : body.note;
|
|
149
|
+
if (deps.approvalStore && run.approvalRequestId) {
|
|
150
|
+
const approval = await deps.approvalStore.get(run.approvalRequestId);
|
|
151
|
+
if (approval) {
|
|
152
|
+
await deps.approvalStore.upsert({
|
|
153
|
+
...approval,
|
|
154
|
+
status: decision,
|
|
155
|
+
resolvedAt: now,
|
|
156
|
+
resolvedBy: body.resolvedBy,
|
|
157
|
+
note,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
await store.appendTrace(run.id, {
|
|
162
|
+
id: `trace-approval-${Date.now()}`,
|
|
163
|
+
ts: now,
|
|
164
|
+
loop: run.loopName,
|
|
165
|
+
type: "approval.required",
|
|
166
|
+
status: decision === "approved" ? "completed" : "failed",
|
|
167
|
+
data: {
|
|
168
|
+
decision,
|
|
169
|
+
approvalRequestId: run.approvalRequestId,
|
|
170
|
+
resolvedBy: body.resolvedBy,
|
|
171
|
+
note,
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
const approvedGate = decision === "approved" ? approvalSnapshotToGate(run.approval, run.approvalRequestId, now, body.resolvedBy) : undefined;
|
|
175
|
+
const resume = run.resume && approvedGate
|
|
176
|
+
? {
|
|
177
|
+
...run.resume,
|
|
178
|
+
approvedGates: [
|
|
179
|
+
...(run.resume.approvedGates ?? []).filter((gate) => !(gate.type === approvedGate.type && gate.id === approvedGate.id && gate.hook === approvedGate.hook)),
|
|
180
|
+
approvedGate,
|
|
181
|
+
],
|
|
182
|
+
updatedAt: now,
|
|
183
|
+
}
|
|
184
|
+
: run.resume;
|
|
185
|
+
const updated = await store.updateRun(run.id, {
|
|
186
|
+
status: decision === "approved" ? "approval_approved" : "approval_rejected",
|
|
187
|
+
approval: run.approval ? {
|
|
188
|
+
...run.approval,
|
|
189
|
+
status: decision,
|
|
190
|
+
resolvedAt: now,
|
|
191
|
+
resolvedBy: body.resolvedBy,
|
|
192
|
+
note,
|
|
193
|
+
} : undefined,
|
|
194
|
+
resume,
|
|
195
|
+
metadata: {
|
|
196
|
+
...run.metadata,
|
|
197
|
+
approvalDecision: decision,
|
|
198
|
+
approvalResolvedAt: now,
|
|
199
|
+
...(body.resolvedBy ? { approvalResolvedBy: body.resolvedBy } : {}),
|
|
200
|
+
},
|
|
201
|
+
completedAt: now,
|
|
202
|
+
});
|
|
203
|
+
return c.json({ ok: true, data: updated }, 200);
|
|
204
|
+
}
|
|
205
|
+
function approvalSnapshotToGate(approval, approvalRequestId, resolvedAt, resolvedBy) {
|
|
206
|
+
if (!approval)
|
|
207
|
+
return undefined;
|
|
208
|
+
return {
|
|
209
|
+
type: approval.type ?? "policy",
|
|
210
|
+
id: approval.type === "permission" ? approval.permissionId ?? "anonymous" : approval.policyId,
|
|
211
|
+
hook: approval.hook,
|
|
212
|
+
approvalRequestId,
|
|
213
|
+
resolvedAt,
|
|
214
|
+
resolvedBy,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
61
217
|
//# sourceMappingURL=loop-runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-runs.js","sourceRoot":"","sources":["../../src/routes/loop-runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-runs.js","sourceRoot":"","sources":["../../src/routes/loop-runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-runs.test.d.ts","sourceRoot":"","sources":["../../src/routes/loop-runs.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { MemoryLoopRunStore } from "@polpo-ai/core";
|
|
3
|
+
import { loopRunRoutes } from "./loop-runs.js";
|
|
4
|
+
class MemoryApprovalStore {
|
|
5
|
+
approvals = new Map();
|
|
6
|
+
async upsert(request) {
|
|
7
|
+
this.approvals.set(request.id, structuredClone(request));
|
|
8
|
+
}
|
|
9
|
+
async get(id) {
|
|
10
|
+
const approval = this.approvals.get(id);
|
|
11
|
+
return approval ? structuredClone(approval) : undefined;
|
|
12
|
+
}
|
|
13
|
+
async list(status) {
|
|
14
|
+
return Array.from(this.approvals.values())
|
|
15
|
+
.filter((approval) => !status || approval.status === status)
|
|
16
|
+
.map((approval) => structuredClone(approval));
|
|
17
|
+
}
|
|
18
|
+
async listByTask(taskId) {
|
|
19
|
+
return Array.from(this.approvals.values())
|
|
20
|
+
.filter((approval) => approval.taskId === taskId)
|
|
21
|
+
.map((approval) => structuredClone(approval));
|
|
22
|
+
}
|
|
23
|
+
async delete(id) {
|
|
24
|
+
return this.approvals.delete(id);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
describe("loopRunRoutes", () => {
|
|
28
|
+
it("resolves approval gates and updates the loop run audit record", async () => {
|
|
29
|
+
const loopRunStore = new MemoryLoopRunStore();
|
|
30
|
+
const approvalStore = new MemoryApprovalStore();
|
|
31
|
+
const resumed = [];
|
|
32
|
+
const app = loopRunRoutes(() => ({
|
|
33
|
+
loopRunStore,
|
|
34
|
+
approvalStore,
|
|
35
|
+
resumeLoopRun: async (id) => {
|
|
36
|
+
resumed.push(id);
|
|
37
|
+
const run = await loopRunStore.updateRun(id, { status: "completed", resume: undefined });
|
|
38
|
+
return run;
|
|
39
|
+
},
|
|
40
|
+
}));
|
|
41
|
+
const run = await loopRunStore.createRun({
|
|
42
|
+
id: "run-1",
|
|
43
|
+
loop: { name: "deploy-flow" },
|
|
44
|
+
});
|
|
45
|
+
await approvalStore.upsert({
|
|
46
|
+
id: "approval-1",
|
|
47
|
+
gateId: "deploy-approval",
|
|
48
|
+
gateName: "Deploy approval",
|
|
49
|
+
status: "pending",
|
|
50
|
+
payload: { loopRunId: run.id },
|
|
51
|
+
requestedAt: new Date().toISOString(),
|
|
52
|
+
});
|
|
53
|
+
await loopRunStore.updateRun(run.id, {
|
|
54
|
+
status: "awaiting_approval",
|
|
55
|
+
approvalRequestId: "approval-1",
|
|
56
|
+
approval: {
|
|
57
|
+
type: "permission",
|
|
58
|
+
policyId: "permission",
|
|
59
|
+
permissionId: "deploy-approval",
|
|
60
|
+
hook: "tool:before",
|
|
61
|
+
payload: {},
|
|
62
|
+
context: {},
|
|
63
|
+
status: "pending",
|
|
64
|
+
},
|
|
65
|
+
resume: {
|
|
66
|
+
context: {},
|
|
67
|
+
steps: [{ tool: "deploy" }],
|
|
68
|
+
createdAt: new Date().toISOString(),
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
const response = await app.request("/run-1/approve", {
|
|
72
|
+
method: "POST",
|
|
73
|
+
headers: { "content-type": "application/json" },
|
|
74
|
+
body: JSON.stringify({ resolvedBy: "security", note: "approved for release window" }),
|
|
75
|
+
});
|
|
76
|
+
expect(response.status).toBe(200);
|
|
77
|
+
const body = await response.json();
|
|
78
|
+
expect(body.data.status).toBe("approval_approved");
|
|
79
|
+
expect(body.data.approval.status).toBe("approved");
|
|
80
|
+
expect(body.data.resume.approvedGates).toMatchObject([
|
|
81
|
+
{ type: "permission", id: "deploy-approval", hook: "tool:before" },
|
|
82
|
+
]);
|
|
83
|
+
expect(body.data.metadata.approvalResolvedBy).toBe("security");
|
|
84
|
+
expect((await approvalStore.get("approval-1"))?.status).toBe("approved");
|
|
85
|
+
expect((await loopRunStore.getRun("run-1"))?.trace.at(-1)?.data?.decision).toBe("approved");
|
|
86
|
+
const resumeResponse = await app.request("/run-1/resume", {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers: { "content-type": "application/json" },
|
|
89
|
+
body: JSON.stringify({ resolvedBy: "security" }),
|
|
90
|
+
});
|
|
91
|
+
expect(resumeResponse.status).toBe(200);
|
|
92
|
+
expect(resumed).toEqual(["run-1"]);
|
|
93
|
+
expect((await resumeResponse.json()).data.status).toBe("completed");
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=loop-runs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-runs.test.js","sourceRoot":"","sources":["../../src/routes/loop-runs.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polpo-ai/server",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.6",
|
|
4
4
|
"description": "Polpo API route factories — edge-compatible Hono routes for tasks, agents, missions, vault, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"@hono/zod-openapi": ">=1.0.0",
|
|
20
20
|
"hono": ">=4.0.0",
|
|
21
21
|
"nanoid": ">=5.0.0",
|
|
22
|
-
"@polpo-ai/core": "0.10.
|
|
23
|
-
"@polpo-ai/tools": "0.10.
|
|
22
|
+
"@polpo-ai/core": "0.10.6",
|
|
23
|
+
"@polpo-ai/tools": "0.10.6"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"ai": ">=6.0.0",
|