@polpo-ai/sdk 0.3.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.
Files changed (46) hide show
  1. package/LICENSE +21 -0
  2. package/dist/client/errors.d.ts +12 -0
  3. package/dist/client/errors.d.ts.map +1 -0
  4. package/dist/client/errors.js +25 -0
  5. package/dist/client/errors.js.map +1 -0
  6. package/dist/client/event-source.d.ts +29 -0
  7. package/dist/client/event-source.d.ts.map +1 -0
  8. package/dist/client/event-source.js +129 -0
  9. package/dist/client/event-source.js.map +1 -0
  10. package/dist/client/index.d.ts +7 -0
  11. package/dist/client/index.d.ts.map +1 -0
  12. package/dist/client/index.js +4 -0
  13. package/dist/client/index.js.map +1 -0
  14. package/dist/client/polpo-client.d.ts +300 -0
  15. package/dist/client/polpo-client.d.ts.map +1 -0
  16. package/dist/client/polpo-client.js +602 -0
  17. package/dist/client/polpo-client.js.map +1 -0
  18. package/dist/client/types.d.ts +1160 -0
  19. package/dist/client/types.d.ts.map +1 -0
  20. package/dist/client/types.js +7 -0
  21. package/dist/client/types.js.map +1 -0
  22. package/dist/index.d.ts +12 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +9 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/store/event-reducer.d.ts +8 -0
  27. package/dist/store/event-reducer.d.ts.map +1 -0
  28. package/dist/store/event-reducer.js +301 -0
  29. package/dist/store/event-reducer.js.map +1 -0
  30. package/dist/store/index.d.ts +6 -0
  31. package/dist/store/index.d.ts.map +1 -0
  32. package/dist/store/index.js +4 -0
  33. package/dist/store/index.js.map +1 -0
  34. package/dist/store/polpo-store.d.ts +31 -0
  35. package/dist/store/polpo-store.d.ts.map +1 -0
  36. package/dist/store/polpo-store.js +136 -0
  37. package/dist/store/polpo-store.js.map +1 -0
  38. package/dist/store/selectors.d.ts +18 -0
  39. package/dist/store/selectors.d.ts.map +1 -0
  40. package/dist/store/selectors.js +91 -0
  41. package/dist/store/selectors.js.map +1 -0
  42. package/dist/store/types.d.ts +51 -0
  43. package/dist/store/types.d.ts.map +1 -0
  44. package/dist/store/types.js +2 -0
  45. package/dist/store/types.js.map +1 -0
  46. package/package.json +61 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OpenPolpo Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ import type { ErrorCode } from "./types.js";
2
+ export declare class PolpoApiError extends Error {
3
+ readonly code: ErrorCode;
4
+ readonly status: number;
5
+ readonly details?: unknown;
6
+ constructor(message: string, code: ErrorCode, status: number, details?: unknown);
7
+ get isNotFound(): boolean;
8
+ get isAuthError(): boolean;
9
+ get isValidationError(): boolean;
10
+ get isConflict(): boolean;
11
+ }
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAQ/E,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;CACF"}
@@ -0,0 +1,25 @@
1
+ export class PolpoApiError extends Error {
2
+ code;
3
+ status;
4
+ details;
5
+ constructor(message, code, status, details) {
6
+ super(message);
7
+ this.name = "PolpoApiError";
8
+ this.code = code;
9
+ this.status = status;
10
+ this.details = details;
11
+ }
12
+ get isNotFound() {
13
+ return this.code === "NOT_FOUND";
14
+ }
15
+ get isAuthError() {
16
+ return this.code === "AUTH_REQUIRED" || this.code === "FORBIDDEN";
17
+ }
18
+ get isValidationError() {
19
+ return this.code === "VALIDATION_ERROR";
20
+ }
21
+ get isConflict() {
22
+ return this.code === "INVALID_STATE" || this.code === "CONFLICT";
23
+ }
24
+ }
25
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,CAAY;IAChB,MAAM,CAAS;IACf,OAAO,CAAW;IAE3B,YAAY,OAAe,EAAE,IAAe,EAAE,MAAc,EAAE,OAAiB;QAC7E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IACpE,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;IACnE,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { SSEEvent } from "./types.js";
2
+ export type ConnectionStatus = "connecting" | "connected" | "reconnecting" | "disconnected" | "error";
3
+ export interface EventSourceConfig {
4
+ url: string;
5
+ onEvent: (event: SSEEvent) => void;
6
+ onStatusChange: (status: ConnectionStatus) => void;
7
+ reconnectDelay?: number;
8
+ maxReconnectDelay?: number;
9
+ }
10
+ export declare class EventSourceManager {
11
+ private es;
12
+ private lastEventId;
13
+ private reconnectTimer;
14
+ private currentDelay;
15
+ private status;
16
+ private disposed;
17
+ private readonly config;
18
+ private readonly maxDelay;
19
+ private readonly initialDelay;
20
+ constructor(config: EventSourceConfig);
21
+ connect(): void;
22
+ disconnect(): void;
23
+ getStatus(): ConnectionStatus;
24
+ private handleMessage;
25
+ private scheduleReconnect;
26
+ private cleanup;
27
+ private setStatus;
28
+ }
29
+ //# sourceMappingURL=event-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-source.d.ts","sourceRoot":"","sources":["../../src/client/event-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,cAAc,GACd,OAAO,CAAC;AAEZ,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,iBAAiB;IAOrC,OAAO,IAAI,IAAI;IAgEf,UAAU,IAAI,IAAI;IAMlB,SAAS,IAAI,gBAAgB;IAI7B,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,129 @@
1
+ export class EventSourceManager {
2
+ es = null;
3
+ lastEventId;
4
+ reconnectTimer = null;
5
+ currentDelay;
6
+ status = "disconnected";
7
+ disposed = false;
8
+ config;
9
+ maxDelay;
10
+ initialDelay;
11
+ constructor(config) {
12
+ this.config = config;
13
+ this.initialDelay = config.reconnectDelay ?? 1000;
14
+ this.maxDelay = config.maxReconnectDelay ?? 30000;
15
+ this.currentDelay = this.initialDelay;
16
+ }
17
+ connect() {
18
+ if (this.disposed)
19
+ return;
20
+ this.cleanup();
21
+ this.setStatus("connecting");
22
+ let url = this.config.url;
23
+ if (this.lastEventId) {
24
+ const sep = url.includes("?") ? "&" : "?";
25
+ url += `${sep}lastEventId=${encodeURIComponent(this.lastEventId)}`;
26
+ }
27
+ const es = new EventSource(url);
28
+ this.es = es;
29
+ es.onopen = () => {
30
+ this.currentDelay = this.initialDelay;
31
+ this.setStatus("connected");
32
+ };
33
+ es.onmessage = (e) => {
34
+ this.handleMessage(e);
35
+ };
36
+ // Listen for named events (Polpo sends typed event names)
37
+ // EventSource API: use addEventListener for named events
38
+ es.addEventListener("task:created", (e) => this.handleMessage(e));
39
+ es.addEventListener("task:transition", (e) => this.handleMessage(e));
40
+ es.addEventListener("task:updated", (e) => this.handleMessage(e));
41
+ es.addEventListener("task:removed", (e) => this.handleMessage(e));
42
+ es.addEventListener("task:retry", (e) => this.handleMessage(e));
43
+ es.addEventListener("task:fix", (e) => this.handleMessage(e));
44
+ es.addEventListener("task:maxRetries", (e) => this.handleMessage(e));
45
+ es.addEventListener("task:question", (e) => this.handleMessage(e));
46
+ es.addEventListener("task:answered", (e) => this.handleMessage(e));
47
+ es.addEventListener("task:timeout", (e) => this.handleMessage(e));
48
+ es.addEventListener("task:recovered", (e) => this.handleMessage(e));
49
+ es.addEventListener("agent:spawned", (e) => this.handleMessage(e));
50
+ es.addEventListener("agent:finished", (e) => this.handleMessage(e));
51
+ es.addEventListener("agent:activity", (e) => this.handleMessage(e));
52
+ es.addEventListener("agent:stale", (e) => this.handleMessage(e));
53
+ es.addEventListener("assessment:started", (e) => this.handleMessage(e));
54
+ es.addEventListener("assessment:progress", (e) => this.handleMessage(e));
55
+ es.addEventListener("assessment:complete", (e) => this.handleMessage(e));
56
+ es.addEventListener("assessment:corrected", (e) => this.handleMessage(e));
57
+ es.addEventListener("orchestrator:started", (e) => this.handleMessage(e));
58
+ es.addEventListener("orchestrator:tick", (e) => this.handleMessage(e));
59
+ es.addEventListener("orchestrator:deadlock", (e) => this.handleMessage(e));
60
+ es.addEventListener("orchestrator:shutdown", (e) => this.handleMessage(e));
61
+ es.addEventListener("deadlock:detected", (e) => this.handleMessage(e));
62
+ es.addEventListener("deadlock:resolving", (e) => this.handleMessage(e));
63
+ es.addEventListener("deadlock:resolved", (e) => this.handleMessage(e));
64
+ es.addEventListener("deadlock:unresolvable", (e) => this.handleMessage(e));
65
+ es.addEventListener("mission:saved", (e) => this.handleMessage(e));
66
+ es.addEventListener("mission:executed", (e) => this.handleMessage(e));
67
+ es.addEventListener("mission:completed", (e) => this.handleMessage(e));
68
+ es.addEventListener("mission:resumed", (e) => this.handleMessage(e));
69
+ es.addEventListener("mission:deleted", (e) => this.handleMessage(e));
70
+ es.addEventListener("log", (e) => this.handleMessage(e));
71
+ es.onerror = () => {
72
+ this.scheduleReconnect();
73
+ };
74
+ }
75
+ disconnect() {
76
+ this.disposed = true;
77
+ this.cleanup();
78
+ this.setStatus("disconnected");
79
+ }
80
+ getStatus() {
81
+ return this.status;
82
+ }
83
+ handleMessage(e) {
84
+ if (e.lastEventId) {
85
+ this.lastEventId = e.lastEventId;
86
+ }
87
+ let data;
88
+ try {
89
+ data = JSON.parse(e.data);
90
+ }
91
+ catch {
92
+ data = e.data;
93
+ }
94
+ const event = {
95
+ id: e.lastEventId ?? "",
96
+ event: e.type === "message" ? "message" : e.type,
97
+ data,
98
+ timestamp: new Date().toISOString(),
99
+ };
100
+ this.config.onEvent(event);
101
+ }
102
+ scheduleReconnect() {
103
+ this.cleanup();
104
+ if (this.disposed)
105
+ return;
106
+ this.setStatus("reconnecting");
107
+ this.reconnectTimer = setTimeout(() => {
108
+ this.currentDelay = Math.min(this.currentDelay * 2, this.maxDelay);
109
+ this.connect();
110
+ }, this.currentDelay);
111
+ }
112
+ cleanup() {
113
+ if (this.es) {
114
+ this.es.close();
115
+ this.es = null;
116
+ }
117
+ if (this.reconnectTimer) {
118
+ clearTimeout(this.reconnectTimer);
119
+ this.reconnectTimer = null;
120
+ }
121
+ }
122
+ setStatus(status) {
123
+ if (this.status !== status) {
124
+ this.status = status;
125
+ this.config.onStatusChange(status);
126
+ }
127
+ }
128
+ }
129
+ //# sourceMappingURL=event-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-source.js","sourceRoot":"","sources":["../../src/client/event-source.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,kBAAkB;IACrB,EAAE,GAAuB,IAAI,CAAC;IAC9B,WAAW,CAAqB;IAChC,cAAc,GAAyC,IAAI,CAAC;IAC5D,YAAY,CAAS;IACrB,MAAM,GAAqB,cAAc,CAAC;IAC1C,QAAQ,GAAG,KAAK,CAAC;IAER,MAAM,CAAoB;IAC1B,QAAQ,CAAS;IACjB,YAAY,CAAS;IAEtC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE7B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1C,GAAG,IAAI,GAAG,GAAG,eAAe,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;YACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,0DAA0D;QAC1D,yDAAyD;QACzD,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAClF,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAClF,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAClF,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACnF,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACnF,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAClF,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACnF,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACjF,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACxF,EAAE,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACzF,EAAE,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACzF,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC1F,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC1F,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACvF,EAAE,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC3F,EAAE,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC3F,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACvF,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACxF,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACvF,EAAE,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAC3F,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACnF,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACtF,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACvF,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAiB,CAAC,CAAC,CAAC;QAEzE,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,CAAe;QACnC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YACvB,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAChD,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxB,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,MAAwB;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export { PolpoClient } from "./polpo-client.js";
2
+ export type { PolpoClientConfig } from "./polpo-client.js";
3
+ export { EventSourceManager } from "./event-source.js";
4
+ export type { ConnectionStatus, EventSourceConfig } from "./event-source.js";
5
+ export { PolpoApiError } from "./errors.js";
6
+ export type * from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { PolpoClient } from "./polpo-client.js";
2
+ export { EventSourceManager } from "./event-source.js";
3
+ export { PolpoApiError } from "./errors.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,300 @@
1
+ import type { AuthStatusResponse, VaultEntryMeta, Task, Mission, AgentConfig, AgentProcess, Team, PolpoState, PolpoConfig, HealthResponse, TaskFilters, CreateTaskRequest, UpdateTaskRequest, CreateMissionRequest, UpdateMissionRequest, AddMissionTaskRequest, UpdateMissionTaskRequest, ReorderMissionTasksRequest, AddMissionCheckpointRequest, UpdateMissionCheckpointRequest, AddMissionDelayRequest, UpdateMissionDelayRequest, ActiveDelay, AddMissionQualityGateRequest, UpdateMissionQualityGateRequest, AddMissionTeamMemberRequest, UpdateMissionTeamMemberRequest, UpdateMissionNotificationsRequest, AddAgentRequest, UpdateAgentRequest, UpdateSettingsRequest, AddTeamRequest, ExecuteMissionResult, ResumeMissionResult, LogSession, LogEntry, ChatSession, ChatMessage, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, AskUserPayload, MissionPreviewPayload, VaultPreviewPayload, OpenFilePayload, NavigateToPayload, OpenTabPayload, RunActivityEntry, SkillInfo, LoadedSkill, SkillWithAssignment, SkillIndexEntry, SkillIndex, NotificationChannelConfig, NotificationRecord, NotificationStats, SendNotificationRequest, SendNotificationResult, ApprovalRequest, ApprovalStatus, ScheduleEntry, PlaybookInfo, PlaybookDefinition, PlaybookRunResult } from "./types.js";
2
+ export interface PolpoClientConfig {
3
+ baseUrl: string;
4
+ /** @deprecated No longer used. Kept for backwards compatibility. */
5
+ projectId?: string;
6
+ apiKey?: string;
7
+ fetch?: typeof globalThis.fetch;
8
+ }
9
+ /**
10
+ * Async-iterable streaming response from chat completions.
11
+ * Exposes `sessionId` from the server's `x-session-id` response header,
12
+ * which lets callers learn which session was created/reused.
13
+ */
14
+ export declare class ChatCompletionStream implements AsyncIterable<ChatCompletionChunk> {
15
+ /** Session ID assigned by the server. Available after the first `next()` call. */
16
+ sessionId: string | null;
17
+ /** If the stream ended with finish_reason "ask_user", this contains the questions. */
18
+ askUser: AskUserPayload | null;
19
+ /** If the stream ended with finish_reason "mission_preview", this contains the proposed mission. */
20
+ missionPreview: MissionPreviewPayload | null;
21
+ /** If the stream ended with finish_reason "vault_preview", this contains the proposed vault entry. */
22
+ vaultPreview: VaultPreviewPayload | null;
23
+ /** If the stream ended with finish_reason "open_file", this contains the file path to open. */
24
+ openFile: OpenFilePayload | null;
25
+ /** If the stream ended with finish_reason "navigate_to", this contains navigation target info. */
26
+ navigateTo: NavigateToPayload | null;
27
+ /** If the stream ended with finish_reason "open_tab", this contains the URL to open. */
28
+ openTab: OpenTabPayload | null;
29
+ /** Whether abort() has been called. */
30
+ aborted: boolean;
31
+ private fetchFn;
32
+ private baseUrl;
33
+ private clientHeaders;
34
+ private req;
35
+ private reader;
36
+ private decoder;
37
+ private buffer;
38
+ private started;
39
+ private abortController;
40
+ constructor(fetchFn: typeof globalThis.fetch, baseUrl: string, clientHeaders: Record<string, string>, req: ChatCompletionRequest);
41
+ /**
42
+ * Abort the in-flight stream. Cancels the fetch request and closes the reader.
43
+ * The server will detect the disconnect and stop generating.
44
+ */
45
+ abort(): void;
46
+ private ensureStarted;
47
+ [Symbol.asyncIterator](): AsyncGenerator<ChatCompletionChunk, void, unknown>;
48
+ }
49
+ export declare class PolpoClient {
50
+ private readonly baseUrl;
51
+ private readonly headers;
52
+ private readonly fetchFn;
53
+ /** In-flight GET deduplication */
54
+ private readonly inflight;
55
+ constructor(config: PolpoClientConfig);
56
+ private apiUrl;
57
+ private request;
58
+ private get;
59
+ private post;
60
+ private put;
61
+ private patch;
62
+ private del;
63
+ getTasks(filters?: TaskFilters): Promise<Task[]>;
64
+ getTask(taskId: string): Promise<Task>;
65
+ createTask(req: CreateTaskRequest): Promise<Task>;
66
+ updateTask(taskId: string, req: UpdateTaskRequest): Promise<Task>;
67
+ deleteTask(taskId: string): Promise<{
68
+ removed: boolean;
69
+ }>;
70
+ retryTask(taskId: string): Promise<{
71
+ retried: boolean;
72
+ }>;
73
+ killTask(taskId: string): Promise<{
74
+ killed: boolean;
75
+ }>;
76
+ reassessTask(taskId: string): Promise<{
77
+ reassessed: boolean;
78
+ }>;
79
+ queueTask(taskId: string): Promise<{
80
+ queued: boolean;
81
+ }>;
82
+ getMissions(): Promise<Mission[]>;
83
+ getResumableMissions(): Promise<Mission[]>;
84
+ getMission(missionId: string): Promise<Mission>;
85
+ createMission(req: CreateMissionRequest): Promise<Mission>;
86
+ updateMission(missionId: string, req: UpdateMissionRequest): Promise<Mission>;
87
+ deleteMission(missionId: string): Promise<{
88
+ deleted: boolean;
89
+ }>;
90
+ executeMission(missionId: string): Promise<ExecuteMissionResult>;
91
+ resumeMission(missionId: string, opts?: {
92
+ retryFailed?: boolean;
93
+ }): Promise<ResumeMissionResult>;
94
+ abortMission(missionId: string): Promise<{
95
+ aborted: number;
96
+ }>;
97
+ addMissionTask(missionId: string, req: AddMissionTaskRequest): Promise<Mission>;
98
+ updateMissionTask(missionId: string, taskTitle: string, req: UpdateMissionTaskRequest): Promise<Mission>;
99
+ removeMissionTask(missionId: string, taskTitle: string): Promise<Mission>;
100
+ reorderMissionTasks(missionId: string, req: ReorderMissionTasksRequest): Promise<Mission>;
101
+ addMissionCheckpoint(missionId: string, req: AddMissionCheckpointRequest): Promise<Mission>;
102
+ updateMissionCheckpoint(missionId: string, checkpointName: string, req: UpdateMissionCheckpointRequest): Promise<Mission>;
103
+ removeMissionCheckpoint(missionId: string, checkpointName: string): Promise<Mission>;
104
+ listDelays(): Promise<ActiveDelay[]>;
105
+ addMissionDelay(missionId: string, req: AddMissionDelayRequest): Promise<Mission>;
106
+ updateMissionDelay(missionId: string, delayName: string, req: UpdateMissionDelayRequest): Promise<Mission>;
107
+ removeMissionDelay(missionId: string, delayName: string): Promise<Mission>;
108
+ addMissionQualityGate(missionId: string, req: AddMissionQualityGateRequest): Promise<Mission>;
109
+ updateMissionQualityGate(missionId: string, gateName: string, req: UpdateMissionQualityGateRequest): Promise<Mission>;
110
+ removeMissionQualityGate(missionId: string, gateName: string): Promise<Mission>;
111
+ addMissionTeamMember(missionId: string, req: AddMissionTeamMemberRequest): Promise<Mission>;
112
+ updateMissionTeamMember(missionId: string, memberName: string, req: UpdateMissionTeamMemberRequest): Promise<Mission>;
113
+ removeMissionTeamMember(missionId: string, memberName: string): Promise<Mission>;
114
+ updateMissionNotifications(missionId: string, req: UpdateMissionNotificationsRequest): Promise<Mission>;
115
+ /**
116
+ * Save a vault entry directly to the encrypted store.
117
+ * Bypasses the LLM entirely — credentials go straight to AES-256-GCM encrypted storage.
118
+ * Returns metadata only (never credential values).
119
+ */
120
+ saveVaultEntry(req: {
121
+ agent: string;
122
+ service: string;
123
+ type: "smtp" | "imap" | "oauth" | "api_key" | "login" | "custom";
124
+ label?: string;
125
+ credentials: Record<string, string>;
126
+ }): Promise<{
127
+ agent: string;
128
+ service: string;
129
+ type: string;
130
+ keys: string[];
131
+ }>;
132
+ /**
133
+ * Partially update credential fields in an existing vault entry.
134
+ * Only the provided fields are merged — existing fields are preserved.
135
+ */
136
+ patchVaultEntry(agent: string, service: string, patch: {
137
+ type?: string;
138
+ label?: string;
139
+ credentials?: Record<string, string>;
140
+ }): Promise<{
141
+ agent: string;
142
+ service: string;
143
+ type: string;
144
+ keys: string[];
145
+ }>;
146
+ /**
147
+ * Remove a vault entry from the encrypted store.
148
+ */
149
+ removeVaultEntry(agent: string, service: string): Promise<{
150
+ removed: boolean;
151
+ }>;
152
+ /**
153
+ * List vault entries for an agent (metadata only — no secret values).
154
+ * Returns service names, types, labels, and credential field names.
155
+ */
156
+ listVaultEntries(agent: string): Promise<VaultEntryMeta[]>;
157
+ /**
158
+ * Get per-provider auth status: config keys, env vars, OAuth profiles (metadata only).
159
+ * Tokens are NEVER exposed.
160
+ */
161
+ getAuthStatus(): Promise<AuthStatusResponse>;
162
+ getSchedules(): Promise<ScheduleEntry[]>;
163
+ getAgents(): Promise<AgentConfig[]>;
164
+ getAgent(name: string): Promise<AgentConfig>;
165
+ addAgent(req: AddAgentRequest, teamName?: string): Promise<{
166
+ added: boolean;
167
+ }>;
168
+ removeAgent(name: string): Promise<{
169
+ removed: boolean;
170
+ }>;
171
+ updateAgent(name: string, req: UpdateAgentRequest): Promise<AgentConfig>;
172
+ getTeams(): Promise<Team[]>;
173
+ getTeam(name?: string): Promise<Team | undefined>;
174
+ addTeam(req: AddTeamRequest): Promise<{
175
+ added: boolean;
176
+ }>;
177
+ removeTeam(name: string): Promise<{
178
+ removed: boolean;
179
+ }>;
180
+ renameTeam(oldName: string, newName: string): Promise<Team>;
181
+ getProcesses(): Promise<AgentProcess[]>;
182
+ getState(): Promise<PolpoState>;
183
+ getConfig(): Promise<PolpoConfig>;
184
+ updateSettings(req: UpdateSettingsRequest): Promise<PolpoConfig>;
185
+ listChannels(): Promise<Record<string, NotificationChannelConfig>>;
186
+ upsertChannel(name: string, config: NotificationChannelConfig): Promise<PolpoConfig>;
187
+ deleteChannel(name: string): Promise<PolpoConfig>;
188
+ testChannel(name: string): Promise<{
189
+ success: boolean;
190
+ }>;
191
+ getMemory(): Promise<{
192
+ exists: boolean;
193
+ content: string;
194
+ }>;
195
+ saveMemory(content: string): Promise<{
196
+ saved: boolean;
197
+ }>;
198
+ getAgentMemory(agentName: string): Promise<{
199
+ exists: boolean;
200
+ content: string;
201
+ agent: string;
202
+ }>;
203
+ saveAgentMemory(agentName: string, content: string): Promise<{
204
+ saved: boolean;
205
+ agent: string;
206
+ }>;
207
+ getLogs(): Promise<LogSession[]>;
208
+ getLogEntries(sessionId: string): Promise<LogEntry[]>;
209
+ /** Discover available skills in the agent skill pool with assignment info. */
210
+ getSkills(): Promise<SkillWithAssignment[]>;
211
+ /** Assign a skill to an agent. */
212
+ assignSkill(skillName: string, agent: string): Promise<{
213
+ skill: string;
214
+ agent: string;
215
+ }>;
216
+ /** Unassign a skill from an agent. */
217
+ unassignSkill(skillName: string, agent: string): Promise<{
218
+ skill: string;
219
+ agent: string;
220
+ }>;
221
+ /** Discover orchestrator skills (.polpo/.agent/skills/). */
222
+ getOrchestratorSkills(): Promise<SkillInfo[]>;
223
+ /** Get the full content of an agent skill by name. */
224
+ getSkillContent(name: string): Promise<LoadedSkill>;
225
+ /** Get the full content of an orchestrator skill by name. */
226
+ getOrchestratorSkillContent(name: string): Promise<LoadedSkill>;
227
+ /** Get the full skills index (tags and categories for all skills). */
228
+ getSkillsIndex(): Promise<SkillIndex>;
229
+ /** Update a skill's tags and/or category in the skills index. */
230
+ updateSkillIndex(name: string, entry: SkillIndexEntry): Promise<{
231
+ skill: string;
232
+ tags?: string[];
233
+ category?: string;
234
+ }>;
235
+ /** Get the full activity history for a task from its run JSONL log. */
236
+ getTaskActivity(taskId: string): Promise<RunActivityEntry[]>;
237
+ /**
238
+ * Talk to Polpo via the OpenAI-compatible chat completions endpoint.
239
+ * Non-streaming mode — returns the full response.
240
+ */
241
+ chatCompletions(req: ChatCompletionRequest): Promise<ChatCompletionResponse>;
242
+ /**
243
+ * Talk to Polpo via the OpenAI-compatible chat completions endpoint.
244
+ * Streaming mode — returns a ChatCompletionStream (async-iterable + metadata).
245
+ */
246
+ chatCompletionsStream(req: ChatCompletionRequest): ChatCompletionStream;
247
+ getSessions(): Promise<{
248
+ sessions: ChatSession[];
249
+ }>;
250
+ getSessionMessages(sessionId: string): Promise<{
251
+ session: ChatSession;
252
+ messages: ChatMessage[];
253
+ }>;
254
+ renameSession(sessionId: string, title: string): Promise<{
255
+ renamed: boolean;
256
+ }>;
257
+ deleteSession(sessionId: string): Promise<{
258
+ deleted: boolean;
259
+ }>;
260
+ /** List notification history. */
261
+ getNotifications(opts?: {
262
+ limit?: number;
263
+ status?: string;
264
+ channel?: string;
265
+ rule?: string;
266
+ }): Promise<NotificationRecord[]>;
267
+ /** Get notification stats (total, sent, failed). */
268
+ getNotificationStats(): Promise<NotificationStats>;
269
+ /** Send a notification directly to a channel (with optional delay). */
270
+ sendNotification(req: SendNotificationRequest): Promise<SendNotificationResult>;
271
+ /** List approval requests. */
272
+ getApprovals(status?: ApprovalStatus): Promise<ApprovalRequest[]>;
273
+ /** Get pending approval requests. */
274
+ getPendingApprovals(): Promise<ApprovalRequest[]>;
275
+ /** Approve a request. */
276
+ approveRequest(requestId: string, opts?: {
277
+ resolvedBy?: string;
278
+ note?: string;
279
+ }): Promise<ApprovalRequest>;
280
+ /** Reject a request with feedback. */
281
+ rejectRequest(requestId: string, feedback: string, resolvedBy?: string): Promise<ApprovalRequest>;
282
+ /** List available playbooks discovered from disk. */
283
+ getPlaybooks(): Promise<PlaybookInfo[]>;
284
+ /** Get full playbook definition including the mission body. */
285
+ getPlaybook(name: string): Promise<PlaybookDefinition>;
286
+ /** Run a playbook with parameters. Returns the created mission + task count. */
287
+ runPlaybook(name: string, params?: Record<string, string | number | boolean>): Promise<PlaybookRunResult>;
288
+ /** @deprecated Use getPlaybooks instead. */
289
+ getTemplates(): Promise<PlaybookInfo[]>;
290
+ /** @deprecated Use getPlaybook instead. */
291
+ getTemplate(name: string): Promise<PlaybookDefinition>;
292
+ /** @deprecated Use runPlaybook instead. */
293
+ runTemplate(name: string, params?: Record<string, string | number | boolean>): Promise<PlaybookRunResult>;
294
+ /** Health check (instance method — uses configured base URL). */
295
+ getHealth(): Promise<HealthResponse>;
296
+ static health(baseUrl: string): Promise<HealthResponse>;
297
+ /** Build SSE URL for EventSource (with optional apiKey as query param) */
298
+ getEventsUrl(filter?: string[]): string;
299
+ }
300
+ //# sourceMappingURL=polpo-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polpo-client.d.ts","sourceRoot":"","sources":["../../src/client/polpo-client.ts"],"names":[],"mappings":"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"}