@polpo-ai/react 0.2.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OpenPolpo Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -5,12 +5,19 @@ export interface UseAgentsReturn {
5
5
  isLoading: boolean;
6
6
  error: Error | null;
7
7
  addAgent: (req: AddAgentRequest, teamName?: string) => Promise<void>;
8
+ isAddingAgent: boolean;
8
9
  updateAgent: (name: string, req: UpdateAgentRequest) => Promise<AgentConfig>;
10
+ isUpdatingAgent: boolean;
9
11
  removeAgent: (name: string) => Promise<void>;
12
+ isRemovingAgent: boolean;
10
13
  addTeam: (req: AddTeamRequest) => Promise<void>;
14
+ isAddingTeam: boolean;
11
15
  removeTeam: (name: string) => Promise<void>;
16
+ isRemovingTeam: boolean;
12
17
  renameTeam: (oldName: string, newName: string) => Promise<Team>;
18
+ isRenamingTeam: boolean;
13
19
  refetch: () => Promise<void>;
20
+ invalidate: () => Promise<void>;
14
21
  }
15
22
  export declare function useAgents(): UseAgentsReturn;
16
23
  //# sourceMappingURL=use-agents.d.ts.map
@@ -1 +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,eAAe,CAAC;AAE5G,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"}
1
+ {"version":3,"file":"use-agents.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5G,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,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7E,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,SAAS,IAAI,eAAe,CA8G3C"}
@@ -1,5 +1,6 @@
1
1
  import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
2
2
  import { usePolpoContext } from "../provider/polpo-context.js";
3
+ import { useMutation } from "./use-mutation.js";
3
4
  export function useAgents() {
4
5
  const { client, store } = usePolpoContext();
5
6
  const agents = useSyncExternalStore(store.subscribe, () => store.getSnapshot().agents, () => store.getServerSnapshot().agents);
@@ -20,32 +21,51 @@ export function useAgents() {
20
21
  setIsLoading(true);
21
22
  fetchAll().finally(() => setIsLoading(false));
22
23
  }, [fetchAll]);
23
- const addAgent = useCallback(async (req, teamName) => {
24
+ const { mutate: addAgent, isPending: isAddingAgent } = useMutation(useCallback(async (req, teamName) => {
24
25
  await client.addAgent(req, teamName);
25
26
  await fetchAll();
26
- }, [client, fetchAll]);
27
- const updateAgent = useCallback(async (name, req) => {
27
+ }, [client, fetchAll]));
28
+ const { mutate: updateAgent, isPending: isUpdatingAgent } = useMutation(useCallback(async (name, req) => {
28
29
  const updated = await client.updateAgent(name, req);
29
30
  await fetchAll();
30
31
  return updated;
31
- }, [client, fetchAll]);
32
- const removeAgent = useCallback(async (name) => {
32
+ }, [client, fetchAll]));
33
+ const { mutate: removeAgent, isPending: isRemovingAgent } = useMutation(useCallback(async (name) => {
33
34
  await client.removeAgent(name);
34
35
  await fetchAll();
35
- }, [client, fetchAll]);
36
- const addTeam = useCallback(async (req) => {
36
+ }, [client, fetchAll]));
37
+ const { mutate: addTeam, isPending: isAddingTeam } = useMutation(useCallback(async (req) => {
37
38
  await client.addTeam(req);
38
39
  await fetchAll();
39
- }, [client, fetchAll]);
40
- const removeTeam = useCallback(async (name) => {
40
+ }, [client, fetchAll]));
41
+ const { mutate: removeTeam, isPending: isRemovingTeam } = useMutation(useCallback(async (name) => {
41
42
  await client.removeTeam(name);
42
43
  await fetchAll();
43
- }, [client, fetchAll]);
44
- const renameTeam = useCallback(async (oldName, newName) => {
44
+ }, [client, fetchAll]));
45
+ const { mutate: renameTeam, isPending: isRenamingTeam } = useMutation(useCallback(async (oldName, newName) => {
45
46
  const t = await client.renameTeam(oldName, newName);
46
47
  await fetchAll();
47
48
  return t;
48
- }, [client, fetchAll]);
49
- return { agents, teams, isLoading, error, addAgent, updateAgent, removeAgent, addTeam, removeTeam, renameTeam, refetch: fetchAll };
49
+ }, [client, fetchAll]));
50
+ return {
51
+ agents,
52
+ teams,
53
+ isLoading,
54
+ error,
55
+ addAgent,
56
+ isAddingAgent,
57
+ updateAgent,
58
+ isUpdatingAgent,
59
+ removeAgent,
60
+ isRemovingAgent,
61
+ addTeam,
62
+ isAddingTeam,
63
+ removeTeam,
64
+ isRemovingTeam,
65
+ renameTeam,
66
+ isRenamingTeam,
67
+ refetch: fetchAll,
68
+ invalidate: fetchAll,
69
+ };
50
70
  }
51
71
  //# sourceMappingURL=use-agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-agents.js","sourceRoot":"","sources":["../../src/hooks/use-agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-agents.js","sourceRoot":"","sources":["../../src/hooks/use-agents.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,12 @@ export interface UseApprovalsReturn {
6
6
  resolvedBy?: string;
7
7
  note?: string;
8
8
  }) => Promise<void>;
9
+ isApproving: boolean;
9
10
  reject: (requestId: string, feedback: string, resolvedBy?: string) => Promise<void>;
11
+ isRejecting: boolean;
10
12
  refetch: () => void;
13
+ isLoading: boolean;
14
+ /** @deprecated Use `isLoading` instead. */
11
15
  loading: boolean;
12
16
  }
13
17
  /**
@@ -1 +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,eAAe,CAAC;AAErE,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"}
1
+ {"version":3,"file":"use-approvals.d.ts","sourceRoot":"","sources":["../../src/hooks/use-approvals.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,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,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAID;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAuDxE"}
@@ -1,6 +1,7 @@
1
1
  import { useState, useEffect, useCallback } from "react";
2
2
  import { usePolpo } from "./use-polpo.js";
3
3
  import { useEvents } from "./use-events.js";
4
+ import { useMutation } from "./use-mutation.js";
4
5
  const APPROVAL_EVENTS = ["approval:requested", "approval:resolved", "approval:rejected", "approval:timeout"];
5
6
  /**
6
7
  * Hook for managing approval gates.
@@ -10,7 +11,7 @@ const APPROVAL_EVENTS = ["approval:requested", "approval:resolved", "approval:re
10
11
  export function useApprovals(status) {
11
12
  const { client } = usePolpo();
12
13
  const [approvals, setApprovals] = useState([]);
13
- const [loading, setLoading] = useState(true);
14
+ const [isLoading, setIsLoading] = useState(true);
14
15
  const [fetchCount, setFetchCount] = useState(0);
15
16
  // Watch for approval SSE events to trigger refetch
16
17
  const { events: approvalEvents } = useEvents(APPROVAL_EVENTS, 1);
@@ -20,12 +21,12 @@ export function useApprovals(status) {
20
21
  useEffect(() => {
21
22
  if (!client)
22
23
  return;
23
- setLoading(true);
24
+ setIsLoading(true);
24
25
  client
25
26
  .getApprovals(status)
26
27
  .then(setApprovals)
27
28
  .catch(() => { })
28
- .finally(() => setLoading(false));
29
+ .finally(() => setIsLoading(false));
29
30
  }, [client, status, fetchCount]);
30
31
  // Auto-refetch when new approval events arrive
31
32
  useEffect(() => {
@@ -34,18 +35,18 @@ export function useApprovals(status) {
34
35
  }
35
36
  }, [approvalEvents.length, refetch]);
36
37
  const pending = approvals.filter((a) => a.status === "pending");
37
- const approve = useCallback(async (requestId, opts) => {
38
+ const { mutate: approve, isPending: isApproving } = useMutation(useCallback(async (requestId, opts) => {
38
39
  if (!client)
39
40
  throw new Error("Client not initialized");
40
41
  await client.approveRequest(requestId, opts);
41
42
  refetch();
42
- }, [client, refetch]);
43
- const reject = useCallback(async (requestId, feedback, resolvedBy) => {
43
+ }, [client, refetch]));
44
+ const { mutate: reject, isPending: isRejecting } = useMutation(useCallback(async (requestId, feedback, resolvedBy) => {
44
45
  if (!client)
45
46
  throw new Error("Client not initialized");
46
47
  await client.rejectRequest(requestId, feedback, resolvedBy);
47
48
  refetch();
48
- }, [client, refetch]);
49
- return { approvals, pending, approve, reject, refetch, loading };
49
+ }, [client, refetch]));
50
+ return { approvals, pending, approve, isApproving, reject, isRejecting, refetch, isLoading, loading: isLoading };
50
51
  }
51
52
  //# sourceMappingURL=use-approvals.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"use-approvals.js","sourceRoot":"","sources":["../../src/hooks/use-approvals.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,23 @@ export interface UseMissionsReturn {
4
4
  isLoading: boolean;
5
5
  error: Error | null;
6
6
  createMission: (req: CreateMissionRequest) => Promise<Mission>;
7
+ isCreating: boolean;
7
8
  updateMission: (missionId: string, req: UpdateMissionRequest) => Promise<Mission>;
9
+ isUpdating: boolean;
8
10
  deleteMission: (missionId: string) => Promise<void>;
11
+ isDeleting: boolean;
9
12
  executeMission: (missionId: string) => Promise<ExecuteMissionResult>;
13
+ isExecuting: boolean;
10
14
  resumeMission: (missionId: string, opts?: {
11
15
  retryFailed?: boolean;
12
16
  }) => Promise<ResumeMissionResult>;
17
+ isResuming: boolean;
13
18
  abortMission: (missionId: string) => Promise<{
14
19
  aborted: number;
15
20
  }>;
21
+ isAborting: boolean;
16
22
  refetch: () => Promise<void>;
23
+ invalidate: () => Promise<void>;
17
24
  }
18
25
  export declare function useMissions(): UseMissionsReturn;
19
26
  //# sourceMappingURL=use-missions.d.ts.map
@@ -1 +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,eAAe,CAAC;AAEpI,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"}
1
+ {"version":3,"file":"use-missions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-missions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpI,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,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrE,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrG,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,WAAW,IAAI,iBAAiB,CAwG/C"}
@@ -1,6 +1,7 @@
1
1
  import { useSyncExternalStore, useCallback, useEffect, useRef, useState } from "react";
2
2
  import { usePolpoContext } from "../provider/polpo-context.js";
3
3
  import { selectMissions } from "@polpo-ai/sdk";
4
+ import { useMutation } from "./use-mutation.js";
4
5
  export function useMissions() {
5
6
  const { client, store } = usePolpoContext();
6
7
  const missions = useSyncExternalStore(store.subscribe, () => selectMissions(store.getSnapshot()), () => selectMissions(store.getServerSnapshot()));
@@ -30,23 +31,30 @@ export function useMissions() {
30
31
  fetchMissions().finally(() => { fetchingRef.current = false; });
31
32
  }
32
33
  }, [missionsStale, fetchMissions]);
33
- const createMission = useCallback((req) => client.createMission(req), [client]);
34
- const updateMission = useCallback((missionId, req) => client.updateMission(missionId, req), [client]);
35
- const deleteMission = useCallback(async (missionId) => { await client.deleteMission(missionId); }, [client]);
36
- const executeMission = useCallback((missionId) => client.executeMission(missionId), [client]);
37
- const resumeMission = useCallback((missionId, opts) => client.resumeMission(missionId, opts), [client]);
38
- const abortMission = useCallback((missionId) => client.abortMission(missionId), [client]);
34
+ const { mutate: createMission, isPending: isCreating } = useMutation(useCallback((req) => client.createMission(req), [client]));
35
+ const { mutate: updateMission, isPending: isUpdating } = useMutation(useCallback((missionId, req) => client.updateMission(missionId, req), [client]));
36
+ const { mutate: deleteMission, isPending: isDeleting } = useMutation(useCallback(async (missionId) => { await client.deleteMission(missionId); }, [client]));
37
+ const { mutate: executeMission, isPending: isExecuting } = useMutation(useCallback((missionId) => client.executeMission(missionId), [client]));
38
+ const { mutate: resumeMission, isPending: isResuming } = useMutation(useCallback((missionId, opts) => client.resumeMission(missionId, opts), [client]));
39
+ const { mutate: abortMission, isPending: isAborting } = useMutation(useCallback((missionId) => client.abortMission(missionId), [client]));
39
40
  return {
40
41
  missions,
41
42
  isLoading,
42
43
  error,
43
44
  createMission,
45
+ isCreating,
44
46
  updateMission,
47
+ isUpdating,
45
48
  deleteMission,
49
+ isDeleting,
46
50
  executeMission,
51
+ isExecuting,
47
52
  resumeMission,
53
+ isResuming,
48
54
  abortMission,
55
+ isAborting,
49
56
  refetch: fetchMissions,
57
+ invalidate: fetchMissions,
50
58
  };
51
59
  }
52
60
  //# sourceMappingURL=use-missions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-missions.js","sourceRoot":"","sources":["../../src/hooks/use-missions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-missions.js","sourceRoot":"","sources":["../../src/hooks/use-missions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface MutationState<T = unknown> {
2
+ isPending: boolean;
3
+ error: Error | null;
4
+ data: T | null;
5
+ }
6
+ export declare function useMutation<TArgs extends any[], TResult>(fn: (...args: TArgs) => Promise<TResult>, opts?: {
7
+ onSuccess?: (data: TResult) => void | Promise<void>;
8
+ }): {
9
+ mutate: (...args: TArgs) => Promise<TResult>;
10
+ isPending: boolean;
11
+ error: Error | null;
12
+ };
13
+ //# sourceMappingURL=use-mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mutation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-mutation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EACtD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,EACxC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAC7D;IACD,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAwBA"}
@@ -0,0 +1,27 @@
1
+ import { useState, useCallback, useRef } from "react";
2
+ export function useMutation(fn, opts) {
3
+ const [isPending, setIsPending] = useState(false);
4
+ const [error, setError] = useState(null);
5
+ const fnRef = useRef(fn);
6
+ fnRef.current = fn;
7
+ const optsRef = useRef(opts);
8
+ optsRef.current = opts;
9
+ const mutate = useCallback(async (...args) => {
10
+ setIsPending(true);
11
+ setError(null);
12
+ try {
13
+ const result = await fnRef.current(...args);
14
+ await optsRef.current?.onSuccess?.(result);
15
+ return result;
16
+ }
17
+ catch (err) {
18
+ setError(err);
19
+ throw err;
20
+ }
21
+ finally {
22
+ setIsPending(false);
23
+ }
24
+ }, []);
25
+ return { mutate, isPending, error };
26
+ }
27
+ //# sourceMappingURL=use-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mutation.js","sourceRoot":"","sources":["../../src/hooks/use-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAQtD,MAAM,UAAU,WAAW,CACzB,EAAwC,EACxC,IAA8D;IAM9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,IAAW,EAAoB,EAAE;QACpE,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5C,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC"}
@@ -1,3 +1,6 @@
1
1
  import type { PolpoStats } from "@polpo-ai/sdk";
2
- export declare function useStats(): PolpoStats | null;
2
+ export interface UseStatsReturn {
3
+ stats: PolpoStats | null;
4
+ }
5
+ export declare function useStats(): UseStatsReturn;
3
6
  //# sourceMappingURL=use-stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-stats.d.ts","sourceRoot":"","sources":["../../src/hooks/use-stats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,wBAAgB,QAAQ,IAAI,UAAU,GAAG,IAAI,CAQ5C"}
1
+ {"version":3,"file":"use-stats.d.ts","sourceRoot":"","sources":["../../src/hooks/use-stats.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAUzC"}
@@ -2,6 +2,7 @@ import { useSyncExternalStore } from "react";
2
2
  import { usePolpoContext } from "../provider/polpo-context.js";
3
3
  export function useStats() {
4
4
  const { store } = usePolpoContext();
5
- return useSyncExternalStore(store.subscribe, () => store.getSnapshot().stats, () => null);
5
+ const stats = useSyncExternalStore(store.subscribe, () => store.getSnapshot().stats, () => null);
6
+ return { stats };
6
7
  }
7
8
  //# sourceMappingURL=use-stats.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-stats.js","sourceRoot":"","sources":["../../src/hooks/use-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IAEpC,OAAO,oBAAoB,CACzB,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAC/B,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"use-stats.js","sourceRoot":"","sources":["../../src/hooks/use-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,oBAAoB,CAChC,KAAK,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAC/B,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC"}
@@ -5,9 +5,13 @@ export interface UseTasksReturn {
5
5
  isLoading: boolean;
6
6
  error: Error | null;
7
7
  createTask: (req: CreateTaskRequest) => Promise<Task>;
8
+ isCreating: boolean;
8
9
  deleteTask: (taskId: string) => Promise<void>;
10
+ isDeleting: boolean;
9
11
  retryTask: (taskId: string) => Promise<void>;
12
+ isRetrying: boolean;
10
13
  refetch: () => Promise<void>;
14
+ invalidate: () => Promise<void>;
11
15
  }
12
16
  export declare function useTasks(filter?: TaskFilter): UseTasksReturn;
13
17
  //# sourceMappingURL=use-tasks.d.ts.map
@@ -1 +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,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE7D,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"}
1
+ {"version":3,"file":"use-tasks.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tasks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAG7D,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE7D,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,OAAO,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAmF5D"}
@@ -2,6 +2,7 @@ import { useSyncExternalStore, useCallback, useEffect, useState } from "react";
2
2
  import { usePolpoContext } from "../provider/polpo-context.js";
3
3
  import { selectTasks } from "@polpo-ai/sdk";
4
4
  import { useStableValue } from "./use-stable-value.js";
5
+ import { useMutation } from "./use-mutation.js";
5
6
  export function useTasks(filter) {
6
7
  const { client, store } = usePolpoContext();
7
8
  const stableFilter = useStableValue(filter);
@@ -31,20 +32,32 @@ export function useTasks(filter) {
31
32
  });
32
33
  return () => { cancelled = true; };
33
34
  }, [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
35
  const refetch = useCallback(async () => {
45
36
  const t = await client.getTasks();
46
37
  store.setTasks(t);
47
38
  }, [client, store]);
48
- return { tasks, isLoading, error, createTask, deleteTask, retryTask, refetch };
39
+ const { mutate: createTask, isPending: isCreating } = useMutation(useCallback(async (req) => {
40
+ const task = await client.createTask(req);
41
+ return task;
42
+ }, [client]));
43
+ const { mutate: deleteTask, isPending: isDeleting } = useMutation(useCallback(async (taskId) => {
44
+ await client.deleteTask(taskId);
45
+ }, [client]));
46
+ const { mutate: retryTask, isPending: isRetrying } = useMutation(useCallback(async (taskId) => {
47
+ await client.retryTask(taskId);
48
+ }, [client]));
49
+ return {
50
+ tasks,
51
+ isLoading,
52
+ error,
53
+ createTask,
54
+ isCreating,
55
+ deleteTask,
56
+ isDeleting,
57
+ retryTask,
58
+ isRetrying,
59
+ refetch,
60
+ invalidate: refetch,
61
+ };
49
62
  }
50
63
  //# sourceMappingURL=use-tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tasks.js","sourceRoot":"","sources":["../../src/hooks/use-tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-tasks.js","sourceRoot":"","sources":["../../src/hooks/use-tasks.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,21 @@
1
1
  export { PolpoProvider } from "./provider/polpo-provider.js";
2
2
  export type { PolpoProviderProps } from "./provider/polpo-provider.js";
3
+ export { useMutation } from "./hooks/use-mutation.js";
4
+ export type { MutationState } from "./hooks/use-mutation.js";
3
5
  export { usePolpo } from "./hooks/use-polpo.js";
4
6
  export { useTasks } from "./hooks/use-tasks.js";
7
+ export type { UseTasksReturn } from "./hooks/use-tasks.js";
5
8
  export { useTask } from "./hooks/use-task.js";
6
9
  export { useMissions } from "./hooks/use-missions.js";
10
+ export type { UseMissionsReturn } from "./hooks/use-missions.js";
7
11
  export { useMission } from "./hooks/use-mission.js";
8
12
  export { useAgents } from "./hooks/use-agents.js";
13
+ export type { UseAgentsReturn } from "./hooks/use-agents.js";
9
14
  export { useAgent } from "./hooks/use-agent.js";
10
15
  export { useProcesses } from "./hooks/use-processes.js";
11
16
  export { useEvents } from "./hooks/use-events.js";
12
17
  export { useStats } from "./hooks/use-stats.js";
18
+ export type { UseStatsReturn } from "./hooks/use-stats.js";
13
19
  export { useMemory, useAgentMemory } from "./hooks/use-memory.js";
14
20
  export { useLogs } from "./hooks/use-logs.js";
15
21
  export { useSessions } from "./hooks/use-sessions.js";
@@ -18,10 +24,12 @@ export { useSkills } from "./hooks/use-skills.js";
18
24
  export { useOrchestratorSkills } from "./hooks/use-orchestrator-skills.js";
19
25
  export { useNotifications } from "./hooks/use-notifications.js";
20
26
  export { useApprovals } from "./hooks/use-approvals.js";
27
+ export type { UseApprovalsReturn } from "./hooks/use-approvals.js";
21
28
  export { useActiveDelays } from "./hooks/use-active-delays.js";
22
29
  export { usePlaybooks, useTemplates } from "./hooks/use-playbooks.js";
23
30
  export { useSchedules } from "./hooks/use-schedules.js";
24
31
  export { useVaultEntries } from "./hooks/use-vault-entries.js";
32
+ export type { UseVaultEntriesReturn } from "./hooks/use-vault-entries.js";
25
33
  export { useAuthStatus } from "./hooks/use-auth-status.js";
26
34
  export { useAssessmentProgress } from "./hooks/use-assessment-progress.js";
27
35
  export { PolpoClient, ChatCompletionStream, PolpoApiError, EventSourceManager, PolpoStore, reduceEvent, selectTasks, selectTask, selectMissions, selectMission, selectMissionReport, selectProcesses, selectEvents, selectAssessmentProgress, selectAssessmentChecks, } from "@polpo-ai/sdk";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Provider
2
2
  export { PolpoProvider } from "./provider/polpo-provider.js";
3
3
  // Hooks
4
+ export { useMutation } from "./hooks/use-mutation.js";
4
5
  export { usePolpo } from "./hooks/use-polpo.js";
5
6
  export { useTasks } from "./hooks/use-tasks.js";
6
7
  export { useTask } from "./hooks/use-task.js";
package/dist/index.js.map CHANGED
@@ -1 +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,yGAAyG;AACzG,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,eAAe,CAAC"}
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,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,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;AAEhD,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;AAExD,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;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,yGAAyG;AACzG,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,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/react",
3
- "version": "0.2.4",
3
+ "version": "0.4.0",
4
4
  "description": "React SDK for OpenPolpo — hooks with real-time SSE updates, built on @polpo-ai/sdk",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,23 +16,27 @@
16
16
  }
17
17
  },
18
18
  "sideEffects": false,
19
- "scripts": {
20
- "build": "tsc",
21
- "dev": "tsc --watch",
22
- "prepublishOnly": "tsc"
23
- },
24
19
  "dependencies": {
25
- "@polpo-ai/sdk": "workspace:*"
20
+ "@polpo-ai/sdk": "0.4.0"
26
21
  },
27
22
  "peerDependencies": {
28
23
  "react": "^18.0.0 || ^19.0.0"
29
24
  },
30
25
  "devDependencies": {
26
+ "@testing-library/jest-dom": "^6.9.1",
27
+ "@testing-library/react": "^16.3.2",
31
28
  "@types/react": "^19.0.0",
29
+ "@types/react-dom": "^19.2.3",
30
+ "jsdom": "^29.0.1",
32
31
  "react": "^19.0.0",
33
- "typescript": "^5.7.0"
32
+ "react-dom": "^19.2.4",
33
+ "typescript": "^5.7.0",
34
+ "vitest": "^3.2.4"
34
35
  },
35
- "files": ["dist", "README.md"],
36
+ "files": [
37
+ "dist",
38
+ "README.md"
39
+ ],
36
40
  "license": "MIT",
37
41
  "keywords": [
38
42
  "polpo",
@@ -58,5 +62,10 @@
58
62
  "homepage": "https://github.com/lumea-labs/polpo/tree/main/packages/react-sdk",
59
63
  "bugs": {
60
64
  "url": "https://github.com/lumea-labs/polpo/issues"
65
+ },
66
+ "scripts": {
67
+ "build": "tsc",
68
+ "dev": "tsc --watch",
69
+ "test": "vitest run"
61
70
  }
62
- }
71
+ }
@@ -1,21 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,41 +0,0 @@
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
@@ -1 +0,0 @@
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"}