@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-task-activity.d.ts","sourceRoot":"","sources":["../../src/hooks/use-task-activity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,qBAAqB,CA2DvB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { usePolpoContext } from "../provider/polpo-context.js";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch the full activity history for a task from its run JSONL log.
|
|
5
|
+
* Pass `null` to skip fetching (e.g. when no task is selected).
|
|
6
|
+
*
|
|
7
|
+
* When `pollIntervalMs` is set and > 0, the hook will automatically
|
|
8
|
+
* re-fetch on that interval (useful for live-tailing running tasks).
|
|
9
|
+
*
|
|
10
|
+
* The hook avoids unnecessary re-renders by comparing new data against
|
|
11
|
+
* the current entries (length + last timestamp) before updating state.
|
|
12
|
+
*/
|
|
13
|
+
export function useTaskActivity(taskId, options) {
|
|
14
|
+
const { client } = usePolpoContext();
|
|
15
|
+
const [entries, setEntries] = useState([]);
|
|
16
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
17
|
+
const [error, setError] = useState(null);
|
|
18
|
+
const pollInterval = options?.pollIntervalMs ?? 0;
|
|
19
|
+
const isFetching = useRef(false);
|
|
20
|
+
// Track current entries for stable comparison without re-creating the callback
|
|
21
|
+
const entriesRef = useRef([]);
|
|
22
|
+
const refetch = useCallback(async () => {
|
|
23
|
+
if (!taskId) {
|
|
24
|
+
setEntries([]);
|
|
25
|
+
entriesRef.current = [];
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// Avoid overlapping fetches during polling
|
|
29
|
+
if (isFetching.current)
|
|
30
|
+
return;
|
|
31
|
+
isFetching.current = true;
|
|
32
|
+
// Only show loading spinner on the very first fetch (no data yet)
|
|
33
|
+
const isFirstLoad = entriesRef.current.length === 0;
|
|
34
|
+
if (isFirstLoad)
|
|
35
|
+
setIsLoading(true);
|
|
36
|
+
try {
|
|
37
|
+
const data = await client.getTaskActivity(taskId);
|
|
38
|
+
// Skip state update if data hasn't changed (avoids re-render flicker)
|
|
39
|
+
const prev = entriesRef.current;
|
|
40
|
+
const changed = data.length !== prev.length ||
|
|
41
|
+
(data.length > 0 && data[data.length - 1].ts !== prev[prev.length - 1]?.ts);
|
|
42
|
+
if (changed) {
|
|
43
|
+
entriesRef.current = data;
|
|
44
|
+
setEntries(data);
|
|
45
|
+
}
|
|
46
|
+
// Clear any previous error on success
|
|
47
|
+
setError(null);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
// On poll errors, keep existing entries visible (don't flash empty state)
|
|
51
|
+
setError(err);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
isFetching.current = false;
|
|
55
|
+
if (isFirstLoad)
|
|
56
|
+
setIsLoading(false);
|
|
57
|
+
}
|
|
58
|
+
}, [client, taskId]);
|
|
59
|
+
// Initial fetch
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
refetch();
|
|
62
|
+
}, [refetch]);
|
|
63
|
+
// Auto-poll when interval is set
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (pollInterval <= 0 || !taskId)
|
|
66
|
+
return;
|
|
67
|
+
const timer = setInterval(refetch, pollInterval);
|
|
68
|
+
return () => clearInterval(timer);
|
|
69
|
+
}, [refetch, pollInterval, taskId]);
|
|
70
|
+
return { entries, isLoading, error, refetch };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=use-task-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-task-activity.js","sourceRoot":"","sources":["../../src/hooks/use-task-activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Task, UpdateTaskRequest } from "@polpo-ai/client";
|
|
2
|
+
export interface UseTaskReturn {
|
|
3
|
+
task: Task | undefined;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
updateTask: (req: UpdateTaskRequest) => Promise<Task>;
|
|
7
|
+
deleteTask: () => Promise<void>;
|
|
8
|
+
killTask: () => Promise<void>;
|
|
9
|
+
reassessTask: () => Promise<void>;
|
|
10
|
+
retryTask: () => Promise<void>;
|
|
11
|
+
queueTask: () => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare function useTask(taskId: string): UseTaskReturn;
|
|
14
|
+
//# sourceMappingURL=use-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-task.d.ts","sourceRoot":"","sources":["../../src/hooks/use-task.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAsErD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { usePolpoContext } from "../provider/polpo-context.js";
|
|
3
|
+
import { selectTask } from "@polpo-ai/client";
|
|
4
|
+
export function useTask(taskId) {
|
|
5
|
+
const { client, store } = usePolpoContext();
|
|
6
|
+
const task = useSyncExternalStore(store.subscribe, () => selectTask(store.getSnapshot(), taskId), () => selectTask(store.getServerSnapshot(), taskId));
|
|
7
|
+
const [isLoading, setIsLoading] = useState(!task);
|
|
8
|
+
const [error, setError] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (task) {
|
|
11
|
+
setIsLoading(false);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
let cancelled = false;
|
|
15
|
+
setIsLoading(true);
|
|
16
|
+
client
|
|
17
|
+
.getTask(taskId)
|
|
18
|
+
.then((t) => {
|
|
19
|
+
if (!cancelled) {
|
|
20
|
+
// Merge into store — setTasks would overwrite, so we use applyEvent
|
|
21
|
+
store.applyEvent({
|
|
22
|
+
id: "",
|
|
23
|
+
event: "task:updated",
|
|
24
|
+
data: { taskId: t.id, task: t },
|
|
25
|
+
timestamp: new Date().toISOString(),
|
|
26
|
+
});
|
|
27
|
+
setIsLoading(false);
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
.catch((err) => {
|
|
31
|
+
if (!cancelled) {
|
|
32
|
+
setError(err);
|
|
33
|
+
setIsLoading(false);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return () => { cancelled = true; };
|
|
37
|
+
}, [client, store, taskId, !!task]);
|
|
38
|
+
const updateTask = useCallback(async (req) => {
|
|
39
|
+
return client.updateTask(taskId, req);
|
|
40
|
+
}, [client, taskId]);
|
|
41
|
+
const deleteTask = useCallback(async () => {
|
|
42
|
+
await client.deleteTask(taskId);
|
|
43
|
+
}, [client, taskId]);
|
|
44
|
+
const killTask = useCallback(async () => {
|
|
45
|
+
await client.killTask(taskId);
|
|
46
|
+
}, [client, taskId]);
|
|
47
|
+
const reassessTask = useCallback(async () => {
|
|
48
|
+
await client.reassessTask(taskId);
|
|
49
|
+
}, [client, taskId]);
|
|
50
|
+
const retryTask = useCallback(async () => {
|
|
51
|
+
await client.retryTask(taskId);
|
|
52
|
+
}, [client, taskId]);
|
|
53
|
+
const queueTask = useCallback(async () => {
|
|
54
|
+
await client.queueTask(taskId);
|
|
55
|
+
}, [client, taskId]);
|
|
56
|
+
return { task, isLoading, error, updateTask, deleteTask, killTask, reassessTask, retryTask, queueTask };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=use-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-task.js","sourceRoot":"","sources":["../../src/hooks/use-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type TaskFilter } from "@polpo-ai/client";
|
|
2
|
+
import type { Task, CreateTaskRequest } from "@polpo-ai/client";
|
|
3
|
+
export interface UseTasksReturn {
|
|
4
|
+
tasks: Task[];
|
|
5
|
+
isLoading: boolean;
|
|
6
|
+
error: Error | null;
|
|
7
|
+
createTask: (req: CreateTaskRequest) => Promise<Task>;
|
|
8
|
+
deleteTask: (taskId: string) => Promise<void>;
|
|
9
|
+
retryTask: (taskId: string) => Promise<void>;
|
|
10
|
+
refetch: () => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function useTasks(filter?: TaskFilter): UseTasksReturn;
|
|
13
|
+
//# sourceMappingURL=use-tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tasks.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAiE5D"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { usePolpoContext } from "../provider/polpo-context.js";
|
|
3
|
+
import { selectTasks } from "@polpo-ai/client";
|
|
4
|
+
import { useStableValue } from "./use-stable-value.js";
|
|
5
|
+
export function useTasks(filter) {
|
|
6
|
+
const { client, store } = usePolpoContext();
|
|
7
|
+
const stableFilter = useStableValue(filter);
|
|
8
|
+
const tasks = useSyncExternalStore(store.subscribe, () => selectTasks(store.getSnapshot(), stableFilter), () => selectTasks(store.getServerSnapshot(), stableFilter));
|
|
9
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
10
|
+
const [error, setError] = useState(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
let cancelled = false;
|
|
13
|
+
setIsLoading(true);
|
|
14
|
+
client
|
|
15
|
+
.getTasks(stableFilter ? {
|
|
16
|
+
status: Array.isArray(stableFilter.status) ? stableFilter.status[0] : stableFilter.status,
|
|
17
|
+
group: stableFilter.group,
|
|
18
|
+
assignTo: stableFilter.assignTo,
|
|
19
|
+
} : undefined)
|
|
20
|
+
.then((t) => {
|
|
21
|
+
if (!cancelled) {
|
|
22
|
+
store.setTasks(t);
|
|
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, stableFilter]);
|
|
34
|
+
const createTask = useCallback(async (req) => {
|
|
35
|
+
const task = await client.createTask(req);
|
|
36
|
+
return task;
|
|
37
|
+
}, [client]);
|
|
38
|
+
const deleteTask = useCallback(async (taskId) => {
|
|
39
|
+
await client.deleteTask(taskId);
|
|
40
|
+
}, [client]);
|
|
41
|
+
const retryTask = useCallback(async (taskId) => {
|
|
42
|
+
await client.retryTask(taskId);
|
|
43
|
+
}, [client]);
|
|
44
|
+
const refetch = useCallback(async () => {
|
|
45
|
+
const t = await client.getTasks();
|
|
46
|
+
store.setTasks(t);
|
|
47
|
+
}, [client, store]);
|
|
48
|
+
return { tasks, isLoading, error, createTask, deleteTask, retryTask, refetch };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=use-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tasks.js","sourceRoot":"","sources":["../../src/hooks/use-tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TemplateInfo, TemplateDefinition, TemplateRunResult } from "@polpo-ai/client";
|
|
2
|
+
export interface UseTemplatesReturn {
|
|
3
|
+
/** List of discovered templates (lightweight metadata). */
|
|
4
|
+
templates: TemplateInfo[];
|
|
5
|
+
/** Loading state for the template list. */
|
|
6
|
+
loading: boolean;
|
|
7
|
+
/** Refresh the template list from the server. */
|
|
8
|
+
refetch: () => void;
|
|
9
|
+
/** Get the full definition (including mission template) for a template. */
|
|
10
|
+
getTemplate: (name: string) => Promise<TemplateDefinition>;
|
|
11
|
+
/** Run a template with parameters. */
|
|
12
|
+
runTemplate: (name: string, params?: Record<string, string | number | boolean>) => Promise<TemplateRunResult>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook for listing, inspecting, and running templates.
|
|
16
|
+
*
|
|
17
|
+
* Templates are parameterized mission templates discovered from disk.
|
|
18
|
+
* Running a template instantiates a Mission and executes it.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useTemplates(): UseTemplatesReturn;
|
|
21
|
+
//# sourceMappingURL=use-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-templates.d.ts","sourceRoot":"","sources":["../../src/hooks/use-templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3D,sCAAsC;IACtC,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAC/C,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CA0CjD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from "react";
|
|
2
|
+
import { usePolpo } from "./use-polpo.js";
|
|
3
|
+
/**
|
|
4
|
+
* Hook for listing, inspecting, and running templates.
|
|
5
|
+
*
|
|
6
|
+
* Templates are parameterized mission templates discovered from disk.
|
|
7
|
+
* Running a template instantiates a Mission and executes it.
|
|
8
|
+
*/
|
|
9
|
+
export function useTemplates() {
|
|
10
|
+
const { client } = usePolpo();
|
|
11
|
+
const [templates, setTemplates] = useState([]);
|
|
12
|
+
const [loading, setLoading] = useState(true);
|
|
13
|
+
const refetch = useCallback(() => {
|
|
14
|
+
if (!client)
|
|
15
|
+
return;
|
|
16
|
+
setLoading(true);
|
|
17
|
+
client
|
|
18
|
+
.getTemplates()
|
|
19
|
+
.then(setTemplates)
|
|
20
|
+
.catch(() => { })
|
|
21
|
+
.finally(() => setLoading(false));
|
|
22
|
+
}, [client]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
refetch();
|
|
25
|
+
}, [refetch]);
|
|
26
|
+
const getTemplate = useCallback(async (name) => {
|
|
27
|
+
if (!client)
|
|
28
|
+
throw new Error("Client not initialized");
|
|
29
|
+
return client.getTemplate(name);
|
|
30
|
+
}, [client]);
|
|
31
|
+
const runTemplate = useCallback(async (name, params) => {
|
|
32
|
+
if (!client)
|
|
33
|
+
throw new Error("Client not initialized");
|
|
34
|
+
const result = await client.runTemplate(name, params);
|
|
35
|
+
// Refetch templates list in case discovery changed
|
|
36
|
+
refetch();
|
|
37
|
+
return result;
|
|
38
|
+
}, [client, refetch]);
|
|
39
|
+
return { templates, loading, refetch, getTemplate, runTemplate };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=use-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-templates.js","sourceRoot":"","sources":["../../src/hooks/use-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAuB1C;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM;aACH,YAAY,EAAE;aACd,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,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,IAAY,EAAE,EAAE;QACrB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EACH,IAAY,EACZ,MAAkD,EAClD,EAAE;QACF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,mDAAmD;QACnD,OAAO,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { VaultEntryMeta } from "@polpo-ai/client";
|
|
2
|
+
export interface UseVaultEntriesReturn {
|
|
3
|
+
entries: VaultEntryMeta[];
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
refetch: () => Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Fetch vault entry metadata for an agent (service names, types, credential key names).
|
|
10
|
+
* Never exposes secret values — only field names with "***" masking.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useVaultEntries(agentName: string): UseVaultEntriesReturn;
|
|
13
|
+
//# sourceMappingURL=use-vault-entries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-vault-entries.d.ts","sourceRoot":"","sources":["../../src/hooks/use-vault-entries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,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,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,CA0BxE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { usePolpoContext } from "../provider/polpo-context.js";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch vault entry metadata for an agent (service names, types, credential key names).
|
|
5
|
+
* Never exposes secret values — only field names with "***" masking.
|
|
6
|
+
*/
|
|
7
|
+
export function useVaultEntries(agentName) {
|
|
8
|
+
const { client } = usePolpoContext();
|
|
9
|
+
const [entries, setEntries] = useState([]);
|
|
10
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
11
|
+
const [error, setError] = useState(null);
|
|
12
|
+
const fetch_ = useCallback(async () => {
|
|
13
|
+
if (!agentName) {
|
|
14
|
+
setEntries([]);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const data = await client.listVaultEntries(agentName);
|
|
19
|
+
setEntries(data);
|
|
20
|
+
setError(null);
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
setError(err);
|
|
24
|
+
}
|
|
25
|
+
}, [client, agentName]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
setIsLoading(true);
|
|
28
|
+
fetch_().finally(() => setIsLoading(false));
|
|
29
|
+
}, [fetch_]);
|
|
30
|
+
return { entries, isLoading, error, refetch: fetch_ };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=use-vault-entries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-vault-entries.js","sourceRoot":"","sources":["../../src/hooks/use-vault-entries.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,eAAe,CAAC,SAAiB;IAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IAC7D,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,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACtD,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,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,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,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,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { PolpoProvider } from "./provider/polpo-provider.js";
|
|
2
|
+
export type { PolpoProviderProps } from "./provider/polpo-provider.js";
|
|
3
|
+
export { usePolpo } from "./hooks/use-polpo.js";
|
|
4
|
+
export { useTasks } from "./hooks/use-tasks.js";
|
|
5
|
+
export { useTask } from "./hooks/use-task.js";
|
|
6
|
+
export { useMissions } from "./hooks/use-missions.js";
|
|
7
|
+
export { useMission } from "./hooks/use-mission.js";
|
|
8
|
+
export { useAgents } from "./hooks/use-agents.js";
|
|
9
|
+
export { useAgent } from "./hooks/use-agent.js";
|
|
10
|
+
export { useProcesses } from "./hooks/use-processes.js";
|
|
11
|
+
export { useEvents } from "./hooks/use-events.js";
|
|
12
|
+
export { useStats } from "./hooks/use-stats.js";
|
|
13
|
+
export { useMemory, useAgentMemory } from "./hooks/use-memory.js";
|
|
14
|
+
export { useLogs } from "./hooks/use-logs.js";
|
|
15
|
+
export { useSessions } from "./hooks/use-sessions.js";
|
|
16
|
+
export { useTaskActivity } from "./hooks/use-task-activity.js";
|
|
17
|
+
export { useSkills } from "./hooks/use-skills.js";
|
|
18
|
+
export { useOrchestratorSkills } from "./hooks/use-orchestrator-skills.js";
|
|
19
|
+
export { useNotifications } from "./hooks/use-notifications.js";
|
|
20
|
+
export { useApprovals } from "./hooks/use-approvals.js";
|
|
21
|
+
export { useActiveDelays } from "./hooks/use-active-delays.js";
|
|
22
|
+
export { usePlaybooks, useTemplates } from "./hooks/use-playbooks.js";
|
|
23
|
+
export { useSchedules } from "./hooks/use-schedules.js";
|
|
24
|
+
export { useVaultEntries } from "./hooks/use-vault-entries.js";
|
|
25
|
+
export { useAuthStatus } from "./hooks/use-auth-status.js";
|
|
26
|
+
export { useAssessmentProgress } from "./hooks/use-assessment-progress.js";
|
|
27
|
+
export { PolpoClient, ChatCompletionStream, PolpoApiError, EventSourceManager, PolpoStore, reduceEvent, selectTasks, selectTask, selectMissions, selectMission, selectMissionReport, selectProcesses, selectEvents, selectAssessmentProgress, selectAssessmentChecks, } from "@polpo-ai/client";
|
|
28
|
+
export type { PolpoClientConfig, ConnectionStatus, EventSourceConfig, Task, TaskStatus, TaskResult, TaskExpectation, TaskPhase, TaskOutcome, ExpectedOutcome, OutcomeType, Mission, MissionStatus, MissionReport, MissionDelay, AgentConfig, AgentIdentity, AgentResponsibility, AgentProcess, AgentActivity, Team, AssessmentResult, AssessmentTrigger, DimensionScore, DimensionScoreEvidence, EvalDimension, CheckResult, ReviewerResult, ReviewerMessage, ReviewerExploration, MetricResult, PolpoState, PolpoConfig, PolpoSettings, ReasoningLevel, ModelConfig, ModelAllowlistEntry, CustomModelDef, ProviderConfig, SSEEvent, ActiveDelay, CreateTaskRequest, UpdateTaskRequest, CreateMissionRequest, UpdateMissionRequest, AddMissionTaskRequest, UpdateMissionTaskRequest, ReorderMissionTasksRequest, AddMissionCheckpointRequest, UpdateMissionCheckpointRequest, AddMissionDelayRequest, UpdateMissionDelayRequest, AddMissionQualityGateRequest, UpdateMissionQualityGateRequest, AddMissionTeamMemberRequest, UpdateMissionTeamMemberRequest, UpdateMissionNotificationsRequest, ExecuteMissionResult, ResumeMissionResult, AddAgentRequest, UpdateAgentRequest, UpdateSettingsRequest, AddTeamRequest, TaskFilters, LogSession, LogEntry, RunActivityEntry, ChatSession, ChatMessage, ChatCompletionMessage, TextContentPart, ImageUrlContentPart, ContentPart, ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChoice, ChatCompletionChunk, ChatCompletionChunkDelta, ToolCallState, ToolCallEvent, AskUserOption, AskUserQuestion, AskUserPayload, AskUserAnswer, MissionPreviewPayload, VaultEntryMeta, VaultPreviewPayload, AuthProfileStatus, AuthProfileType, AuthProfileMeta, ProviderAuthInfo, AuthStatusResponse, SkillInfo, LoadedSkill, SkillWithAssignment, SkillIndexEntry, SkillIndex, NotificationChannelType, NotificationChannelConfig, ChannelGatewayConfig, DmPolicy, NotificationRule, NotificationRecord, NotificationStats, NotificationSeverity, NotificationStatus, ScopedNotificationRules, SendNotificationRequest, SendNotificationResult, ApprovalRequest, ApprovalStatus, ScheduleEntry, QualityMetrics, PlaybookParameter, PlaybookInfo, PlaybookDefinition, PlaybookRunResult, TemplateParameter, TemplateInfo, TemplateDefinition, TemplateRunResult, StoreState, PolpoStats, AssessmentProgressEntry, AssessmentCheckStatus, TaskFilter, } from "@polpo-ai/client";
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Provider
|
|
2
|
+
export { PolpoProvider } from "./provider/polpo-provider.js";
|
|
3
|
+
// Hooks
|
|
4
|
+
export { usePolpo } from "./hooks/use-polpo.js";
|
|
5
|
+
export { useTasks } from "./hooks/use-tasks.js";
|
|
6
|
+
export { useTask } from "./hooks/use-task.js";
|
|
7
|
+
export { useMissions } from "./hooks/use-missions.js";
|
|
8
|
+
export { useMission } from "./hooks/use-mission.js";
|
|
9
|
+
export { useAgents } from "./hooks/use-agents.js";
|
|
10
|
+
export { useAgent } from "./hooks/use-agent.js";
|
|
11
|
+
export { useProcesses } from "./hooks/use-processes.js";
|
|
12
|
+
export { useEvents } from "./hooks/use-events.js";
|
|
13
|
+
export { useStats } from "./hooks/use-stats.js";
|
|
14
|
+
export { useMemory, useAgentMemory } from "./hooks/use-memory.js";
|
|
15
|
+
export { useLogs } from "./hooks/use-logs.js";
|
|
16
|
+
export { useSessions } from "./hooks/use-sessions.js";
|
|
17
|
+
export { useTaskActivity } from "./hooks/use-task-activity.js";
|
|
18
|
+
export { useSkills } from "./hooks/use-skills.js";
|
|
19
|
+
export { useOrchestratorSkills } from "./hooks/use-orchestrator-skills.js";
|
|
20
|
+
export { useNotifications } from "./hooks/use-notifications.js";
|
|
21
|
+
export { useApprovals } from "./hooks/use-approvals.js";
|
|
22
|
+
export { useActiveDelays } from "./hooks/use-active-delays.js";
|
|
23
|
+
export { usePlaybooks, useTemplates } from "./hooks/use-playbooks.js";
|
|
24
|
+
export { useSchedules } from "./hooks/use-schedules.js";
|
|
25
|
+
export { useVaultEntries } from "./hooks/use-vault-entries.js";
|
|
26
|
+
export { useAuthStatus } from "./hooks/use-auth-status.js";
|
|
27
|
+
export { useAssessmentProgress } from "./hooks/use-assessment-progress.js";
|
|
28
|
+
// Re-export client SDK for convenience (backward compat — consumers can also use @polpo-ai/client directly)
|
|
29
|
+
export { PolpoClient, ChatCompletionStream, PolpoApiError, EventSourceManager, PolpoStore, reduceEvent, selectTasks, selectTask, selectMissions, selectMission, selectMissionReport, selectProcesses, selectEvents, selectAssessmentProgress, selectAssessmentChecks, } from "@polpo-ai/client";
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,4GAA4G;AAC5G,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PolpoClient } from "@polpo-ai/client";
|
|
2
|
+
import type { PolpoStore } from "@polpo-ai/client";
|
|
3
|
+
export interface PolpoContextValue {
|
|
4
|
+
client: PolpoClient;
|
|
5
|
+
store: PolpoStore;
|
|
6
|
+
}
|
|
7
|
+
export declare const PolpoContext: import("react").Context<PolpoContextValue | null>;
|
|
8
|
+
export declare function usePolpoContext(): PolpoContextValue;
|
|
9
|
+
//# sourceMappingURL=polpo-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polpo-context.d.ts","sourceRoot":"","sources":["../../src/provider/polpo-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAE1E,wBAAgB,eAAe,IAAI,iBAAiB,CAMnD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
export const PolpoContext = createContext(null);
|
|
3
|
+
export function usePolpoContext() {
|
|
4
|
+
const ctx = useContext(PolpoContext);
|
|
5
|
+
if (!ctx) {
|
|
6
|
+
throw new Error("usePolpoContext must be used within <PolpoProvider>");
|
|
7
|
+
}
|
|
8
|
+
return ctx;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=polpo-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polpo-context.js","sourceRoot":"","sources":["../../src/provider/polpo-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASlD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAC;AAE1E,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface PolpoProviderProps {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
/** @deprecated No longer used. Kept for backwards compatibility. */
|
|
5
|
+
projectId?: string;
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
autoConnect?: boolean;
|
|
9
|
+
eventFilter?: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function PolpoProvider({ baseUrl, apiKey, children, autoConnect, eventFilter, }: PolpoProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=polpo-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polpo-provider.d.ts","sourceRoot":"","sources":["../../src/provider/polpo-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAOnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,QAAQ,EACR,WAAkB,EAClB,WAAW,GACZ,EAAE,kBAAkB,2CAkEpB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import { PolpoClient } from "@polpo-ai/client";
|
|
4
|
+
import { EventSourceManager } from "@polpo-ai/client";
|
|
5
|
+
import { PolpoStore } from "@polpo-ai/client";
|
|
6
|
+
import { PolpoContext } from "./polpo-context.js";
|
|
7
|
+
export function PolpoProvider({ baseUrl, apiKey, children, autoConnect = true, eventFilter, }) {
|
|
8
|
+
const configKey = `${baseUrl}|${apiKey ?? ""}`;
|
|
9
|
+
const storeRef = useRef(null);
|
|
10
|
+
const clientRef = useRef(null);
|
|
11
|
+
const lastConfigKey = useRef("");
|
|
12
|
+
if (lastConfigKey.current !== configKey) {
|
|
13
|
+
lastConfigKey.current = configKey;
|
|
14
|
+
clientRef.current = new PolpoClient({ baseUrl, apiKey });
|
|
15
|
+
storeRef.current = new PolpoStore();
|
|
16
|
+
}
|
|
17
|
+
const client = clientRef.current;
|
|
18
|
+
const store = storeRef.current;
|
|
19
|
+
// SSE connection lifecycle
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!autoConnect)
|
|
22
|
+
return;
|
|
23
|
+
let pendingEvents = [];
|
|
24
|
+
let batchScheduled = false;
|
|
25
|
+
const flushBatch = () => {
|
|
26
|
+
if (pendingEvents.length > 0) {
|
|
27
|
+
store.applyEventBatch(pendingEvents);
|
|
28
|
+
pendingEvents = [];
|
|
29
|
+
}
|
|
30
|
+
batchScheduled = false;
|
|
31
|
+
};
|
|
32
|
+
const es = new EventSourceManager({
|
|
33
|
+
url: client.getEventsUrl(eventFilter),
|
|
34
|
+
onEvent: (event) => {
|
|
35
|
+
pendingEvents.push(event);
|
|
36
|
+
if (!batchScheduled) {
|
|
37
|
+
batchScheduled = true;
|
|
38
|
+
queueMicrotask(flushBatch);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
onStatusChange: (status) => {
|
|
42
|
+
store.setConnectionStatus(status);
|
|
43
|
+
if (status === "connected") {
|
|
44
|
+
// Re-fetch all resources to fill any SSE gaps
|
|
45
|
+
Promise.all([
|
|
46
|
+
client.getTasks().then((t) => store.setTasks(t)),
|
|
47
|
+
client.getMissions().then((m) => store.setMissions(m)),
|
|
48
|
+
client.getAgents().then((a) => store.setAgents(a)),
|
|
49
|
+
client.getProcesses().then((p) => store.setProcesses(p)),
|
|
50
|
+
]).catch(() => {
|
|
51
|
+
/* individual errors handled by hooks */
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
es.connect();
|
|
57
|
+
return () => es.disconnect();
|
|
58
|
+
}, [configKey, autoConnect, eventFilter?.join(",")]);
|
|
59
|
+
const value = useMemo(() => ({ client, store }), [client, store]);
|
|
60
|
+
return (_jsx(PolpoContext.Provider, { value: value, children: children }));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=polpo-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polpo-provider.js","sourceRoot":"","sources":["../../src/provider/polpo-provider.tsx"],"names":[],"mappings":"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"}
|