@polpo-ai/react 0.2.2

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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +556 -0
  3. package/dist/hooks/use-active-delays.d.ts +19 -0
  4. package/dist/hooks/use-active-delays.d.ts.map +1 -0
  5. package/dist/hooks/use-active-delays.js +35 -0
  6. package/dist/hooks/use-active-delays.js.map +1 -0
  7. package/dist/hooks/use-agent.d.ts +12 -0
  8. package/dist/hooks/use-agent.d.ts.map +1 -0
  9. package/dist/hooks/use-agent.js +28 -0
  10. package/dist/hooks/use-agent.js.map +1 -0
  11. package/dist/hooks/use-agents.d.ts +16 -0
  12. package/dist/hooks/use-agents.d.ts.map +1 -0
  13. package/dist/hooks/use-agents.js +51 -0
  14. package/dist/hooks/use-agents.js.map +1 -0
  15. package/dist/hooks/use-approvals.d.ts +19 -0
  16. package/dist/hooks/use-approvals.d.ts.map +1 -0
  17. package/dist/hooks/use-approvals.js +51 -0
  18. package/dist/hooks/use-approvals.js.map +1 -0
  19. package/dist/hooks/use-assessment-progress.d.ts +11 -0
  20. package/dist/hooks/use-assessment-progress.d.ts.map +1 -0
  21. package/dist/hooks/use-assessment-progress.js +10 -0
  22. package/dist/hooks/use-assessment-progress.js.map +1 -0
  23. package/dist/hooks/use-auth-status.d.ts +13 -0
  24. package/dist/hooks/use-auth-status.d.ts.map +1 -0
  25. package/dist/hooks/use-auth-status.js +28 -0
  26. package/dist/hooks/use-auth-status.js.map +1 -0
  27. package/dist/hooks/use-events.d.ts +6 -0
  28. package/dist/hooks/use-events.d.ts.map +1 -0
  29. package/dist/hooks/use-events.js +24 -0
  30. package/dist/hooks/use-events.js.map +1 -0
  31. package/dist/hooks/use-logs.d.ts +10 -0
  32. package/dist/hooks/use-logs.d.ts.map +1 -0
  33. package/dist/hooks/use-logs.js +24 -0
  34. package/dist/hooks/use-logs.js.map +1 -0
  35. package/dist/hooks/use-memory.d.ts +30 -0
  36. package/dist/hooks/use-memory.d.ts.map +1 -0
  37. package/dist/hooks/use-memory.js +66 -0
  38. package/dist/hooks/use-memory.js.map +1 -0
  39. package/dist/hooks/use-mission.d.ts +33 -0
  40. package/dist/hooks/use-mission.d.ts.map +1 -0
  41. package/dist/hooks/use-mission.js +78 -0
  42. package/dist/hooks/use-mission.js.map +1 -0
  43. package/dist/hooks/use-missions.d.ts +19 -0
  44. package/dist/hooks/use-missions.d.ts.map +1 -0
  45. package/dist/hooks/use-missions.js +52 -0
  46. package/dist/hooks/use-missions.js.map +1 -0
  47. package/dist/hooks/use-notifications.d.ts +21 -0
  48. package/dist/hooks/use-notifications.d.ts.map +1 -0
  49. package/dist/hooks/use-notifications.js +43 -0
  50. package/dist/hooks/use-notifications.js.map +1 -0
  51. package/dist/hooks/use-orchestrator-skills.d.ts +13 -0
  52. package/dist/hooks/use-orchestrator-skills.d.ts.map +1 -0
  53. package/dist/hooks/use-orchestrator-skills.js +28 -0
  54. package/dist/hooks/use-orchestrator-skills.js.map +1 -0
  55. package/dist/hooks/use-playbooks.d.ts +29 -0
  56. package/dist/hooks/use-playbooks.d.ts.map +1 -0
  57. package/dist/hooks/use-playbooks.js +49 -0
  58. package/dist/hooks/use-playbooks.js.map +1 -0
  59. package/dist/hooks/use-polpo.d.ts +8 -0
  60. package/dist/hooks/use-polpo.d.ts.map +1 -0
  61. package/dist/hooks/use-polpo.js +8 -0
  62. package/dist/hooks/use-polpo.js.map +1 -0
  63. package/dist/hooks/use-processes.d.ts +9 -0
  64. package/dist/hooks/use-processes.d.ts.map +1 -0
  65. package/dist/hooks/use-processes.js +24 -0
  66. package/dist/hooks/use-processes.js.map +1 -0
  67. package/dist/hooks/use-schedules.d.ts +9 -0
  68. package/dist/hooks/use-schedules.d.ts.map +1 -0
  69. package/dist/hooks/use-schedules.js +35 -0
  70. package/dist/hooks/use-schedules.js.map +1 -0
  71. package/dist/hooks/use-sessions.d.ts +14 -0
  72. package/dist/hooks/use-sessions.d.ts.map +1 -0
  73. package/dist/hooks/use-sessions.js +49 -0
  74. package/dist/hooks/use-sessions.js.map +1 -0
  75. package/dist/hooks/use-skills.d.ts +13 -0
  76. package/dist/hooks/use-skills.d.ts.map +1 -0
  77. package/dist/hooks/use-skills.js +28 -0
  78. package/dist/hooks/use-skills.js.map +1 -0
  79. package/dist/hooks/use-stable-value.d.ts +6 -0
  80. package/dist/hooks/use-stable-value.d.ts.map +1 -0
  81. package/dist/hooks/use-stable-value.js +30 -0
  82. package/dist/hooks/use-stable-value.js.map +1 -0
  83. package/dist/hooks/use-stats.d.ts +3 -0
  84. package/dist/hooks/use-stats.d.ts.map +1 -0
  85. package/dist/hooks/use-stats.js +7 -0
  86. package/dist/hooks/use-stats.js.map +1 -0
  87. package/dist/hooks/use-task-activity.d.ts +21 -0
  88. package/dist/hooks/use-task-activity.d.ts.map +1 -0
  89. package/dist/hooks/use-task-activity.js +72 -0
  90. package/dist/hooks/use-task-activity.js.map +1 -0
  91. package/dist/hooks/use-task.d.ts +14 -0
  92. package/dist/hooks/use-task.d.ts.map +1 -0
  93. package/dist/hooks/use-task.js +58 -0
  94. package/dist/hooks/use-task.js.map +1 -0
  95. package/dist/hooks/use-tasks.d.ts +13 -0
  96. package/dist/hooks/use-tasks.d.ts.map +1 -0
  97. package/dist/hooks/use-tasks.js +50 -0
  98. package/dist/hooks/use-tasks.js.map +1 -0
  99. package/dist/hooks/use-templates.d.ts +21 -0
  100. package/dist/hooks/use-templates.d.ts.map +1 -0
  101. package/dist/hooks/use-templates.js +41 -0
  102. package/dist/hooks/use-templates.js.map +1 -0
  103. package/dist/hooks/use-vault-entries.d.ts +13 -0
  104. package/dist/hooks/use-vault-entries.d.ts.map +1 -0
  105. package/dist/hooks/use-vault-entries.js +32 -0
  106. package/dist/hooks/use-vault-entries.js.map +1 -0
  107. package/dist/index.d.ts +29 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +30 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/provider/polpo-context.d.ts +9 -0
  112. package/dist/provider/polpo-context.d.ts.map +1 -0
  113. package/dist/provider/polpo-context.js +10 -0
  114. package/dist/provider/polpo-context.js.map +1 -0
  115. package/dist/provider/polpo-provider.d.ts +12 -0
  116. package/dist/provider/polpo-provider.d.ts.map +1 -0
  117. package/dist/provider/polpo-provider.js +62 -0
  118. package/dist/provider/polpo-provider.js.map +1 -0
  119. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-agents.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE/G,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7E,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,SAAS,IAAI,eAAe,CA6D3C"}
@@ -0,0 +1,51 @@
1
+ import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ export function useAgents() {
4
+ const { client, store } = usePolpoContext();
5
+ const agents = useSyncExternalStore(store.subscribe, () => store.getSnapshot().agents, () => store.getServerSnapshot().agents);
6
+ const [teams, setTeams] = useState([]);
7
+ const [isLoading, setIsLoading] = useState(true);
8
+ const [error, setError] = useState(null);
9
+ const fetchAll = useCallback(async () => {
10
+ try {
11
+ const [a, t] = await Promise.all([client.getAgents(), client.getTeams()]);
12
+ store.setAgents(a);
13
+ setTeams(t);
14
+ }
15
+ catch (err) {
16
+ setError(err);
17
+ }
18
+ }, [client, store]);
19
+ useEffect(() => {
20
+ setIsLoading(true);
21
+ fetchAll().finally(() => setIsLoading(false));
22
+ }, [fetchAll]);
23
+ const addAgent = useCallback(async (req, teamName) => {
24
+ await client.addAgent(req, teamName);
25
+ await fetchAll();
26
+ }, [client, fetchAll]);
27
+ const updateAgent = useCallback(async (name, req) => {
28
+ const updated = await client.updateAgent(name, req);
29
+ await fetchAll();
30
+ return updated;
31
+ }, [client, fetchAll]);
32
+ const removeAgent = useCallback(async (name) => {
33
+ await client.removeAgent(name);
34
+ await fetchAll();
35
+ }, [client, fetchAll]);
36
+ const addTeam = useCallback(async (req) => {
37
+ await client.addTeam(req);
38
+ await fetchAll();
39
+ }, [client, fetchAll]);
40
+ const removeTeam = useCallback(async (name) => {
41
+ await client.removeTeam(name);
42
+ await fetchAll();
43
+ }, [client, fetchAll]);
44
+ const renameTeam = useCallback(async (oldName, newName) => {
45
+ const t = await client.renameTeam(oldName, newName);
46
+ await fetchAll();
47
+ return t;
48
+ }, [client, fetchAll]);
49
+ return { agents, teams, isLoading, error, addAgent, updateAgent, removeAgent, addTeam, removeTeam, renameTeam, refetch: fetchAll };
50
+ }
51
+ //# sourceMappingURL=use-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-agents.js","sourceRoot":"","sources":["../../src/hooks/use-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ApprovalRequest, ApprovalStatus } from "@polpo-ai/client";
2
+ export interface UseApprovalsReturn {
3
+ approvals: ApprovalRequest[];
4
+ pending: ApprovalRequest[];
5
+ approve: (requestId: string, opts?: {
6
+ resolvedBy?: string;
7
+ note?: string;
8
+ }) => Promise<void>;
9
+ reject: (requestId: string, feedback: string, resolvedBy?: string) => Promise<void>;
10
+ refetch: () => void;
11
+ loading: boolean;
12
+ }
13
+ /**
14
+ * Hook for managing approval gates.
15
+ *
16
+ * Auto-refetches when SSE approval events arrive.
17
+ */
18
+ export declare function useApprovals(status?: ApprovalStatus): UseApprovalsReturn;
19
+ //# sourceMappingURL=use-approvals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-approvals.d.ts","sourceRoot":"","sources":["../../src/hooks/use-approvals.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAmDxE"}
@@ -0,0 +1,51 @@
1
+ import { useState, useEffect, useCallback } from "react";
2
+ import { usePolpo } from "./use-polpo.js";
3
+ import { useEvents } from "./use-events.js";
4
+ const APPROVAL_EVENTS = ["approval:requested", "approval:resolved", "approval:rejected", "approval:timeout"];
5
+ /**
6
+ * Hook for managing approval gates.
7
+ *
8
+ * Auto-refetches when SSE approval events arrive.
9
+ */
10
+ export function useApprovals(status) {
11
+ const { client } = usePolpo();
12
+ const [approvals, setApprovals] = useState([]);
13
+ const [loading, setLoading] = useState(true);
14
+ const [fetchCount, setFetchCount] = useState(0);
15
+ // Watch for approval SSE events to trigger refetch
16
+ const { events: approvalEvents } = useEvents(APPROVAL_EVENTS, 1);
17
+ const refetch = useCallback(() => {
18
+ setFetchCount((c) => c + 1);
19
+ }, []);
20
+ useEffect(() => {
21
+ if (!client)
22
+ return;
23
+ setLoading(true);
24
+ client
25
+ .getApprovals(status)
26
+ .then(setApprovals)
27
+ .catch(() => { })
28
+ .finally(() => setLoading(false));
29
+ }, [client, status, fetchCount]);
30
+ // Auto-refetch when new approval events arrive
31
+ useEffect(() => {
32
+ if (approvalEvents.length > 0) {
33
+ refetch();
34
+ }
35
+ }, [approvalEvents.length, refetch]);
36
+ const pending = approvals.filter((a) => a.status === "pending");
37
+ const approve = useCallback(async (requestId, opts) => {
38
+ if (!client)
39
+ throw new Error("Client not initialized");
40
+ await client.approveRequest(requestId, opts);
41
+ refetch();
42
+ }, [client, refetch]);
43
+ const reject = useCallback(async (requestId, feedback, resolvedBy) => {
44
+ if (!client)
45
+ throw new Error("Client not initialized");
46
+ await client.rejectRequest(requestId, feedback, resolvedBy);
47
+ refetch();
48
+ }, [client, refetch]);
49
+ return { approvals, pending, approve, reject, refetch, loading };
50
+ }
51
+ //# sourceMappingURL=use-approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-approvals.js","sourceRoot":"","sources":["../../src/hooks/use-approvals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAY5C,MAAM,eAAe,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;AAE7G;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM;aACH,YAAY,CAAC,MAAM,CAAC;aACpB,IAAI,CAAC,YAAY,CAAC;aAClB,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjC,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,SAAiB,EAAE,IAA6C,EAAE,EAAE;QACzE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EAAE,SAAiB,EAAE,QAAgB,EAAE,UAAmB,EAAE,EAAE;QACjE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACnE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AssessmentProgressEntry, AssessmentCheckStatus } from "@polpo-ai/client";
2
+ export interface UseAssessmentProgressReturn {
3
+ /** Live assessment progress messages for this task. Empty when no assessment is running. */
4
+ progress: AssessmentProgressEntry[];
5
+ /** Whether an assessment is currently in progress (progress array is non-empty). */
6
+ isAssessing: boolean;
7
+ /** Per-expectation check status (started/complete). Empty when no assessment is running. */
8
+ checks: AssessmentCheckStatus[];
9
+ }
10
+ export declare function useAssessmentProgress(taskId: string): UseAssessmentProgressReturn;
11
+ //# sourceMappingURL=use-assessment-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-assessment-progress.d.ts","sourceRoot":"","sources":["../../src/hooks/use-assessment-progress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEvF,MAAM,WAAW,2BAA2B;IAC1C,4FAA4F;IAC5F,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,oFAAoF;IACpF,WAAW,EAAE,OAAO,CAAC;IACrB,4FAA4F;IAC5F,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B,CAgBjF"}
@@ -0,0 +1,10 @@
1
+ import { useSyncExternalStore } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ import { selectAssessmentProgress, selectAssessmentChecks } from "@polpo-ai/client";
4
+ export function useAssessmentProgress(taskId) {
5
+ const { store } = usePolpoContext();
6
+ const progress = useSyncExternalStore(store.subscribe, () => selectAssessmentProgress(store.getSnapshot(), taskId), () => []);
7
+ const checks = useSyncExternalStore(store.subscribe, () => selectAssessmentChecks(store.getSnapshot(), taskId), () => []);
8
+ return { progress, isAssessing: progress.length > 0, checks };
9
+ }
10
+ //# sourceMappingURL=use-assessment-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-assessment-progress.js","sourceRoot":"","sources":["../../src/hooks/use-assessment-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAYpF,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAG,oBAAoB,CACnC,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,EAC3D,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;IAEF,MAAM,MAAM,GAAG,oBAAoB,CACjC,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,EACzD,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { AuthStatusResponse } from "@polpo-ai/client";
2
+ export interface UseAuthStatusReturn {
3
+ authStatus: AuthStatusResponse | null;
4
+ isLoading: boolean;
5
+ error: Error | null;
6
+ refetch: () => Promise<void>;
7
+ }
8
+ /**
9
+ * Fetch per-provider auth status: config keys, env vars, OAuth profiles.
10
+ * Tokens are NEVER exposed — only safe metadata (email, expiry, status).
11
+ */
12
+ export declare function useAuthStatus(): UseAuthStatusReturn;
13
+ //# sourceMappingURL=use-auth-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auth-status.d.ts","sourceRoot":"","sources":["../../src/hooks/use-auth-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAsBnD"}
@@ -0,0 +1,28 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ /**
4
+ * Fetch per-provider auth status: config keys, env vars, OAuth profiles.
5
+ * Tokens are NEVER exposed — only safe metadata (email, expiry, status).
6
+ */
7
+ export function useAuthStatus() {
8
+ const { client } = usePolpoContext();
9
+ const [authStatus, setAuthStatus] = useState(null);
10
+ const [isLoading, setIsLoading] = useState(true);
11
+ const [error, setError] = useState(null);
12
+ const fetch_ = useCallback(async () => {
13
+ try {
14
+ const data = await client.getAuthStatus();
15
+ setAuthStatus(data);
16
+ setError(null);
17
+ }
18
+ catch (err) {
19
+ setError(err);
20
+ }
21
+ }, [client]);
22
+ useEffect(() => {
23
+ setIsLoading(true);
24
+ fetch_().finally(() => setIsLoading(false));
25
+ }, [fetch_]);
26
+ return { authStatus, isLoading, error, refetch: fetch_ };
27
+ }
28
+ //# sourceMappingURL=use-auth-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auth-status.js","sourceRoot":"","sources":["../../src/hooks/use-auth-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IAC9E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SSEEvent } from "@polpo-ai/client";
2
+ export interface UseEventsReturn {
3
+ events: SSEEvent[];
4
+ }
5
+ export declare function useEvents(filter?: string[], maxEvents?: number): UseEventsReturn;
6
+ //# sourceMappingURL=use-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-events.d.ts","sourceRoot":"","sources":["../../src/hooks/use-events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,SAAM,GAAG,eAAe,CAwB7E"}
@@ -0,0 +1,24 @@
1
+ import { useRef, useSyncExternalStore } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ import { selectEvents } from "@polpo-ai/client";
4
+ import { useStableValue } from "./use-stable-value.js";
5
+ export function useEvents(filter, maxEvents = 200) {
6
+ const { store } = usePolpoContext();
7
+ const stableFilter = useStableValue(filter);
8
+ const cacheRef = useRef({
9
+ source: [],
10
+ result: [],
11
+ });
12
+ const events = useSyncExternalStore(store.subscribe, () => {
13
+ const selected = selectEvents(store.getSnapshot(), stableFilter);
14
+ // Return cached result if the underlying array hasn't changed
15
+ if (selected === cacheRef.current.source) {
16
+ return cacheRef.current.result;
17
+ }
18
+ const sliced = selected.slice(-maxEvents);
19
+ cacheRef.current = { source: selected, result: sliced };
20
+ return sliced;
21
+ }, () => []);
22
+ return { events };
23
+ }
24
+ //# sourceMappingURL=use-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-events.js","sourceRoot":"","sources":["../../src/hooks/use-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOvD,MAAM,UAAU,SAAS,CAAC,MAAiB,EAAE,SAAS,GAAG,GAAG;IAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAA6C;QAClE,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,oBAAoB,CACjC,KAAK,CAAC,SAAS,EACf,GAAG,EAAE;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;QACjE,8DAA8D;QAC9D,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,QAAQ,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { LogSession, LogEntry } from "@polpo-ai/client";
2
+ export interface UseLogsReturn {
3
+ sessions: LogSession[];
4
+ isLoading: boolean;
5
+ error: Error | null;
6
+ getLogEntries: (sessionId: string) => Promise<LogEntry[]>;
7
+ refetch: () => Promise<void>;
8
+ }
9
+ export declare function useLogs(): UseLogsReturn;
10
+ //# sourceMappingURL=use-logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-logs.d.ts","sourceRoot":"","sources":["../../src/hooks/use-logs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,OAAO,IAAI,aAAa,CA2BvC"}
@@ -0,0 +1,24 @@
1
+ import { useCallback, useEffect, useState } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ export function useLogs() {
4
+ const { client } = usePolpoContext();
5
+ const [sessions, setSessions] = useState([]);
6
+ const [isLoading, setIsLoading] = useState(true);
7
+ const [error, setError] = useState(null);
8
+ const refetch = useCallback(async () => {
9
+ try {
10
+ const s = await client.getLogs();
11
+ setSessions(s);
12
+ }
13
+ catch (err) {
14
+ setError(err);
15
+ }
16
+ }, [client]);
17
+ useEffect(() => {
18
+ setIsLoading(true);
19
+ refetch().finally(() => setIsLoading(false));
20
+ }, [refetch]);
21
+ const getLogEntries = useCallback((sessionId) => client.getLogEntries(sessionId), [client]);
22
+ return { sessions, isLoading, error, getLogEntries, refetch };
23
+ }
24
+ //# sourceMappingURL=use-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-logs.js","sourceRoot":"","sources":["../../src/hooks/use-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAW/D,MAAM,UAAU,OAAO;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAErC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EACtD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,30 @@
1
+ export interface UseMemoryReturn {
2
+ memory: {
3
+ exists: boolean;
4
+ content: string;
5
+ } | null;
6
+ isLoading: boolean;
7
+ error: Error | null;
8
+ saveMemory: (content: string) => Promise<void>;
9
+ refetch: () => Promise<void>;
10
+ }
11
+ /**
12
+ * Hook for shared memory (no agent scope).
13
+ */
14
+ export declare function useMemory(): UseMemoryReturn;
15
+ export interface UseAgentMemoryReturn {
16
+ memory: {
17
+ exists: boolean;
18
+ content: string;
19
+ } | null;
20
+ isLoading: boolean;
21
+ error: Error | null;
22
+ saveMemory: (content: string) => Promise<void>;
23
+ refetch: () => Promise<void>;
24
+ }
25
+ /**
26
+ * Hook for agent-specific memory.
27
+ * @param agentName The agent whose private memory to access.
28
+ */
29
+ export declare function useAgentMemory(agentName: string): UseAgentMemoryReturn;
30
+ //# sourceMappingURL=use-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-memory.d.ts","sourceRoot":"","sources":["../../src/hooks/use-memory.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAiC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAiCtE"}
@@ -0,0 +1,66 @@
1
+ import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ /**
4
+ * Hook for shared memory (no agent scope).
5
+ */
6
+ export function useMemory() {
7
+ const { client, store } = usePolpoContext();
8
+ const memory = useSyncExternalStore(store.subscribe, () => store.getSnapshot().memory, () => null);
9
+ const [isLoading, setIsLoading] = useState(!memory);
10
+ const [error, setError] = useState(null);
11
+ const refetch = useCallback(async () => {
12
+ try {
13
+ const m = await client.getMemory();
14
+ store.setMemory(m);
15
+ }
16
+ catch (err) {
17
+ setError(err);
18
+ }
19
+ }, [client, store]);
20
+ useEffect(() => {
21
+ if (memory) {
22
+ setIsLoading(false);
23
+ return;
24
+ }
25
+ setIsLoading(true);
26
+ refetch().finally(() => setIsLoading(false));
27
+ }, [refetch, !!memory]);
28
+ const saveMemory = useCallback(async (content) => {
29
+ await client.saveMemory(content);
30
+ store.setMemory({ exists: true, content });
31
+ }, [client, store]);
32
+ return { memory, isLoading, error, saveMemory, refetch };
33
+ }
34
+ /**
35
+ * Hook for agent-specific memory.
36
+ * @param agentName The agent whose private memory to access.
37
+ */
38
+ export function useAgentMemory(agentName) {
39
+ const { client, store } = usePolpoContext();
40
+ const memory = useSyncExternalStore(store.subscribe, () => store.getSnapshot().agentMemory.get(agentName) ?? null, () => null);
41
+ const [isLoading, setIsLoading] = useState(!memory);
42
+ const [error, setError] = useState(null);
43
+ const refetch = useCallback(async () => {
44
+ try {
45
+ const m = await client.getAgentMemory(agentName);
46
+ store.setAgentMemory(agentName, m);
47
+ }
48
+ catch (err) {
49
+ setError(err);
50
+ }
51
+ }, [client, store, agentName]);
52
+ useEffect(() => {
53
+ if (memory) {
54
+ setIsLoading(false);
55
+ return;
56
+ }
57
+ setIsLoading(true);
58
+ refetch().finally(() => setIsLoading(false));
59
+ }, [refetch, !!memory]);
60
+ const saveMemory = useCallback(async (content) => {
61
+ await client.saveAgentMemory(agentName, content);
62
+ store.setAgentMemory(agentName, { exists: true, content });
63
+ }, [client, store, agentName]);
64
+ return { memory, isLoading, error, saveMemory, refetch };
65
+ }
66
+ //# sourceMappingURL=use-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-memory.js","sourceRoot":"","sources":["../../src/hooks/use-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Mission, MissionReport, UpdateMissionRequest, ExecuteMissionResult, ResumeMissionResult, AddMissionTaskRequest, UpdateMissionTaskRequest, ReorderMissionTasksRequest, AddMissionCheckpointRequest, UpdateMissionCheckpointRequest, AddMissionQualityGateRequest, UpdateMissionQualityGateRequest, AddMissionTeamMemberRequest, UpdateMissionTeamMemberRequest, UpdateMissionNotificationsRequest } from "@polpo-ai/client";
2
+ export interface UseMissionReturn {
3
+ mission: Mission | undefined;
4
+ /** Completion report — populated from mission:completed SSE event */
5
+ report: MissionReport | undefined;
6
+ isLoading: boolean;
7
+ error: Error | null;
8
+ updateMission: (req: UpdateMissionRequest) => Promise<Mission>;
9
+ executeMission: () => Promise<ExecuteMissionResult>;
10
+ resumeMission: (opts?: {
11
+ retryFailed?: boolean;
12
+ }) => Promise<ResumeMissionResult>;
13
+ abortMission: () => Promise<{
14
+ aborted: number;
15
+ }>;
16
+ deleteMission: () => Promise<void>;
17
+ addTask: (req: AddMissionTaskRequest) => Promise<Mission>;
18
+ updateTask: (taskTitle: string, req: UpdateMissionTaskRequest) => Promise<Mission>;
19
+ removeTask: (taskTitle: string) => Promise<Mission>;
20
+ reorderTasks: (req: ReorderMissionTasksRequest) => Promise<Mission>;
21
+ addCheckpoint: (req: AddMissionCheckpointRequest) => Promise<Mission>;
22
+ updateCheckpoint: (name: string, req: UpdateMissionCheckpointRequest) => Promise<Mission>;
23
+ removeCheckpoint: (name: string) => Promise<Mission>;
24
+ addQualityGate: (req: AddMissionQualityGateRequest) => Promise<Mission>;
25
+ updateQualityGate: (name: string, req: UpdateMissionQualityGateRequest) => Promise<Mission>;
26
+ removeQualityGate: (name: string) => Promise<Mission>;
27
+ addTeamMember: (req: AddMissionTeamMemberRequest) => Promise<Mission>;
28
+ updateTeamMember: (name: string, req: UpdateMissionTeamMemberRequest) => Promise<Mission>;
29
+ removeTeamMember: (name: string) => Promise<Mission>;
30
+ updateNotifications: (req: UpdateMissionNotificationsRequest) => Promise<Mission>;
31
+ }
32
+ export declare function useMission(missionId: string): UseMissionReturn;
33
+ //# sourceMappingURL=use-mission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mission.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mission.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EACvF,qBAAqB,EAAE,wBAAwB,EAAE,0BAA0B,EAC3E,2BAA2B,EAAE,8BAA8B,EAC3D,4BAA4B,EAAE,+BAA+B,EAC7D,2BAA2B,EAAE,8BAA8B,EAC3D,iCAAiC,EAClC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qEAAqE;IACrE,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,cAAc,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClF,YAAY,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnF,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,GAAG,EAAE,0BAA0B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,aAAa,EAAE,CAAC,GAAG,EAAE,2BAA2B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,cAAc,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,+BAA+B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5F,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,aAAa,EAAE,CAAC,GAAG,EAAE,2BAA2B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,8BAA8B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,mBAAmB,EAAE,CAAC,GAAG,EAAE,iCAAiC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnF;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAmJ9D"}
@@ -0,0 +1,78 @@
1
+ import { useSyncExternalStore, useCallback, useEffect, useRef, useState } from "react";
2
+ import { usePolpoContext } from "../provider/polpo-context.js";
3
+ import { selectMission, selectMissionReport } from "@polpo-ai/client";
4
+ export function useMission(missionId) {
5
+ const { client, store } = usePolpoContext();
6
+ const mission = useSyncExternalStore(store.subscribe, () => selectMission(store.getSnapshot(), missionId), () => selectMission(store.getServerSnapshot(), missionId));
7
+ const report = useSyncExternalStore(store.subscribe, () => selectMissionReport(store.getSnapshot(), missionId), () => selectMissionReport(store.getServerSnapshot(), missionId));
8
+ const missionsStale = useSyncExternalStore(store.subscribe, () => store.getSnapshot().missionsStale, () => false);
9
+ const [isLoading, setIsLoading] = useState(!mission);
10
+ const [error, setError] = useState(null);
11
+ // ── Initial fetch (only when mission is not yet in the store) ──
12
+ useEffect(() => {
13
+ if (mission) {
14
+ setIsLoading(false);
15
+ return;
16
+ }
17
+ let cancelled = false;
18
+ setIsLoading(true);
19
+ client.getMission(missionId)
20
+ .then((m) => {
21
+ if (!cancelled) {
22
+ store.upsertMission(m);
23
+ setIsLoading(false);
24
+ }
25
+ })
26
+ .catch((err) => {
27
+ if (!cancelled) {
28
+ setError(err);
29
+ setIsLoading(false);
30
+ }
31
+ });
32
+ return () => { cancelled = true; };
33
+ }, [client, store, missionId, !!mission]);
34
+ // ── Auto-refetch when missions are marked stale by SSE events ──
35
+ // (e.g. mission:saved after atomic data modifications from the orchestrator)
36
+ const fetchingRef = useRef(false);
37
+ useEffect(() => {
38
+ if (missionsStale && missionId && !fetchingRef.current) {
39
+ fetchingRef.current = true;
40
+ client.getMission(missionId)
41
+ .then((m) => { store.upsertMission(m); })
42
+ .catch(() => { })
43
+ .finally(() => { fetchingRef.current = false; });
44
+ }
45
+ }, [missionsStale, client, store, missionId]);
46
+ const updateMission = useCallback((req) => client.updateMission(missionId, req), [client, missionId]);
47
+ const executeMission = useCallback(() => client.executeMission(missionId), [client, missionId]);
48
+ const resumeMission = useCallback((opts) => client.resumeMission(missionId, opts), [client, missionId]);
49
+ const abortMission = useCallback(() => client.abortMission(missionId), [client, missionId]);
50
+ const deleteMission = useCallback(async () => {
51
+ await client.deleteMission(missionId);
52
+ }, [client, missionId]);
53
+ // ── Atomic mission data callbacks ──
54
+ const addTask = useCallback((req) => client.addMissionTask(missionId, req), [client, missionId]);
55
+ const updateTask = useCallback((taskTitle, req) => client.updateMissionTask(missionId, taskTitle, req), [client, missionId]);
56
+ const removeTask = useCallback((taskTitle) => client.removeMissionTask(missionId, taskTitle), [client, missionId]);
57
+ const reorderTasks = useCallback((req) => client.reorderMissionTasks(missionId, req), [client, missionId]);
58
+ const addCheckpoint = useCallback((req) => client.addMissionCheckpoint(missionId, req), [client, missionId]);
59
+ const updateCheckpoint = useCallback((name, req) => client.updateMissionCheckpoint(missionId, name, req), [client, missionId]);
60
+ const removeCheckpoint = useCallback((name) => client.removeMissionCheckpoint(missionId, name), [client, missionId]);
61
+ const addQualityGate = useCallback((req) => client.addMissionQualityGate(missionId, req), [client, missionId]);
62
+ const updateQualityGate = useCallback((name, req) => client.updateMissionQualityGate(missionId, name, req), [client, missionId]);
63
+ const removeQualityGate = useCallback((name) => client.removeMissionQualityGate(missionId, name), [client, missionId]);
64
+ const addTeamMember = useCallback((req) => client.addMissionTeamMember(missionId, req), [client, missionId]);
65
+ const updateTeamMember = useCallback((name, req) => client.updateMissionTeamMember(missionId, name, req), [client, missionId]);
66
+ const removeTeamMember = useCallback((name) => client.removeMissionTeamMember(missionId, name), [client, missionId]);
67
+ const updateNotifications = useCallback((req) => client.updateMissionNotifications(missionId, req), [client, missionId]);
68
+ return {
69
+ mission, report, isLoading, error,
70
+ updateMission, executeMission, resumeMission, abortMission, deleteMission,
71
+ addTask, updateTask, removeTask, reorderTasks,
72
+ addCheckpoint, updateCheckpoint, removeCheckpoint,
73
+ addQualityGate, updateQualityGate, removeQualityGate,
74
+ addTeamMember, updateTeamMember, removeTeamMember,
75
+ updateNotifications,
76
+ };
77
+ }
78
+ //# sourceMappingURL=use-mission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mission.js","sourceRoot":"","sources":["../../src/hooks/use-mission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Mission, CreateMissionRequest, UpdateMissionRequest, ExecuteMissionResult, ResumeMissionResult } from "@polpo-ai/client";
2
+ export interface UseMissionsReturn {
3
+ missions: Mission[];
4
+ isLoading: boolean;
5
+ error: Error | null;
6
+ createMission: (req: CreateMissionRequest) => Promise<Mission>;
7
+ updateMission: (missionId: string, req: UpdateMissionRequest) => Promise<Mission>;
8
+ deleteMission: (missionId: string) => Promise<void>;
9
+ executeMission: (missionId: string) => Promise<ExecuteMissionResult>;
10
+ resumeMission: (missionId: string, opts?: {
11
+ retryFailed?: boolean;
12
+ }) => Promise<ResumeMissionResult>;
13
+ abortMission: (missionId: string) => Promise<{
14
+ aborted: number;
15
+ }>;
16
+ refetch: () => Promise<void>;
17
+ }
18
+ export declare function useMissions(): UseMissionsReturn;
19
+ //# sourceMappingURL=use-missions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-missions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-missions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvI,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrG,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,WAAW,IAAI,iBAAiB,CAqF/C"}