@fragno-dev/pi-harness 0.0.0-stage → 0.0.3
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.md +16 -0
- package/README.md +181 -2
- package/dist/browser/agent-harness-event-protocol-CuKubox1.js +666 -0
- package/dist/browser/agent-harness-event-protocol-CuKubox1.js.map +1 -0
- package/dist/browser/agent-harness-event-protocol-d6mH_9n3.d.ts +261 -0
- package/dist/browser/agent-harness-event-protocol-d6mH_9n3.d.ts.map +1 -0
- package/dist/browser/client/clients.d.ts +2 -0
- package/dist/browser/client/clients.js +2 -0
- package/dist/browser/client/pi-workflow-emission-stream.d.ts +13 -0
- package/dist/browser/client/pi-workflow-emission-stream.d.ts.map +1 -0
- package/dist/browser/client/pi-workflow-emission-stream.js +29 -0
- package/dist/browser/client/pi-workflow-emission-stream.js.map +1 -0
- package/dist/browser/client/react.d.ts +147 -0
- package/dist/browser/client/react.d.ts.map +1 -0
- package/dist/browser/client/react.js +187 -0
- package/dist/browser/client/react.js.map +1 -0
- package/dist/browser/client/solid.d.ts +150 -0
- package/dist/browser/client/solid.d.ts.map +1 -0
- package/dist/browser/client/solid.js +130 -0
- package/dist/browser/client/solid.js.map +1 -0
- package/dist/browser/client/svelte.d.ts +150 -0
- package/dist/browser/client/svelte.d.ts.map +1 -0
- package/dist/browser/client/svelte.js +132 -0
- package/dist/browser/client/svelte.js.map +1 -0
- package/dist/browser/client/vanilla.d.ts +177 -0
- package/dist/browser/client/vanilla.d.ts.map +1 -0
- package/dist/browser/client/vanilla.js +159 -0
- package/dist/browser/client/vanilla.js.map +1 -0
- package/dist/browser/client/vue.d.ts +150 -0
- package/dist/browser/client/vue.d.ts.map +1 -0
- package/dist/browser/client/vue.js +128 -0
- package/dist/browser/client/vue.js.map +1 -0
- package/dist/browser/client/workflow-lofi-session-projection.d.ts +17 -0
- package/dist/browser/client/workflow-lofi-session-projection.d.ts.map +1 -0
- package/dist/browser/client/workflow-lofi-session-projection.js +107 -0
- package/dist/browser/client/workflow-lofi-session-projection.js.map +1 -0
- package/dist/browser/clients-DYXj19je.d.ts +247 -0
- package/dist/browser/clients-DYXj19je.d.ts.map +1 -0
- package/dist/browser/clients-pIAk6ClP.js +1853 -0
- package/dist/browser/clients-pIAk6ClP.js.map +1 -0
- package/dist/browser/pi/context-usage.d.ts +20 -0
- package/dist/browser/pi/context-usage.d.ts.map +1 -0
- package/dist/browser/pi/context-usage.js +84 -0
- package/dist/browser/pi/context-usage.js.map +1 -0
- package/dist/browser/pi/harness/agent-harness-event-protocol.d.ts +2 -0
- package/dist/browser/pi/harness/agent-harness-event-protocol.js +2 -0
- package/dist/browser/pi/route-schemas.d.ts +2 -0
- package/dist/browser/pi/route-schemas.js +130 -0
- package/dist/browser/pi/route-schemas.js.map +1 -0
- package/dist/browser/pi/workflow-session-projection.d.ts +2 -0
- package/dist/browser/pi/workflow-session-projection.js +2 -0
- package/dist/browser/route-schemas-DQB5ZR1E.d.ts +109 -0
- package/dist/browser/route-schemas-DQB5ZR1E.d.ts.map +1 -0
- package/dist/browser/types-8q4RWFXT.js +23 -0
- package/dist/browser/types-8q4RWFXT.js.map +1 -0
- package/dist/browser/types-Dk856kV1.d.ts +527 -0
- package/dist/browser/types-Dk856kV1.d.ts.map +1 -0
- package/dist/browser/workflow-session-projection-CJ4MUkpJ.js +443 -0
- package/dist/browser/workflow-session-projection-CJ4MUkpJ.js.map +1 -0
- package/dist/browser/workflow-session-projection-Dj_a79GF.d.ts +93 -0
- package/dist/browser/workflow-session-projection-Dj_a79GF.d.ts.map +1 -0
- package/dist/node/pi/compact-command-outcome-projection.js +41 -0
- package/dist/node/pi/compact-command-outcome-projection.js.map +1 -0
- package/dist/node/pi/context-usage.d.ts +20 -0
- package/dist/node/pi/context-usage.d.ts.map +1 -0
- package/dist/node/pi/context-usage.js +84 -0
- package/dist/node/pi/context-usage.js.map +1 -0
- package/dist/node/pi/definition.d.ts +535 -0
- package/dist/node/pi/definition.d.ts.map +1 -0
- package/dist/node/pi/definition.js +71 -0
- package/dist/node/pi/definition.js.map +1 -0
- package/dist/node/pi/factory.d.ts +142 -0
- package/dist/node/pi/factory.d.ts.map +1 -0
- package/dist/node/pi/factory.js +22 -0
- package/dist/node/pi/factory.js.map +1 -0
- package/dist/node/pi/harness/agent-harness-event-protocol.d.ts +261 -0
- package/dist/node/pi/harness/agent-harness-event-protocol.d.ts.map +1 -0
- package/dist/node/pi/harness/agent-harness-event-protocol.js +588 -0
- package/dist/node/pi/harness/agent-harness-event-protocol.js.map +1 -0
- package/dist/node/pi/harness/json-value.js +82 -0
- package/dist/node/pi/harness/json-value.js.map +1 -0
- package/dist/node/pi/harness/pi-operation-completed.d.ts +16 -0
- package/dist/node/pi/harness/pi-operation-completed.d.ts.map +1 -0
- package/dist/node/pi/harness/pi-operation-completed.js +71 -0
- package/dist/node/pi/harness/pi-operation-completed.js.map +1 -0
- package/dist/node/pi/harness/session-storage.d.ts +62 -0
- package/dist/node/pi/harness/session-storage.d.ts.map +1 -0
- package/dist/node/pi/harness/session-storage.js +174 -0
- package/dist/node/pi/harness/session-storage.js.map +1 -0
- package/dist/node/pi/pi-jsonl-export.d.ts +11 -0
- package/dist/node/pi/pi-jsonl-export.d.ts.map +1 -0
- package/dist/node/pi/pi-jsonl-export.js +31 -0
- package/dist/node/pi/pi-jsonl-export.js.map +1 -0
- package/dist/node/pi/route-schemas.d.ts +109 -0
- package/dist/node/pi/route-schemas.d.ts.map +1 -0
- package/dist/node/pi/route-schemas.js +130 -0
- package/dist/node/pi/route-schemas.js.map +1 -0
- package/dist/node/pi/session-command-protocol.d.ts +14 -0
- package/dist/node/pi/session-command-protocol.d.ts.map +1 -0
- package/dist/node/pi/session-command-protocol.js +25 -0
- package/dist/node/pi/session-command-protocol.js.map +1 -0
- package/dist/node/pi/session-entry-projection.js +79 -0
- package/dist/node/pi/session-entry-projection.js.map +1 -0
- package/dist/node/pi/skills.d.ts +70 -0
- package/dist/node/pi/skills.d.ts.map +1 -0
- package/dist/node/pi/skills.js +150 -0
- package/dist/node/pi/skills.js.map +1 -0
- package/dist/node/pi/tools.d.ts +12 -0
- package/dist/node/pi/tools.d.ts.map +1 -0
- package/dist/node/pi/tools.js +8 -0
- package/dist/node/pi/tools.js.map +1 -0
- package/dist/node/pi/types.d.ts +165 -0
- package/dist/node/pi/types.d.ts.map +1 -0
- package/dist/node/pi/types.js +49 -0
- package/dist/node/pi/types.js.map +1 -0
- package/dist/node/pi/wait-for-command-step.js +46 -0
- package/dist/node/pi/wait-for-command-step.js.map +1 -0
- package/dist/node/pi/workflow-session-live-projection.js +220 -0
- package/dist/node/pi/workflow-session-live-projection.js.map +1 -0
- package/dist/node/pi/workflow-session-projection.d.ts +84 -0
- package/dist/node/pi/workflow-session-projection.d.ts.map +1 -0
- package/dist/node/pi/workflow-session-projection.js +100 -0
- package/dist/node/pi/workflow-session-projection.js.map +1 -0
- package/dist/node/pi/workflows/interactive-chat-workflow.d.ts +37 -0
- package/dist/node/pi/workflows/interactive-chat-workflow.d.ts.map +1 -0
- package/dist/node/pi/workflows/interactive-chat-workflow.js +219 -0
- package/dist/node/pi/workflows/interactive-chat-workflow.js.map +1 -0
- package/dist/node/pi/workflows/workflow-agent-harness.d.ts +142 -0
- package/dist/node/pi/workflows/workflow-agent-harness.d.ts.map +1 -0
- package/dist/node/pi/workflows/workflow-agent-harness.js +450 -0
- package/dist/node/pi/workflows/workflow-agent-harness.js.map +1 -0
- package/dist/node/routes.d.ts +631 -0
- package/dist/node/routes.d.ts.map +1 -0
- package/dist/node/routes.js +355 -0
- package/dist/node/routes.js.map +1 -0
- package/dist/node/schema.d.ts +5 -0
- package/dist/node/schema.d.ts.map +1 -0
- package/dist/node/schema.js +7 -0
- package/dist/node/schema.js.map +1 -0
- package/package.json +175 -3
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { _ as QueryParamsHint, d as NonGetHTTPMethod, g as MaybeExtractPathParamsOrWiden, h as HasPathParams, m as ExtractPathParamsOrWiden, p as InferOr } from "../types-Dk856kV1.js";
|
|
2
|
+
import { a as FetcherValue, o as FragnoClientRequestError, t as PiFragmentClientConfig } from "../clients-DYXj19je.js";
|
|
3
|
+
import { d as PiHarnessFrontendAgentMessage } from "../agent-harness-event-protocol-d6mH_9n3.js";
|
|
4
|
+
import { ReadableAtom } from "nanostores";
|
|
5
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
|
+
//#region ../fragno/dist/client/react.d.ts
|
|
7
|
+
//#region src/client/react.d.ts
|
|
8
|
+
type FragnoReactHook<_TMethod extends "GET", TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = (args?: {
|
|
9
|
+
path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
|
|
10
|
+
query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;
|
|
11
|
+
}) => FetcherValue<StandardSchemaV1.InferOutput<TOutputSchema>, FragnoClientRequestError<NonNullable<TErrorCode>>> & {
|
|
12
|
+
refetch: () => void;
|
|
13
|
+
};
|
|
14
|
+
type FragnoReactMutator<_TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = () => {
|
|
15
|
+
mutate: ({ body, path, query }: {
|
|
16
|
+
body?: InferOr<TInputSchema, undefined>;
|
|
17
|
+
path?: HasPathParams<TPath> extends true ? ExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>> : undefined;
|
|
18
|
+
query?: QueryParamsHint<TQueryParameters, string | ReadableAtom<string>>;
|
|
19
|
+
}) => Promise<InferOr<TOutputSchema, undefined>>;
|
|
20
|
+
loading?: boolean | undefined;
|
|
21
|
+
error?: FragnoClientRequestError<NonNullable<TErrorCode>[number]> | undefined;
|
|
22
|
+
data?: InferOr<TOutputSchema, undefined> | undefined;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/client/react.d.ts
|
|
26
|
+
declare function createPiFragmentClient(config?: PiFragmentClientConfig): {
|
|
27
|
+
useSessions: FragnoReactHook<"GET", "/workflows/:workflowName/sessions", import("zod").ZodArray<import("zod").ZodObject<{
|
|
28
|
+
id: import("zod").ZodString;
|
|
29
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
30
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
31
|
+
workflowName: import("zod").ZodString;
|
|
32
|
+
createdAt: import("zod").ZodDate;
|
|
33
|
+
updatedAt: import("zod").ZodDate;
|
|
34
|
+
}, import("zod/v4/core").$strip>>, "SESSION_DATA_INTEGRITY_ERROR", "limit">;
|
|
35
|
+
useSessionDetail: FragnoReactHook<"GET", "/workflows/:workflowName/sessions/:sessionId", import("zod").ZodObject<{
|
|
36
|
+
id: import("zod").ZodString;
|
|
37
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
38
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
39
|
+
workflowName: import("zod").ZodString;
|
|
40
|
+
createdAt: import("zod").ZodDate;
|
|
41
|
+
updatedAt: import("zod").ZodDate;
|
|
42
|
+
workflow: import("zod").ZodObject<{
|
|
43
|
+
status: import("zod").ZodEnum<{
|
|
44
|
+
active: "active";
|
|
45
|
+
paused: "paused";
|
|
46
|
+
errored: "errored";
|
|
47
|
+
terminated: "terminated";
|
|
48
|
+
complete: "complete";
|
|
49
|
+
waiting: "waiting";
|
|
50
|
+
}>;
|
|
51
|
+
error: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
52
|
+
name: import("zod").ZodString;
|
|
53
|
+
message: import("zod").ZodString;
|
|
54
|
+
}, import("zod/v4/core").$strip>>;
|
|
55
|
+
output: import("zod").ZodOptional<import("zod").ZodAny>;
|
|
56
|
+
}, import("zod/v4/core").$strip>;
|
|
57
|
+
agent: import("zod").ZodObject<{
|
|
58
|
+
state: import("zod").ZodObject<{
|
|
59
|
+
messages: import("zod").ZodArray<import("zod").ZodType<PiHarnessFrontendAgentMessage, unknown, import("zod/v4/core").$ZodTypeInternals<PiHarnessFrontendAgentMessage, unknown>>>;
|
|
60
|
+
}, import("zod/v4/core").$strip>;
|
|
61
|
+
}, import("zod/v4/core").$strip>;
|
|
62
|
+
}, import("zod/v4/core").$strip>, "SESSION_DATA_INTEGRITY_ERROR" | "SESSION_NOT_FOUND" | "SESSION_DATA_UNAVAILABLE" | "WORKFLOW_INSTANCE_MISSING", string>;
|
|
63
|
+
useCreateSession: FragnoReactMutator<NonGetHTTPMethod, "/workflows/:workflowName/sessions", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | import("zod").ZodObject<{
|
|
64
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
65
|
+
metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
66
|
+
input: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
67
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
|
|
68
|
+
id: import("zod").ZodString;
|
|
69
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
70
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
71
|
+
workflowName: import("zod").ZodString;
|
|
72
|
+
createdAt: import("zod").ZodDate;
|
|
73
|
+
updatedAt: import("zod").ZodDate;
|
|
74
|
+
}, import("zod/v4/core").$strip> | import("zod").ZodArray<import("zod").ZodObject<{
|
|
75
|
+
id: import("zod").ZodString;
|
|
76
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
77
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
78
|
+
workflowName: import("zod").ZodString;
|
|
79
|
+
createdAt: import("zod").ZodDate;
|
|
80
|
+
updatedAt: import("zod").ZodDate;
|
|
81
|
+
}, import("zod/v4/core").$strip>> | undefined, "WORKFLOW_NOT_FOUND" | "WORKFLOW_PARAMS_INVALID" | "WORKFLOW_CREATE_FAILED" | "SESSION_DATA_INTEGRITY_ERROR", string>;
|
|
82
|
+
useCommandSession: FragnoReactMutator<NonGetHTTPMethod, "/workflows/:workflowName/sessions/:sessionId/command", import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
83
|
+
kind: import("zod").ZodLiteral<"prompt">;
|
|
84
|
+
input: import("zod").ZodObject<{
|
|
85
|
+
text: import("zod").ZodString;
|
|
86
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
87
|
+
type: import("zod").ZodLiteral<"image">;
|
|
88
|
+
data: import("zod").ZodBase64;
|
|
89
|
+
mimeType: import("zod").ZodString;
|
|
90
|
+
}, import("zod/v4/core").$strip>>>;
|
|
91
|
+
}, import("zod/v4/core").$strip>;
|
|
92
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
93
|
+
kind: import("zod").ZodLiteral<"skill">;
|
|
94
|
+
input: import("zod").ZodObject<{
|
|
95
|
+
name: import("zod").ZodString;
|
|
96
|
+
additionalInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
97
|
+
}, import("zod/v4/core").$strip>;
|
|
98
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
99
|
+
kind: import("zod").ZodLiteral<"promptFromTemplate">;
|
|
100
|
+
input: import("zod").ZodObject<{
|
|
101
|
+
name: import("zod").ZodString;
|
|
102
|
+
args: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
103
|
+
}, import("zod/v4/core").$strip>;
|
|
104
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
105
|
+
kind: import("zod").ZodLiteral<"compact">;
|
|
106
|
+
input: import("zod").ZodObject<{
|
|
107
|
+
customInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
108
|
+
}, import("zod/v4/core").$strip>;
|
|
109
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
110
|
+
kind: import("zod").ZodLiteral<"abort">;
|
|
111
|
+
reason: import("zod").ZodOptional<import("zod").ZodString>;
|
|
112
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
113
|
+
kind: import("zod").ZodLiteral<"steer">;
|
|
114
|
+
input: import("zod").ZodObject<{
|
|
115
|
+
text: import("zod").ZodString;
|
|
116
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
117
|
+
type: import("zod").ZodLiteral<"image">;
|
|
118
|
+
data: import("zod").ZodBase64;
|
|
119
|
+
mimeType: import("zod").ZodString;
|
|
120
|
+
}, import("zod/v4/core").$strip>>>;
|
|
121
|
+
}, import("zod/v4/core").$strip>;
|
|
122
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
123
|
+
kind: import("zod").ZodLiteral<"followUp">;
|
|
124
|
+
input: import("zod").ZodObject<{
|
|
125
|
+
text: import("zod").ZodString;
|
|
126
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
127
|
+
type: import("zod").ZodLiteral<"image">;
|
|
128
|
+
data: import("zod").ZodBase64;
|
|
129
|
+
mimeType: import("zod").ZodString;
|
|
130
|
+
}, import("zod/v4/core").$strip>>>;
|
|
131
|
+
}, import("zod/v4/core").$strip>;
|
|
132
|
+
}, import("zod/v4/core").$strip>], "kind"> | undefined, import("zod").ZodObject<{
|
|
133
|
+
accepted: import("zod").ZodLiteral<true>;
|
|
134
|
+
commandId: import("zod").ZodString;
|
|
135
|
+
status: import("zod").ZodEnum<{
|
|
136
|
+
active: "active";
|
|
137
|
+
paused: "paused";
|
|
138
|
+
errored: "errored";
|
|
139
|
+
terminated: "terminated";
|
|
140
|
+
complete: "complete";
|
|
141
|
+
waiting: "waiting";
|
|
142
|
+
}>;
|
|
143
|
+
}, import("zod/v4/core").$strip> | undefined, "SESSION_NOT_FOUND" | "WORKFLOW_INSTANCE_MISSING", string>;
|
|
144
|
+
};
|
|
145
|
+
//#endregion
|
|
146
|
+
export { createPiFragmentClient };
|
|
147
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.d.ts","names":[],"sources":["../../../../fragno/dist/client/react.d.ts","../../../src/client/react.ts"],"mappings":";;;;;;;KASK,gBAAgB,wBAAwB,sBAAsB,sBAAsB,kBAAkB,2BAA2B,oCAAoC;EACxK,OAAO,8BAA8B,gBAAgB;EACrD,QAAQ,gBAAgB,2BAA2B;MAC/C,aAAa,iBAAiB,YAAY,gBAAgB,yBAAyB,YAAY;EACnG;;KAEG,mBAAmB,iBAAiB,kBAAkB,sBAAsB,qBAAqB,8BAA8B,sBAAsB,8BAA8B,2BAA2B;EACjN,WAAW,MAAM,MAAM;IACrB,OAAO,QAAQ;IACf,OAAO,cAAc,sBAAsB,yBAAyB,gBAAgB;IACpF,QAAQ,gBAAgB,2BAA2B;QAC/C,QAAQ,QAAQ;EACtB;EACA,QAAQ,yBAAyB,YAAY;EAC7C,OAAO,QAAQ;;;;iBCnBD,uBAAuB,SAAQ;eAAA"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { a as isReadableAtom, i as isStore, n as isGetHook, r as isMutatorHook, t as createPiFragmentClients } from "../clients-pIAk6ClP.js";
|
|
2
|
+
import { listenKeys } from "nanostores";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
|
|
4
|
+
//#region ../fragno/dist/client/react.js
|
|
5
|
+
function createReactHook(hook) {
|
|
6
|
+
return ({ path, query } = {}) => {
|
|
7
|
+
const pathParamValues = path ? Object.values(path) : [];
|
|
8
|
+
const queryParamValues = query ? Object.values(query) : [];
|
|
9
|
+
const store = useMemoWithDependencies(() => hook.store({
|
|
10
|
+
path,
|
|
11
|
+
query
|
|
12
|
+
}), [
|
|
13
|
+
hook,
|
|
14
|
+
...pathParamValues,
|
|
15
|
+
...queryParamValues
|
|
16
|
+
]);
|
|
17
|
+
const value = useStore(store);
|
|
18
|
+
const refetch = useCallback(() => {
|
|
19
|
+
store.revalidate();
|
|
20
|
+
}, [store]);
|
|
21
|
+
return useMemo(() => ({
|
|
22
|
+
...value,
|
|
23
|
+
refetch
|
|
24
|
+
}), [refetch, value]);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function createReactMutator(hook) {
|
|
28
|
+
return () => {
|
|
29
|
+
return useStore(useMemo(() => hook.mutatorStore, [hook]));
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function useMemoWithDependencies(factory, dependencies) {
|
|
33
|
+
return useMemo(factory, dependencies);
|
|
34
|
+
}
|
|
35
|
+
const isPlainObject = (value) => {
|
|
36
|
+
if (!value || typeof value !== "object") return false;
|
|
37
|
+
const prototype = Object.getPrototypeOf(value);
|
|
38
|
+
return prototype === Object.prototype || prototype === null;
|
|
39
|
+
};
|
|
40
|
+
function areStoreFactoryValuesEqual(left, right) {
|
|
41
|
+
if (Object.is(left, right)) return true;
|
|
42
|
+
if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));
|
|
43
|
+
if (left instanceof Date && right instanceof Date) return left.getTime() === right.getTime();
|
|
44
|
+
if (isReadableAtom(left) || isReadableAtom(right)) return left === right;
|
|
45
|
+
if (typeof left === "function" || typeof right === "function") return left === right;
|
|
46
|
+
if (isPlainObject(left) && isPlainObject(right)) {
|
|
47
|
+
const leftKeys = Object.keys(left).toSorted();
|
|
48
|
+
const rightKeys = Object.keys(right).toSorted();
|
|
49
|
+
return leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && areStoreFactoryValuesEqual(left[key], right[key]));
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
function areStoreFactoryArgsEqual(left, right) {
|
|
54
|
+
return left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));
|
|
55
|
+
}
|
|
56
|
+
const createReactStoreObjectView = (value, getAtomValue) => {
|
|
57
|
+
const atomValues = /* @__PURE__ */ new Map();
|
|
58
|
+
const boundMethods = /* @__PURE__ */ new Map();
|
|
59
|
+
return new Proxy(value, { get(target, property, _receiver) {
|
|
60
|
+
const propertyValue = target[property];
|
|
61
|
+
if (isReadableAtom(propertyValue)) {
|
|
62
|
+
if (atomValues.has(propertyValue)) return atomValues.get(propertyValue);
|
|
63
|
+
const atomValue = getAtomValue(propertyValue);
|
|
64
|
+
atomValues.set(propertyValue, atomValue);
|
|
65
|
+
return atomValue;
|
|
66
|
+
}
|
|
67
|
+
if (typeof propertyValue === "function") {
|
|
68
|
+
if (boundMethods.has(property)) return boundMethods.get(property);
|
|
69
|
+
const boundMethod = propertyValue.bind(target);
|
|
70
|
+
boundMethods.set(property, boundMethod);
|
|
71
|
+
return boundMethod;
|
|
72
|
+
}
|
|
73
|
+
return propertyValue;
|
|
74
|
+
} });
|
|
75
|
+
};
|
|
76
|
+
function useReactStoreValue(value) {
|
|
77
|
+
const atomEntries = useMemo(() => {
|
|
78
|
+
if (isReadableAtom(value)) return [[void 0, value]];
|
|
79
|
+
return Object.keys(value).flatMap((key) => {
|
|
80
|
+
const fieldValue = value[key];
|
|
81
|
+
return isReadableAtom(fieldValue) ? [[key, fieldValue]] : [];
|
|
82
|
+
});
|
|
83
|
+
}, [value]);
|
|
84
|
+
const snapshotRef = useRef(null);
|
|
85
|
+
if (snapshotRef.current === null) snapshotRef.current = atomEntries.map(([, store]) => store.get());
|
|
86
|
+
const getSnapshot = useCallback(() => {
|
|
87
|
+
const nextSnapshot = atomEntries.map(([, store]) => store.get());
|
|
88
|
+
const previousSnapshot = snapshotRef.current;
|
|
89
|
+
if (previousSnapshot !== null && previousSnapshot.length === nextSnapshot.length && previousSnapshot.every((entry, index) => Object.is(entry, nextSnapshot[index]))) return previousSnapshot;
|
|
90
|
+
snapshotRef.current = nextSnapshot;
|
|
91
|
+
return nextSnapshot;
|
|
92
|
+
}, [atomEntries]);
|
|
93
|
+
const atomValues = useSyncExternalStore(useCallback((onStoreChange) => {
|
|
94
|
+
const unsubscribes = atomEntries.map(([, store]) => store.listen(onStoreChange));
|
|
95
|
+
return () => {
|
|
96
|
+
for (const unsubscribe of unsubscribes) unsubscribe();
|
|
97
|
+
};
|
|
98
|
+
}, [atomEntries]), getSnapshot, getSnapshot);
|
|
99
|
+
return useMemo(() => {
|
|
100
|
+
if (isReadableAtom(value)) return atomValues[0];
|
|
101
|
+
return createReactStoreObjectView(value, (store) => {
|
|
102
|
+
const atomIndex = atomEntries.findIndex(([, entryStore]) => entryStore === store);
|
|
103
|
+
return atomIndex === -1 ? store.get() : atomValues[atomIndex];
|
|
104
|
+
});
|
|
105
|
+
}, [
|
|
106
|
+
value,
|
|
107
|
+
atomEntries,
|
|
108
|
+
atomValues
|
|
109
|
+
]);
|
|
110
|
+
}
|
|
111
|
+
function createReactStore(hook) {
|
|
112
|
+
return (...args) => {
|
|
113
|
+
const pendingDisposalsRef = useRef(null);
|
|
114
|
+
if (pendingDisposalsRef.current === null) pendingDisposalsRef.current = /* @__PURE__ */ new Map();
|
|
115
|
+
const pendingDisposals = pendingDisposalsRef.current;
|
|
116
|
+
const stableArgsRef = useRef(args);
|
|
117
|
+
if (!areStoreFactoryArgsEqual(stableArgsRef.current, args)) stableArgsRef.current = args;
|
|
118
|
+
const stableArgs = stableArgsRef.current;
|
|
119
|
+
const value = useMemo(() => {
|
|
120
|
+
if ("factory" in hook) return hook.factory(...stableArgs);
|
|
121
|
+
return hook.obj;
|
|
122
|
+
}, [hook, stableArgs]);
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
const dispose = value[Symbol.dispose];
|
|
125
|
+
const disposer = typeof dispose === "function" ? dispose.bind(value) : void 0;
|
|
126
|
+
const pendingTimeout = pendingDisposals.get(value);
|
|
127
|
+
if (pendingTimeout !== void 0) {
|
|
128
|
+
clearTimeout(pendingTimeout);
|
|
129
|
+
pendingDisposals.delete(value);
|
|
130
|
+
}
|
|
131
|
+
return () => {
|
|
132
|
+
if (!disposer) return;
|
|
133
|
+
const timeoutId = setTimeout(() => {
|
|
134
|
+
pendingDisposals.delete(value);
|
|
135
|
+
disposer();
|
|
136
|
+
}, 0);
|
|
137
|
+
pendingDisposals.set(value, timeoutId);
|
|
138
|
+
};
|
|
139
|
+
}, [pendingDisposals, value]);
|
|
140
|
+
return useReactStoreValue(value);
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function createFragnoReactClient(clientObj) {
|
|
144
|
+
const result = {};
|
|
145
|
+
for (const key in clientObj) {
|
|
146
|
+
if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
|
|
147
|
+
const hook = clientObj[key];
|
|
148
|
+
if (isGetHook(hook)) result[key] = createReactHook(hook);
|
|
149
|
+
else if (isMutatorHook(hook)) result[key] = createReactMutator(hook);
|
|
150
|
+
else if (isStore(hook)) result[key] = createReactStore(hook);
|
|
151
|
+
else result[key] = hook;
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
function useStore(store, options = {}) {
|
|
156
|
+
const readStoreValue = useCallback(() => store.get(), [store]);
|
|
157
|
+
const snapshotRef = useRef(null);
|
|
158
|
+
if (snapshotRef.current === null) snapshotRef.current = { value: readStoreValue() };
|
|
159
|
+
const { keys } = options;
|
|
160
|
+
const subscribe = useCallback((onChange) => {
|
|
161
|
+
const emitChange = (value) => {
|
|
162
|
+
if (snapshotRef.current?.value === value) return;
|
|
163
|
+
snapshotRef.current = { value };
|
|
164
|
+
onChange();
|
|
165
|
+
};
|
|
166
|
+
emitChange(readStoreValue());
|
|
167
|
+
if (keys?.length) return listenKeys(store, keys, emitChange);
|
|
168
|
+
return store.listen(emitChange);
|
|
169
|
+
}, [
|
|
170
|
+
keys,
|
|
171
|
+
readStoreValue,
|
|
172
|
+
store
|
|
173
|
+
]);
|
|
174
|
+
const get = () => snapshotRef.current.value;
|
|
175
|
+
return useSyncExternalStore(subscribe, get, () => {
|
|
176
|
+
return get();
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/client/react.ts
|
|
181
|
+
function createPiFragmentClient(config = {}) {
|
|
182
|
+
return createFragnoReactClient(createPiFragmentClients(config));
|
|
183
|
+
}
|
|
184
|
+
//#endregion
|
|
185
|
+
export { createPiFragmentClient };
|
|
186
|
+
|
|
187
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","names":["isReadableAtom","hydrateFromWindow","isGetHook","isMutatorHook","isStore","listenKeys","useCallback","useEffect","useMemo","useRef","useSyncExternalStore","createReactHook","hook","path","query","pathParamValues","Object","values","queryParamValues","store","useMemoWithDependencies","value","useStore","refetch","revalidate","createReactMutator","mutatorStore","factory","dependencies","isPlainObject","prototype","getPrototypeOf","areStoreFactoryValuesEqual","left","right","is","Array","isArray","length","every","index","Date","getTime","leftKeys","keys","toSorted","rightKeys","key","areStoreFactoryArgsEqual","createReactStoreObjectView","getAtomValue","atomValues","Map","boundMethods","Proxy","get","target","property","_receiver","propertyValue","has","atomValue","set","boundMethod","bind","useReactStoreValue","atomEntries","flatMap","fieldValue","snapshotRef","current","map","getSnapshot","nextSnapshot","previousSnapshot","entry","onStoreChange","unsubscribes","listen","unsubscribe","atomIndex","findIndex","entryStore","createReactStore","args","pendingDisposalsRef","pendingDisposals","stableArgsRef","stableArgs","obj","dispose","Symbol","disposer","pendingTimeout","clearTimeout","delete","timeoutId","setTimeout","createFragnoReactClient","clientObj","result","hasOwnProperty","call","options","readStoreValue","subscribe","onChange","emitChange","FragnoHydrator","children","createFragnoReactClient","createPiFragmentClients","PiFragmentClientConfig","createPiFragmentClient","config"],"sources":["../../../../fragno/dist/client/react.js","../../../src/client/react.ts"],"sourcesContent":["import { isReadableAtom } from \"../util/nanostores.js\";\nimport { hydrateFromWindow } from \"../util/ssr.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { listenKeys } from \"nanostores\";\nimport { useCallback, useEffect, useMemo, useRef, useSyncExternalStore } from \"react\";\n//#region src/client/react.ts\nfunction createReactHook(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst pathParamValues = path ? Object.values(path) : [];\n\t\tconst queryParamValues = query ? Object.values(query) : [];\n\t\tconst store = useMemoWithDependencies(() => hook.store({\n\t\t\tpath,\n\t\t\tquery\n\t\t}), [\n\t\t\thook,\n\t\t\t...pathParamValues,\n\t\t\t...queryParamValues\n\t\t]);\n\t\tconst value = useStore(store);\n\t\tconst refetch = useCallback(() => {\n\t\t\tstore.revalidate();\n\t\t}, [store]);\n\t\treturn useMemo(() => ({\n\t\t\t...value,\n\t\t\trefetch\n\t\t}), [refetch, value]);\n\t};\n}\nfunction createReactMutator(hook) {\n\treturn () => {\n\t\treturn useStore(useMemo(() => hook.mutatorStore, [hook]));\n\t};\n}\nfunction useMemoWithDependencies(factory, dependencies) {\n\treturn useMemo(factory, dependencies);\n}\nconst isPlainObject = (value) => {\n\tif (!value || typeof value !== \"object\") return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\nfunction areStoreFactoryValuesEqual(left, right) {\n\tif (Object.is(left, right)) return true;\n\tif (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));\n\tif (left instanceof Date && right instanceof Date) return left.getTime() === right.getTime();\n\tif (isReadableAtom(left) || isReadableAtom(right)) return left === right;\n\tif (typeof left === \"function\" || typeof right === \"function\") return left === right;\n\tif (isPlainObject(left) && isPlainObject(right)) {\n\t\tconst leftKeys = Object.keys(left).toSorted();\n\t\tconst rightKeys = Object.keys(right).toSorted();\n\t\treturn leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && areStoreFactoryValuesEqual(left[key], right[key]));\n\t}\n\treturn false;\n}\nfunction areStoreFactoryArgsEqual(left, right) {\n\treturn left.length === right.length && left.every((value, index) => areStoreFactoryValuesEqual(value, right[index]));\n}\nconst createReactStoreObjectView = (value, getAtomValue) => {\n\tconst atomValues = /* @__PURE__ */ new Map();\n\tconst boundMethods = /* @__PURE__ */ new Map();\n\treturn new Proxy(value, { get(target, property, _receiver) {\n\t\tconst propertyValue = target[property];\n\t\tif (isReadableAtom(propertyValue)) {\n\t\t\tif (atomValues.has(propertyValue)) return atomValues.get(propertyValue);\n\t\t\tconst atomValue = getAtomValue(propertyValue);\n\t\t\tatomValues.set(propertyValue, atomValue);\n\t\t\treturn atomValue;\n\t\t}\n\t\tif (typeof propertyValue === \"function\") {\n\t\t\tif (boundMethods.has(property)) return boundMethods.get(property);\n\t\t\tconst boundMethod = propertyValue.bind(target);\n\t\t\tboundMethods.set(property, boundMethod);\n\t\t\treturn boundMethod;\n\t\t}\n\t\treturn propertyValue;\n\t} });\n};\nfunction useReactStoreValue(value) {\n\tconst atomEntries = useMemo(() => {\n\t\tif (isReadableAtom(value)) return [[void 0, value]];\n\t\treturn Object.keys(value).flatMap((key) => {\n\t\t\tconst fieldValue = value[key];\n\t\t\treturn isReadableAtom(fieldValue) ? [[key, fieldValue]] : [];\n\t\t});\n\t}, [value]);\n\tconst snapshotRef = useRef(null);\n\tif (snapshotRef.current === null) snapshotRef.current = atomEntries.map(([, store]) => store.get());\n\tconst getSnapshot = useCallback(() => {\n\t\tconst nextSnapshot = atomEntries.map(([, store]) => store.get());\n\t\tconst previousSnapshot = snapshotRef.current;\n\t\tif (previousSnapshot !== null && previousSnapshot.length === nextSnapshot.length && previousSnapshot.every((entry, index) => Object.is(entry, nextSnapshot[index]))) return previousSnapshot;\n\t\tsnapshotRef.current = nextSnapshot;\n\t\treturn nextSnapshot;\n\t}, [atomEntries]);\n\tconst atomValues = useSyncExternalStore(useCallback((onStoreChange) => {\n\t\tconst unsubscribes = atomEntries.map(([, store]) => store.listen(onStoreChange));\n\t\treturn () => {\n\t\t\tfor (const unsubscribe of unsubscribes) unsubscribe();\n\t\t};\n\t}, [atomEntries]), getSnapshot, getSnapshot);\n\treturn useMemo(() => {\n\t\tif (isReadableAtom(value)) return atomValues[0];\n\t\treturn createReactStoreObjectView(value, (store) => {\n\t\t\tconst atomIndex = atomEntries.findIndex(([, entryStore]) => entryStore === store);\n\t\t\treturn atomIndex === -1 ? store.get() : atomValues[atomIndex];\n\t\t});\n\t}, [\n\t\tvalue,\n\t\tatomEntries,\n\t\tatomValues\n\t]);\n}\nfunction createReactStore(hook) {\n\treturn ((...args) => {\n\t\tconst pendingDisposalsRef = useRef(null);\n\t\tif (pendingDisposalsRef.current === null) pendingDisposalsRef.current = /* @__PURE__ */ new Map();\n\t\tconst pendingDisposals = pendingDisposalsRef.current;\n\t\tconst stableArgsRef = useRef(args);\n\t\tif (!areStoreFactoryArgsEqual(stableArgsRef.current, args)) stableArgsRef.current = args;\n\t\tconst stableArgs = stableArgsRef.current;\n\t\tconst value = useMemo(() => {\n\t\t\tif (\"factory\" in hook) return hook.factory(...stableArgs);\n\t\t\treturn hook.obj;\n\t\t}, [hook, stableArgs]);\n\t\tuseEffect(() => {\n\t\t\tconst dispose = value[Symbol.dispose];\n\t\t\tconst disposer = typeof dispose === \"function\" ? dispose.bind(value) : void 0;\n\t\t\tconst pendingTimeout = pendingDisposals.get(value);\n\t\t\tif (pendingTimeout !== void 0) {\n\t\t\t\tclearTimeout(pendingTimeout);\n\t\t\t\tpendingDisposals.delete(value);\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (!disposer) return;\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tpendingDisposals.delete(value);\n\t\t\t\t\tdisposer();\n\t\t\t\t}, 0);\n\t\t\t\tpendingDisposals.set(value, timeoutId);\n\t\t\t};\n\t\t}, [pendingDisposals, value]);\n\t\treturn useReactStoreValue(value);\n\t});\n}\nfunction createFragnoReactClient(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createReactHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createReactMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createReactStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\nfunction useStore(store, options = {}) {\n\tconst readStoreValue = useCallback(() => store.get(), [store]);\n\tconst snapshotRef = useRef(null);\n\tif (snapshotRef.current === null) snapshotRef.current = { value: readStoreValue() };\n\tconst { keys } = options;\n\tconst subscribe = useCallback((onChange) => {\n\t\tconst emitChange = (value) => {\n\t\t\tif (snapshotRef.current?.value === value) return;\n\t\t\tsnapshotRef.current = { value };\n\t\t\tonChange();\n\t\t};\n\t\temitChange(readStoreValue());\n\t\tif (keys?.length) return listenKeys(store, keys, emitChange);\n\t\treturn store.listen(emitChange);\n\t}, [\n\t\tkeys,\n\t\treadStoreValue,\n\t\tstore\n\t]);\n\tconst get = () => snapshotRef.current.value;\n\treturn useSyncExternalStore(subscribe, get, () => {\n\t\treturn get();\n\t});\n}\nfunction FragnoHydrator({ children }) {\n\tuseMemo(() => {\n\t\thydrateFromWindow();\n\t}, []);\n\treturn children;\n}\n//#endregion\nexport { FragnoHydrator, createFragnoReactClient, useStore };\n\n//# sourceMappingURL=react.js.map","import { createFragnoReactClient } from \"@fragno-dev/core/react\";\n\nimport { createPiFragmentClients, type PiFragmentClientConfig } from \"./clients\";\n\nexport function createPiFragmentClient(config: PiFragmentClientConfig = {}) {\n return createFragnoReactClient(createPiFragmentClients(config));\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { _ as QueryParamsHint, d as NonGetHTTPMethod, g as MaybeExtractPathParamsOrWiden, p as InferOr } from "../types-Dk856kV1.js";
|
|
2
|
+
import { o as FragnoClientRequestError, t as PiFragmentClientConfig } from "../clients-DYXj19je.js";
|
|
3
|
+
import { d as PiHarnessFrontendAgentMessage } from "../agent-harness-event-protocol-d6mH_9n3.js";
|
|
4
|
+
import { ReadableAtom } from "nanostores";
|
|
5
|
+
import { Accessor } from "solid-js";
|
|
6
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
7
|
+
//#region ../fragno/dist/client/solid.d.ts
|
|
8
|
+
//#region src/client/solid.d.ts
|
|
9
|
+
type FragnoSolidHook<_TMethod extends "GET", TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = (args?: {
|
|
10
|
+
path?: MaybeExtractPathParamsOrWiden<TPath, string | Accessor<string> | ReadableAtom<string>>;
|
|
11
|
+
query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;
|
|
12
|
+
}) => {
|
|
13
|
+
data: Accessor<InferOr<TOutputSchema, undefined>>;
|
|
14
|
+
loading: Accessor<boolean>;
|
|
15
|
+
error: Accessor<FragnoClientRequestError<TErrorCode[number]> | undefined>;
|
|
16
|
+
};
|
|
17
|
+
type FragnoSolidMutator<_TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = () => {
|
|
18
|
+
mutate: (args: {
|
|
19
|
+
body?: InferOr<TInputSchema, undefined>;
|
|
20
|
+
path?: MaybeExtractPathParamsOrWiden<TPath, string | Accessor<string> | ReadableAtom<string>>;
|
|
21
|
+
query?: QueryParamsHint<TQueryParameters, string | Accessor<string> | ReadableAtom<string>>;
|
|
22
|
+
}) => Promise<InferOr<TOutputSchema, undefined>>;
|
|
23
|
+
loading: Accessor<boolean | undefined>;
|
|
24
|
+
error: Accessor<FragnoClientRequestError<TErrorCode[number]> | undefined>;
|
|
25
|
+
data: Accessor<InferOr<TOutputSchema, undefined>>;
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/client/solid.d.ts
|
|
29
|
+
declare function createPiFragmentClient(config?: PiFragmentClientConfig): {
|
|
30
|
+
useSessions: FragnoSolidHook<"GET", "/workflows/:workflowName/sessions", import("zod").ZodArray<import("zod").ZodObject<{
|
|
31
|
+
id: import("zod").ZodString;
|
|
32
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
33
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
34
|
+
workflowName: import("zod").ZodString;
|
|
35
|
+
createdAt: import("zod").ZodDate;
|
|
36
|
+
updatedAt: import("zod").ZodDate;
|
|
37
|
+
}, import("zod/v4/core").$strip>>, "SESSION_DATA_INTEGRITY_ERROR", "limit">;
|
|
38
|
+
useSessionDetail: FragnoSolidHook<"GET", "/workflows/:workflowName/sessions/:sessionId", import("zod").ZodObject<{
|
|
39
|
+
id: import("zod").ZodString;
|
|
40
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
41
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
42
|
+
workflowName: import("zod").ZodString;
|
|
43
|
+
createdAt: import("zod").ZodDate;
|
|
44
|
+
updatedAt: import("zod").ZodDate;
|
|
45
|
+
workflow: import("zod").ZodObject<{
|
|
46
|
+
status: import("zod").ZodEnum<{
|
|
47
|
+
active: "active";
|
|
48
|
+
paused: "paused";
|
|
49
|
+
errored: "errored";
|
|
50
|
+
terminated: "terminated";
|
|
51
|
+
complete: "complete";
|
|
52
|
+
waiting: "waiting";
|
|
53
|
+
}>;
|
|
54
|
+
error: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
55
|
+
name: import("zod").ZodString;
|
|
56
|
+
message: import("zod").ZodString;
|
|
57
|
+
}, import("zod/v4/core").$strip>>;
|
|
58
|
+
output: import("zod").ZodOptional<import("zod").ZodAny>;
|
|
59
|
+
}, import("zod/v4/core").$strip>;
|
|
60
|
+
agent: import("zod").ZodObject<{
|
|
61
|
+
state: import("zod").ZodObject<{
|
|
62
|
+
messages: import("zod").ZodArray<import("zod").ZodType<PiHarnessFrontendAgentMessage, unknown, import("zod/v4/core").$ZodTypeInternals<PiHarnessFrontendAgentMessage, unknown>>>;
|
|
63
|
+
}, import("zod/v4/core").$strip>;
|
|
64
|
+
}, import("zod/v4/core").$strip>;
|
|
65
|
+
}, import("zod/v4/core").$strip>, "SESSION_DATA_INTEGRITY_ERROR" | "SESSION_NOT_FOUND" | "SESSION_DATA_UNAVAILABLE" | "WORKFLOW_INSTANCE_MISSING", string>;
|
|
66
|
+
useCreateSession: FragnoSolidMutator<NonGetHTTPMethod, "/workflows/:workflowName/sessions", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | import("zod").ZodObject<{
|
|
67
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
68
|
+
metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
69
|
+
input: import("zod").ZodOptional<import("zod").ZodUnknown>;
|
|
70
|
+
}, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
|
|
71
|
+
id: import("zod").ZodString;
|
|
72
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
73
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
74
|
+
workflowName: import("zod").ZodString;
|
|
75
|
+
createdAt: import("zod").ZodDate;
|
|
76
|
+
updatedAt: import("zod").ZodDate;
|
|
77
|
+
}, import("zod/v4/core").$strip> | import("zod").ZodArray<import("zod").ZodObject<{
|
|
78
|
+
id: import("zod").ZodString;
|
|
79
|
+
name: import("zod").ZodNullable<import("zod").ZodString>;
|
|
80
|
+
metadata: import("zod").ZodNullable<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
81
|
+
workflowName: import("zod").ZodString;
|
|
82
|
+
createdAt: import("zod").ZodDate;
|
|
83
|
+
updatedAt: import("zod").ZodDate;
|
|
84
|
+
}, import("zod/v4/core").$strip>> | undefined, "WORKFLOW_NOT_FOUND" | "WORKFLOW_PARAMS_INVALID" | "WORKFLOW_CREATE_FAILED" | "SESSION_DATA_INTEGRITY_ERROR", string>;
|
|
85
|
+
useCommandSession: FragnoSolidMutator<NonGetHTTPMethod, "/workflows/:workflowName/sessions/:sessionId/command", import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
86
|
+
kind: import("zod").ZodLiteral<"prompt">;
|
|
87
|
+
input: import("zod").ZodObject<{
|
|
88
|
+
text: import("zod").ZodString;
|
|
89
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
90
|
+
type: import("zod").ZodLiteral<"image">;
|
|
91
|
+
data: import("zod").ZodBase64;
|
|
92
|
+
mimeType: import("zod").ZodString;
|
|
93
|
+
}, import("zod/v4/core").$strip>>>;
|
|
94
|
+
}, import("zod/v4/core").$strip>;
|
|
95
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
96
|
+
kind: import("zod").ZodLiteral<"skill">;
|
|
97
|
+
input: import("zod").ZodObject<{
|
|
98
|
+
name: import("zod").ZodString;
|
|
99
|
+
additionalInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
100
|
+
}, import("zod/v4/core").$strip>;
|
|
101
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
102
|
+
kind: import("zod").ZodLiteral<"promptFromTemplate">;
|
|
103
|
+
input: import("zod").ZodObject<{
|
|
104
|
+
name: import("zod").ZodString;
|
|
105
|
+
args: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
106
|
+
}, import("zod/v4/core").$strip>;
|
|
107
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
108
|
+
kind: import("zod").ZodLiteral<"compact">;
|
|
109
|
+
input: import("zod").ZodObject<{
|
|
110
|
+
customInstructions: import("zod").ZodOptional<import("zod").ZodString>;
|
|
111
|
+
}, import("zod/v4/core").$strip>;
|
|
112
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
113
|
+
kind: import("zod").ZodLiteral<"abort">;
|
|
114
|
+
reason: import("zod").ZodOptional<import("zod").ZodString>;
|
|
115
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
116
|
+
kind: import("zod").ZodLiteral<"steer">;
|
|
117
|
+
input: import("zod").ZodObject<{
|
|
118
|
+
text: import("zod").ZodString;
|
|
119
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
120
|
+
type: import("zod").ZodLiteral<"image">;
|
|
121
|
+
data: import("zod").ZodBase64;
|
|
122
|
+
mimeType: import("zod").ZodString;
|
|
123
|
+
}, import("zod/v4/core").$strip>>>;
|
|
124
|
+
}, import("zod/v4/core").$strip>;
|
|
125
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
126
|
+
kind: import("zod").ZodLiteral<"followUp">;
|
|
127
|
+
input: import("zod").ZodObject<{
|
|
128
|
+
text: import("zod").ZodString;
|
|
129
|
+
images: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
130
|
+
type: import("zod").ZodLiteral<"image">;
|
|
131
|
+
data: import("zod").ZodBase64;
|
|
132
|
+
mimeType: import("zod").ZodString;
|
|
133
|
+
}, import("zod/v4/core").$strip>>>;
|
|
134
|
+
}, import("zod/v4/core").$strip>;
|
|
135
|
+
}, import("zod/v4/core").$strip>], "kind"> | undefined, import("zod").ZodObject<{
|
|
136
|
+
accepted: import("zod").ZodLiteral<true>;
|
|
137
|
+
commandId: import("zod").ZodString;
|
|
138
|
+
status: import("zod").ZodEnum<{
|
|
139
|
+
active: "active";
|
|
140
|
+
paused: "paused";
|
|
141
|
+
errored: "errored";
|
|
142
|
+
terminated: "terminated";
|
|
143
|
+
complete: "complete";
|
|
144
|
+
waiting: "waiting";
|
|
145
|
+
}>;
|
|
146
|
+
}, import("zod/v4/core").$strip> | undefined, "SESSION_NOT_FOUND" | "WORKFLOW_INSTANCE_MISSING", string>;
|
|
147
|
+
};
|
|
148
|
+
//#endregion
|
|
149
|
+
export { createPiFragmentClient };
|
|
150
|
+
//# sourceMappingURL=solid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solid.d.ts","names":[],"sources":["../../../../fragno/dist/client/solid.d.ts","../../../src/client/solid.ts"],"mappings":";;;;;;;;KASK,gBAAgB,wBAAwB,sBAAsB,sBAAsB,kBAAkB,2BAA2B,oCAAoC;EACxK,OAAO,8BAA8B,gBAAgB,mBAAmB;EACxE,QAAQ,gBAAgB,2BAA2B,mBAAmB;;EAEtE,MAAM,SAAS,QAAQ;EACvB,SAAS;EACT,OAAO,SAAS,yBAAyB;;KAEtC,mBAAmB,iBAAiB,kBAAkB,sBAAsB,qBAAqB,8BAA8B,sBAAsB,8BAA8B,2BAA2B;EACjN,SAAS;IACP,OAAO,QAAQ;IACf,OAAO,8BAA8B,gBAAgB,mBAAmB;IACxE,QAAQ,gBAAgB,2BAA2B,mBAAmB;QAClE,QAAQ,QAAQ;EACtB,SAAS;EACT,OAAO,SAAS,yBAAyB;EACzC,MAAM,SAAS,QAAQ;;;;iBCrBT,uBAAuB,SAAQ;eAAA"}
|