@polpo-ai/server 0.15.144 → 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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -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/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 +41 -3
- 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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { MemoryConnectStore, MemoryConnectionSecretStore, createConnectService } from "@polpo-ai/connect-server";
|
|
2
|
+
import { MemoryConnectStore, MemoryConnectionSecretStore, MemoryConnectorDefinitionStore, createConnectService } from "@polpo-ai/connect-server";
|
|
3
3
|
import { connectRoutes } from "./connect.js";
|
|
4
4
|
const apiKeyProvider = {
|
|
5
5
|
id: "custom_api",
|
|
@@ -27,6 +27,148 @@ const oauthProvider = {
|
|
|
27
27
|
scopes: [{ id: "read" }, { id: "write" }],
|
|
28
28
|
};
|
|
29
29
|
describe("connectRoutes", () => {
|
|
30
|
+
it("creates an embedded MCP setup with the selected reusable client and trusted owner", async () => {
|
|
31
|
+
const store = new MemoryConnectStore();
|
|
32
|
+
const client = { id: "mcp-config", providerId: "mcp_url", owner: { type: "instance", id: "host" },
|
|
33
|
+
resourceUrl: "https://mcp.example/mcp", transport: "http", redirectUri: "https://host.example/callback",
|
|
34
|
+
registration: { mode: "pre_registered", client: { client_id: "client", client_secret: "private-config-secret" } } };
|
|
35
|
+
const resolver = { resolve: vi.fn(async () => client), resolveById: vi.fn(async () => client) };
|
|
36
|
+
const service = createConnectService({ providers: [{ id: "mcp_url", name: "MCP", auth: { type: "mcp", auth: "oauth2" }, scopes: [] }],
|
|
37
|
+
store, setupSessions: store, links: store, secrets: new MemoryConnectionSecretStore(),
|
|
38
|
+
mcpOAuthClients: resolver, allowedReturnUrlOrigins: ["https://app.example"] });
|
|
39
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
40
|
+
const subject = { type: "external_user", namespace: "app", id: "gioia" };
|
|
41
|
+
const response = await app.request("/setup-sessions", { method: "POST", headers: { "content-type": "application/json" },
|
|
42
|
+
body: JSON.stringify({ providerId: "mcp_url", projectId: "project", audience: "end_user", subject,
|
|
43
|
+
returnUrl: "https://app.example/connected", oauthClientMode: "instance", configurationId: "mcp-config" }) });
|
|
44
|
+
expect(response.status).toBe(201);
|
|
45
|
+
const body = await response.json();
|
|
46
|
+
expect(body).toMatchObject({ data: { flowKind: "mcp", oauthClientId: "mcp-config", subject } });
|
|
47
|
+
expect(resolver.resolve).toHaveBeenCalledWith(expect.objectContaining({ configurationId: "mcp-config", projectId: "project", mode: "instance" }));
|
|
48
|
+
expect(JSON.stringify(body)).not.toContain("private-config-secret");
|
|
49
|
+
});
|
|
50
|
+
it("dispatches the authenticated callback by its stored flow, including MCP", async () => {
|
|
51
|
+
const { service, store } = createHarness();
|
|
52
|
+
await store.saveOAuthState({ state: "mcp-state", providerId: "mcp_url", flowKind: "mcp", requestedScopes: [],
|
|
53
|
+
redirectUri: "https://host.example/callback", createdAt: new Date().toISOString(), expiresAt: "2099-01-01T00:00:00.000Z" });
|
|
54
|
+
const completeMcp = vi.spyOn(service, "completeMcpOAuth").mockResolvedValue({ id: "mcp-connection", authType: "mcp" });
|
|
55
|
+
const completeApi = vi.spyOn(service, "completeOAuth");
|
|
56
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
57
|
+
const response = await app.request("/oauth/callback", { method: "POST", headers: { "content-type": "application/json" },
|
|
58
|
+
body: JSON.stringify({ state: "mcp-state", code: "code" }) });
|
|
59
|
+
expect(response.status).toBe(200);
|
|
60
|
+
expect(await response.json()).toMatchObject({ data: { id: "mcp-connection", authType: "mcp" } });
|
|
61
|
+
expect(completeMcp).toHaveBeenCalledWith({ state: "mcp-state", code: "code" });
|
|
62
|
+
expect(completeApi).not.toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
it("returns a structured denial for unsafe generic MCP auth headers instead of HTTP 500", async () => {
|
|
65
|
+
const service = createConnectService({ providers: [{ id: "mcp_url", name: "MCP", auth: { type: "mcp", auth: "bearer" }, scopes: [] }],
|
|
66
|
+
store: new MemoryConnectStore(), secrets: new MemoryConnectionSecretStore() });
|
|
67
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
68
|
+
const response = await app.request("/connections/mcp", { method: "POST", headers: { "content-type": "application/json" },
|
|
69
|
+
body: JSON.stringify({ url: "https://mcp.example", auth: "header", headerName: "Cookie", apiKey: "private" }) });
|
|
70
|
+
expect(response.status).toBe(403);
|
|
71
|
+
expect(await response.json()).toMatchObject({ ok: false, code: "connection_operation_denied" });
|
|
72
|
+
});
|
|
73
|
+
it("preserves trusted audience and binding through the API-key route", async () => {
|
|
74
|
+
const app = connectRoutes(() => ({ connectService: createHarness().service }));
|
|
75
|
+
const owner = { type: "external_user", namespace: "app", id: "viewer" };
|
|
76
|
+
const response = await app.request("/connections/api-key", { method: "POST", headers: { "content-type": "application/json" },
|
|
77
|
+
body: JSON.stringify({ providerId: "custom_api", apiKey: "private", audience: "end_user", subject: owner, binding: { scopeEpoch: "one" } }) });
|
|
78
|
+
expect(response.status).toBe(200);
|
|
79
|
+
expect(await response.json()).toMatchObject({ data: { audience: "end_user", owner, binding: { principal: owner, scopeEpoch: "one" } } });
|
|
80
|
+
});
|
|
81
|
+
it("creates a custom MCP through the SDK's advertised OSS route with its selected authentication and identity", async () => {
|
|
82
|
+
const service = createConnectService({ providers: [{ version: 2, id: "notes", name: "Notes", source: "custom", protocol: "mcp",
|
|
83
|
+
defaultAuthenticationId: "public", authentication: [{ id: "public", type: "none" }] }],
|
|
84
|
+
store: new MemoryConnectStore(), secrets: new MemoryConnectionSecretStore() });
|
|
85
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
86
|
+
const response = await app.request("/connections/mcp", { method: "POST", headers: { "content-type": "application/json" },
|
|
87
|
+
body: JSON.stringify({ providerId: "notes", authenticationId: "public", url: "https://mcp.example/mcp", audience: "personal", subject: { type: "user", id: "builder" } }) });
|
|
88
|
+
expect(response.status).toBe(201);
|
|
89
|
+
expect(await response.json()).toMatchObject({ data: { providerId: "notes", authenticationId: "public", audience: "personal",
|
|
90
|
+
binding: { principal: { type: "user", id: "builder" } }, metadata: { auth: "none" } } });
|
|
91
|
+
});
|
|
92
|
+
it("exposes OSS MCP inspect and OAuth start, keeping the callback and trusted context explicit", async () => {
|
|
93
|
+
const { service } = createHarness();
|
|
94
|
+
const inspect = vi.spyOn(service, "inspectMcpOAuth").mockResolvedValue({});
|
|
95
|
+
const start = vi.spyOn(service, "startMcpOAuth").mockResolvedValue({ authorizationUrl: "https://provider.example", state: "state", expiresAt: "2099" });
|
|
96
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
97
|
+
const post = (path, body) => app.request(path, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(body) });
|
|
98
|
+
expect((await post("/mcp/inspect", { url: "https://mcp.example/mcp", transport: "sse" })).status).toBe(200);
|
|
99
|
+
const input = { providerId: "notes", authenticationId: "oauth", url: "https://mcp.example/mcp", mode: "dynamic",
|
|
100
|
+
redirectUri: "https://host.example/v1/connect/oauth/callback", audience: "personal", subject: { type: "user", id: "builder" } };
|
|
101
|
+
expect((await post("/mcp/oauth/start", input)).status).toBe(200);
|
|
102
|
+
expect(inspect).toHaveBeenCalledWith({ url: "https://mcp.example/mcp", transport: "sse" });
|
|
103
|
+
expect(start).toHaveBeenCalledWith(input);
|
|
104
|
+
expect((await post("/mcp/oauth/start", { ...input, redirectUri: undefined })).status).toBe(400);
|
|
105
|
+
expect(start).toHaveBeenCalledOnce();
|
|
106
|
+
});
|
|
107
|
+
it("exposes local setup readiness separately from live verification", async () => {
|
|
108
|
+
const app = connectRoutes(() => ({ connectService: createHarness().service }));
|
|
109
|
+
const response = await app.request("/setup-readiness", { method: "POST", headers: { "content-type": "application/json" },
|
|
110
|
+
body: JSON.stringify({ providerId: "custom_api" }),
|
|
111
|
+
});
|
|
112
|
+
expect(response.status).toBe(200);
|
|
113
|
+
expect(await response.json()).toMatchObject({ data: { check: "configuration", outcome: "passed", code: "credentials_required" } });
|
|
114
|
+
});
|
|
115
|
+
it("registers a custom API through HTTP and blocks it after disabling the definition", async () => {
|
|
116
|
+
const service = createConnectService({ providers: [], store: new MemoryConnectStore(), secrets: new MemoryConnectionSecretStore(), definitions: new MemoryConnectorDefinitionStore() });
|
|
117
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
118
|
+
const response = await app.request("/connectors", { method: "POST", headers: { "content-type": "application/json" },
|
|
119
|
+
body: JSON.stringify({ version: 2, id: "weather", name: "Weather", source: "catalog", protocol: "http_api",
|
|
120
|
+
defaultAuthenticationId: "public", authentication: [{ id: "public", type: "none" }], http: { origins: ["https://api.example.com"] } }),
|
|
121
|
+
});
|
|
122
|
+
expect(response.status).toBe(201);
|
|
123
|
+
expect(await response.json()).toMatchObject({ data: { definition: { source: "custom" } } });
|
|
124
|
+
expect(await (await app.request("/catalog")).json()).toMatchObject({ data: [{ id: "weather" }] });
|
|
125
|
+
expect((await app.request("/connectors/weather/disable", { method: "POST" })).status).toBe(200);
|
|
126
|
+
expect(await (await app.request("/catalog")).json()).toMatchObject({ data: [] });
|
|
127
|
+
});
|
|
128
|
+
it("exposes an honest verification result without serializing credentials", async () => {
|
|
129
|
+
const { service } = createHarness();
|
|
130
|
+
const connection = await service.createApiKeyConnection({ providerId: "custom_api", apiKey: "private-test-key" });
|
|
131
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
132
|
+
const response = await app.request(`/connections/${connection.id}/verify`, { method: "POST" });
|
|
133
|
+
expect(response.status).toBe(200);
|
|
134
|
+
const body = await response.json();
|
|
135
|
+
expect(body).toMatchObject({ ok: true, data: { outcome: "unsupported", code: "probe_not_configured" } });
|
|
136
|
+
expect(JSON.stringify(body)).not.toContain("private-test-key");
|
|
137
|
+
expect((await app.request("/connections/missing/verify", { method: "POST" })).status).toBe(404);
|
|
138
|
+
});
|
|
139
|
+
it("does not expose OAuth app credentials in the provider catalog", async () => {
|
|
140
|
+
const app = connectRoutes(() => ({ connectService: createHarness().service }));
|
|
141
|
+
const response = await app.request("/providers");
|
|
142
|
+
expect(response.status).toBe(200);
|
|
143
|
+
const body = await response.text();
|
|
144
|
+
expect(body).not.toContain("client_secret");
|
|
145
|
+
expect(body).not.toContain('"clientSecret"');
|
|
146
|
+
});
|
|
147
|
+
it("exposes the normalized catalog and public HTTP setup without discarding authentication selection", async () => {
|
|
148
|
+
const service = createConnectService({
|
|
149
|
+
providers: [{
|
|
150
|
+
version: 2, id: "public_api", name: "Public API", source: "custom", protocol: "http_api",
|
|
151
|
+
defaultAuthenticationId: "public", authentication: [{ id: "public", type: "none" }],
|
|
152
|
+
http: { origins: ["https://api.example.com"] },
|
|
153
|
+
}],
|
|
154
|
+
store: new MemoryConnectStore(), secrets: new MemoryConnectionSecretStore(),
|
|
155
|
+
});
|
|
156
|
+
const app = connectRoutes(() => ({ connectService: service }));
|
|
157
|
+
const catalog = await app.request("/catalog");
|
|
158
|
+
expect(catalog.status).toBe(200);
|
|
159
|
+
expect(await catalog.json()).toMatchObject({ data: [{ protocol: "http_api", authentication: [{ type: "none" }] }] });
|
|
160
|
+
const created = await app.request("/connections/public", {
|
|
161
|
+
method: "POST", headers: { "content-type": "application/json" },
|
|
162
|
+
body: JSON.stringify({ providerId: "public_api", authenticationId: "public" }),
|
|
163
|
+
});
|
|
164
|
+
expect(created.status).toBe(201);
|
|
165
|
+
expect(await created.json()).toMatchObject({ data: { authType: "none", authenticationId: "public" } });
|
|
166
|
+
const invalid = await app.request("/connections/public", {
|
|
167
|
+
method: "POST", headers: { "content-type": "application/json" },
|
|
168
|
+
body: JSON.stringify({ providerId: "public_api", authenticationId: "unknown" }),
|
|
169
|
+
});
|
|
170
|
+
expect(invalid.status).toBe(400);
|
|
171
|
+
});
|
|
30
172
|
it("returns 501 when connect service is not wired", async () => {
|
|
31
173
|
const app = connectRoutes(() => ({}));
|
|
32
174
|
const res = await app.request("/providers");
|
|
@@ -157,7 +299,7 @@ describe("connectRoutes", () => {
|
|
|
157
299
|
audience: "end_user",
|
|
158
300
|
subject: { type: "external_user", namespace: "app", id: "user-1" },
|
|
159
301
|
binding: {
|
|
160
|
-
principal: { type: "external_user", id: "user-1" },
|
|
302
|
+
principal: { type: "external_user", namespace: "app", id: "user-1" },
|
|
161
303
|
tenant: { namespace: "app", id: "tenant-1" },
|
|
162
304
|
},
|
|
163
305
|
scopes: ["read"],
|
|
@@ -171,8 +313,15 @@ describe("connectRoutes", () => {
|
|
|
171
313
|
projectId: "project-1",
|
|
172
314
|
audience: "end_user",
|
|
173
315
|
subject: { type: "external_user", namespace: "app", id: "user-1" },
|
|
316
|
+
binding: { principal: { type: "external_user", namespace: "app", id: "user-1" } },
|
|
174
317
|
});
|
|
175
318
|
expect(setup.data).not.toHaveProperty("oauthClientSecret");
|
|
319
|
+
const observed = await app.request(`/setup/${setup.data.id}/status`);
|
|
320
|
+
expect(observed.status).toBe(200);
|
|
321
|
+
const publicStatus = await observed.json();
|
|
322
|
+
expect(publicStatus.data).toMatchObject({ status: "pending", scopes: ["read"] });
|
|
323
|
+
expect(publicStatus.data).not.toHaveProperty("subject");
|
|
324
|
+
expect(publicStatus.data).not.toHaveProperty("binding");
|
|
176
325
|
const startRes = await app.request(`/setup-sessions/${setup.data.id}/start`, { method: "POST" });
|
|
177
326
|
const started = await startRes.json();
|
|
178
327
|
expect(startRes.status).toBe(200);
|
|
@@ -180,6 +329,26 @@ describe("connectRoutes", () => {
|
|
|
180
329
|
const replayRes = await app.request(`/setup-sessions/${setup.data.id}/start`, { method: "POST" });
|
|
181
330
|
expect(replayRes.status).toBe(409);
|
|
182
331
|
await expect(replayRes.json()).resolves.toMatchObject({ ok: false, code: "setup_consumed" });
|
|
332
|
+
const cancelStarted = await app.request(`/setup/${setup.data.id}/cancel`, { method: "POST" });
|
|
333
|
+
expect(cancelStarted.status).toBe(410);
|
|
334
|
+
const callback = await app.request("/oauth/callback", { method: "POST", headers: { "content-type": "application/json" },
|
|
335
|
+
body: JSON.stringify({ state: started.data.state, code: "code" }) });
|
|
336
|
+
expect(callback.status).toBe(200);
|
|
337
|
+
const completed = await (await app.request(`/setup/${setup.data.id}/status`)).json();
|
|
338
|
+
expect(completed.data).toMatchObject({ status: "completed", resultingConnectionId: (await callback.json()).data.id });
|
|
339
|
+
});
|
|
340
|
+
it("observes missing setup and cancels a pending setup through SDK-compatible routes", async () => {
|
|
341
|
+
const harness = createHarness({ withOAuthClient: true });
|
|
342
|
+
const app = connectRoutes(() => ({ connectService: harness.service }));
|
|
343
|
+
expect((await app.request("/setup/missing/status")).status).toBe(404);
|
|
344
|
+
expect((await app.request("/setup/missing/cancel", { method: "POST" })).status).toBe(404);
|
|
345
|
+
const setup = await harness.service.createSetupSession({ providerId: "test_oauth", projectId: "project-1", audience: "end_user",
|
|
346
|
+
subject: { type: "external_user", namespace: "app", id: "user-1" }, scopes: ["read"],
|
|
347
|
+
returnUrl: "https://app.example/settings", oauthClientMode: "managed" });
|
|
348
|
+
const cancelled = await app.request(`/setup/${setup.id}/cancel`, { method: "POST" });
|
|
349
|
+
expect(cancelled.status).toBe(200);
|
|
350
|
+
expect((await cancelled.json()).data.status).toBe("cancelled");
|
|
351
|
+
expect((await app.request(`/setup-sessions/${setup.id}/start`, { method: "POST" })).status).toBe(409);
|
|
183
352
|
});
|
|
184
353
|
it("executes a policy-bound gateway request without exposing credentials", async () => {
|
|
185
354
|
const harness = createHarness({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../src/routes/connect.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../src/routes/connect.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
2
|
+
import { type MissionAbortOptions, type MissionAbortResult, type MissionExecutionOptions } from "@polpo-ai/core/mission-store";
|
|
2
3
|
/**
|
|
3
4
|
* Mission CRUD + execute/resume/abort routes.
|
|
4
5
|
*/
|
|
@@ -9,9 +10,9 @@ export declare function missionRoutes(getDeps: () => {
|
|
|
9
10
|
createMission: (opts: any) => Promise<any>;
|
|
10
11
|
updateMission: (id: string, updates: any) => Promise<any>;
|
|
11
12
|
deleteMission: (id: string) => Promise<boolean>;
|
|
12
|
-
executeMission: (id: string) => Promise<any>;
|
|
13
|
+
executeMission: (id: string, options?: MissionExecutionOptions) => Promise<any>;
|
|
13
14
|
resumeMission: (id: string, opts?: any) => Promise<any>;
|
|
14
|
-
|
|
15
|
+
abortMission: (missionId: string, options?: MissionAbortOptions) => Promise<MissionAbortResult>;
|
|
15
16
|
getActiveCheckpoints: () => any;
|
|
16
17
|
resumeCheckpointByMissionId: (missionId: string, checkpointName: string) => Promise<boolean>;
|
|
17
18
|
getActiveDelays: () => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missions.d.ts","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"missions.d.ts","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/missions.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { TaskExecutionError } from "@polpo-ai/core/task-execution";
|
|
1
2
|
import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
|
|
3
|
+
import { MissionExecutionError } from "@polpo-ai/core/mission-store";
|
|
2
4
|
import { CreateMissionSchema, UpdateMissionSchema, AddMissionTaskSchema, UpdateMissionTaskSchema, ReorderMissionTasksSchema, AddMissionCheckpointSchema, UpdateMissionCheckpointSchema, AddMissionDelaySchema, UpdateMissionDelaySchema, AddMissionQualityGateSchema, UpdateMissionQualityGateSchema, AddMissionTeamMemberSchema, UpdateMissionTeamMemberSchema, UpdateMissionNotificationsSchema, } from "../schemas.js";
|
|
3
5
|
// ── Route definitions ─────────────────────────────────────────────────
|
|
4
6
|
const listMissionsRoute = createRoute({
|
|
@@ -101,12 +103,18 @@ const executeMissionRoute = createRoute({
|
|
|
101
103
|
summary: "Execute mission",
|
|
102
104
|
request: {
|
|
103
105
|
params: z.object({ missionId: z.string() }),
|
|
106
|
+
body: { required: false, content: { "application/json": { schema: z.object({
|
|
107
|
+
idempotencyKey: z.string().min(1).max(200).refine(key => key === key.trim() && !/[\x00-\x1f\x7f]/.test(key), "Invalid idempotency key").optional(),
|
|
108
|
+
}).strict() } } },
|
|
104
109
|
},
|
|
105
110
|
responses: {
|
|
106
111
|
200: {
|
|
107
112
|
content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.any() }) } },
|
|
108
113
|
description: "Mission execution result",
|
|
109
114
|
},
|
|
115
|
+
400: { description: "Invalid execution request", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
116
|
+
409: { description: "Mission changed before admission", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
117
|
+
501: { description: "Store does not support atomic execution", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
110
118
|
},
|
|
111
119
|
});
|
|
112
120
|
const resumeMissionRoute = createRoute({
|
|
@@ -170,12 +178,18 @@ const abortMissionRoute = createRoute({
|
|
|
170
178
|
summary: "Abort mission",
|
|
171
179
|
request: {
|
|
172
180
|
params: z.object({ missionId: z.string() }),
|
|
181
|
+
body: { required: false, content: { "application/json": { schema: z.object({
|
|
182
|
+
executionId: z.string().regex(/^[a-zA-Z0-9_-]{1,200}$/).optional(),
|
|
183
|
+
}).strict() } } },
|
|
173
184
|
},
|
|
174
185
|
responses: {
|
|
175
186
|
200: {
|
|
176
|
-
content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.object({ aborted: z.number() }) }) } },
|
|
187
|
+
content: { "application/json": { schema: z.object({ ok: z.boolean(), data: z.object({ aborted: z.number(), executionId: z.string().optional() }) }) } },
|
|
177
188
|
description: "Mission aborted",
|
|
178
189
|
},
|
|
190
|
+
400: { description: "Invalid cancellation request", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
191
|
+
409: { description: "Execution changed before cancellation", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
192
|
+
501: { description: "Atomic cancellation unavailable", content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } } },
|
|
179
193
|
404: {
|
|
180
194
|
content: { "application/json": { schema: z.object({ ok: z.boolean(), error: z.string(), code: z.string() }) } },
|
|
181
195
|
description: "Mission not found",
|
|
@@ -322,6 +336,16 @@ export function missionRoutes(getDeps) {
|
|
|
322
336
|
const deps = getDeps();
|
|
323
337
|
return c.json({ ok: true, data: await deps.getResumableMissions() });
|
|
324
338
|
});
|
|
339
|
+
// GET /missions/checkpoints — list all active checkpoints
|
|
340
|
+
app.openapi(listCheckpointsRoute, async (c) => {
|
|
341
|
+
const deps = getDeps();
|
|
342
|
+
return c.json({ ok: true, data: await deps.getActiveCheckpoints() });
|
|
343
|
+
});
|
|
344
|
+
// GET /missions/delays — list active delays
|
|
345
|
+
app.openapi(listDelaysRoute, async (c) => {
|
|
346
|
+
const deps = getDeps();
|
|
347
|
+
return c.json({ ok: true, data: await deps.getActiveDelays() });
|
|
348
|
+
});
|
|
325
349
|
// GET /missions/:missionId — get mission by ID
|
|
326
350
|
app.openapi(getMissionRoute, async (c) => {
|
|
327
351
|
const deps = getDeps();
|
|
@@ -346,6 +370,7 @@ export function missionRoutes(getDeps) {
|
|
|
346
370
|
endDate: body.endDate,
|
|
347
371
|
notifications: body.notifications,
|
|
348
372
|
user: body.user,
|
|
373
|
+
metadata: body.metadata,
|
|
349
374
|
});
|
|
350
375
|
return c.json({ ok: true, data: mission }, 201);
|
|
351
376
|
});
|
|
@@ -381,8 +406,16 @@ export function missionRoutes(getDeps) {
|
|
|
381
406
|
app.openapi(executeMissionRoute, async (c) => {
|
|
382
407
|
const deps = getDeps();
|
|
383
408
|
const { missionId } = c.req.valid("param");
|
|
384
|
-
|
|
385
|
-
|
|
409
|
+
try {
|
|
410
|
+
const result = await deps.executeMission(missionId, c.req.valid("json") ?? {});
|
|
411
|
+
return c.json({ ok: true, data: result }, 200);
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
if (!(error instanceof MissionExecutionError))
|
|
415
|
+
throw error;
|
|
416
|
+
const status = error.code === "mission_execution_conflict" ? 409 : error.code === "mission_execution_unsupported" ? 501 : 400;
|
|
417
|
+
return c.json({ ok: false, error: error.message, code: error.code }, status);
|
|
418
|
+
}
|
|
386
419
|
});
|
|
387
420
|
// POST /missions/:missionId/resume — resume mission
|
|
388
421
|
app.openapi(resumeMissionRoute, async (c) => {
|
|
@@ -392,11 +425,6 @@ export function missionRoutes(getDeps) {
|
|
|
392
425
|
const result = await deps.resumeMission(missionId, body);
|
|
393
426
|
return c.json({ ok: true, data: result });
|
|
394
427
|
});
|
|
395
|
-
// GET /missions/checkpoints — list all active checkpoints
|
|
396
|
-
app.openapi(listCheckpointsRoute, (c) => {
|
|
397
|
-
const deps = getDeps();
|
|
398
|
-
return c.json({ ok: true, data: deps.getActiveCheckpoints() });
|
|
399
|
-
});
|
|
400
428
|
// POST /missions/:missionId/checkpoints/:checkpointName/resume — resume a checkpoint
|
|
401
429
|
app.openapi(resumeCheckpointRoute, async (c) => {
|
|
402
430
|
const deps = getDeps();
|
|
@@ -407,7 +435,7 @@ export function missionRoutes(getDeps) {
|
|
|
407
435
|
}
|
|
408
436
|
return c.json({ ok: true, data: { resumed: true } }, 200);
|
|
409
437
|
});
|
|
410
|
-
// POST /missions/:missionId/abort —
|
|
438
|
+
// POST /missions/:missionId/abort — cancel one accepted execution
|
|
411
439
|
app.openapi(abortMissionRoute, async (c) => {
|
|
412
440
|
const deps = getDeps();
|
|
413
441
|
const { missionId } = c.req.valid("param");
|
|
@@ -415,8 +443,16 @@ export function missionRoutes(getDeps) {
|
|
|
415
443
|
if (!mission) {
|
|
416
444
|
return c.json({ ok: false, error: "Mission not found", code: "NOT_FOUND" }, 404);
|
|
417
445
|
}
|
|
418
|
-
|
|
419
|
-
|
|
446
|
+
try {
|
|
447
|
+
const result = await deps.abortMission(missionId, c.req.valid("json") ?? {});
|
|
448
|
+
return c.json({ ok: true, data: result }, 200);
|
|
449
|
+
}
|
|
450
|
+
catch (error) {
|
|
451
|
+
if (!(error instanceof MissionExecutionError) && !(error instanceof TaskExecutionError))
|
|
452
|
+
throw error;
|
|
453
|
+
const status = error.code.endsWith("_conflict") ? 409 : error.code.endsWith("_unsupported") ? 501 : 400;
|
|
454
|
+
return c.json({ ok: false, error: error.message, code: error.code }, status);
|
|
455
|
+
}
|
|
420
456
|
});
|
|
421
457
|
// ── Atomic mission data handlers ──────────────────────────────────
|
|
422
458
|
// POST /missions/:missionId/tasks — add task
|
|
@@ -508,11 +544,6 @@ export function missionRoutes(getDeps) {
|
|
|
508
544
|
return c.json({ ok: false, error: e.message, code: "NOT_FOUND" }, 404);
|
|
509
545
|
}
|
|
510
546
|
});
|
|
511
|
-
// GET /missions/delays — list active delays
|
|
512
|
-
app.openapi(listDelaysRoute, (c) => {
|
|
513
|
-
const deps = getDeps();
|
|
514
|
-
return c.json({ ok: true, data: deps.getActiveDelays() });
|
|
515
|
-
});
|
|
516
547
|
// POST /missions/:missionId/delays — add delay (data-level)
|
|
517
548
|
app.openapi(addMissionDelayRoute, async (c) => {
|
|
518
549
|
const deps = getDeps();
|