@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.
- package/LICENSE +21 -0
- package/README.md +556 -0
- package/dist/hooks/use-active-delays.d.ts +19 -0
- package/dist/hooks/use-active-delays.d.ts.map +1 -0
- package/dist/hooks/use-active-delays.js +35 -0
- package/dist/hooks/use-active-delays.js.map +1 -0
- package/dist/hooks/use-agent.d.ts +12 -0
- package/dist/hooks/use-agent.d.ts.map +1 -0
- package/dist/hooks/use-agent.js +28 -0
- package/dist/hooks/use-agent.js.map +1 -0
- package/dist/hooks/use-agents.d.ts +16 -0
- package/dist/hooks/use-agents.d.ts.map +1 -0
- package/dist/hooks/use-agents.js +51 -0
- package/dist/hooks/use-agents.js.map +1 -0
- package/dist/hooks/use-approvals.d.ts +19 -0
- package/dist/hooks/use-approvals.d.ts.map +1 -0
- package/dist/hooks/use-approvals.js +51 -0
- package/dist/hooks/use-approvals.js.map +1 -0
- package/dist/hooks/use-assessment-progress.d.ts +11 -0
- package/dist/hooks/use-assessment-progress.d.ts.map +1 -0
- package/dist/hooks/use-assessment-progress.js +10 -0
- package/dist/hooks/use-assessment-progress.js.map +1 -0
- package/dist/hooks/use-auth-status.d.ts +13 -0
- package/dist/hooks/use-auth-status.d.ts.map +1 -0
- package/dist/hooks/use-auth-status.js +28 -0
- package/dist/hooks/use-auth-status.js.map +1 -0
- package/dist/hooks/use-events.d.ts +6 -0
- package/dist/hooks/use-events.d.ts.map +1 -0
- package/dist/hooks/use-events.js +24 -0
- package/dist/hooks/use-events.js.map +1 -0
- package/dist/hooks/use-logs.d.ts +10 -0
- package/dist/hooks/use-logs.d.ts.map +1 -0
- package/dist/hooks/use-logs.js +24 -0
- package/dist/hooks/use-logs.js.map +1 -0
- package/dist/hooks/use-memory.d.ts +30 -0
- package/dist/hooks/use-memory.d.ts.map +1 -0
- package/dist/hooks/use-memory.js +66 -0
- package/dist/hooks/use-memory.js.map +1 -0
- package/dist/hooks/use-mission.d.ts +33 -0
- package/dist/hooks/use-mission.d.ts.map +1 -0
- package/dist/hooks/use-mission.js +78 -0
- package/dist/hooks/use-mission.js.map +1 -0
- package/dist/hooks/use-missions.d.ts +19 -0
- package/dist/hooks/use-missions.d.ts.map +1 -0
- package/dist/hooks/use-missions.js +52 -0
- package/dist/hooks/use-missions.js.map +1 -0
- package/dist/hooks/use-notifications.d.ts +21 -0
- package/dist/hooks/use-notifications.d.ts.map +1 -0
- package/dist/hooks/use-notifications.js +43 -0
- package/dist/hooks/use-notifications.js.map +1 -0
- package/dist/hooks/use-orchestrator-skills.d.ts +13 -0
- package/dist/hooks/use-orchestrator-skills.d.ts.map +1 -0
- package/dist/hooks/use-orchestrator-skills.js +28 -0
- package/dist/hooks/use-orchestrator-skills.js.map +1 -0
- package/dist/hooks/use-playbooks.d.ts +29 -0
- package/dist/hooks/use-playbooks.d.ts.map +1 -0
- package/dist/hooks/use-playbooks.js +49 -0
- package/dist/hooks/use-playbooks.js.map +1 -0
- package/dist/hooks/use-polpo.d.ts +8 -0
- package/dist/hooks/use-polpo.d.ts.map +1 -0
- package/dist/hooks/use-polpo.js +8 -0
- package/dist/hooks/use-polpo.js.map +1 -0
- package/dist/hooks/use-processes.d.ts +9 -0
- package/dist/hooks/use-processes.d.ts.map +1 -0
- package/dist/hooks/use-processes.js +24 -0
- package/dist/hooks/use-processes.js.map +1 -0
- package/dist/hooks/use-schedules.d.ts +9 -0
- package/dist/hooks/use-schedules.d.ts.map +1 -0
- package/dist/hooks/use-schedules.js +35 -0
- package/dist/hooks/use-schedules.js.map +1 -0
- package/dist/hooks/use-sessions.d.ts +14 -0
- package/dist/hooks/use-sessions.d.ts.map +1 -0
- package/dist/hooks/use-sessions.js +49 -0
- package/dist/hooks/use-sessions.js.map +1 -0
- package/dist/hooks/use-skills.d.ts +13 -0
- package/dist/hooks/use-skills.d.ts.map +1 -0
- package/dist/hooks/use-skills.js +28 -0
- package/dist/hooks/use-skills.js.map +1 -0
- package/dist/hooks/use-stable-value.d.ts +6 -0
- package/dist/hooks/use-stable-value.d.ts.map +1 -0
- package/dist/hooks/use-stable-value.js +30 -0
- package/dist/hooks/use-stable-value.js.map +1 -0
- package/dist/hooks/use-stats.d.ts +3 -0
- package/dist/hooks/use-stats.d.ts.map +1 -0
- package/dist/hooks/use-stats.js +7 -0
- package/dist/hooks/use-stats.js.map +1 -0
- package/dist/hooks/use-task-activity.d.ts +21 -0
- package/dist/hooks/use-task-activity.d.ts.map +1 -0
- package/dist/hooks/use-task-activity.js +72 -0
- package/dist/hooks/use-task-activity.js.map +1 -0
- package/dist/hooks/use-task.d.ts +14 -0
- package/dist/hooks/use-task.d.ts.map +1 -0
- package/dist/hooks/use-task.js +58 -0
- package/dist/hooks/use-task.js.map +1 -0
- package/dist/hooks/use-tasks.d.ts +13 -0
- package/dist/hooks/use-tasks.d.ts.map +1 -0
- package/dist/hooks/use-tasks.js +50 -0
- package/dist/hooks/use-tasks.js.map +1 -0
- package/dist/hooks/use-templates.d.ts +21 -0
- package/dist/hooks/use-templates.d.ts.map +1 -0
- package/dist/hooks/use-templates.js +41 -0
- package/dist/hooks/use-templates.js.map +1 -0
- package/dist/hooks/use-vault-entries.d.ts +13 -0
- package/dist/hooks/use-vault-entries.d.ts.map +1 -0
- package/dist/hooks/use-vault-entries.js +32 -0
- package/dist/hooks/use-vault-entries.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/polpo-context.d.ts +9 -0
- package/dist/provider/polpo-context.d.ts.map +1 -0
- package/dist/provider/polpo-context.js +10 -0
- package/dist/provider/polpo-context.js.map +1 -0
- package/dist/provider/polpo-provider.d.ts +12 -0
- package/dist/provider/polpo-provider.d.ts.map +1 -0
- package/dist/provider/polpo-provider.js +62 -0
- package/dist/provider/polpo-provider.js.map +1 -0
- 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 @@
|
|
|
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"}
|