@zihanw/pi-forge 0.5.0 → 0.5.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/CHANGELOG.md +53 -0
- package/README.md +6 -2
- package/README.zh-CN.md +5 -2
- package/dist/codecs/prompt-stack.d.ts.map +1 -1
- package/dist/codecs/prompt-stack.js +17 -0
- package/dist/codecs/prompt-stack.js.map +1 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +81 -0
- package/dist/compiler.js.map +1 -1
- package/dist/context-diff-history.d.ts +61 -0
- package/dist/context-diff-history.d.ts.map +1 -0
- package/dist/context-diff-history.js +84 -0
- package/dist/context-diff-history.js.map +1 -0
- package/dist/context-diff-snapshot.d.ts +19 -0
- package/dist/context-diff-snapshot.d.ts.map +1 -0
- package/dist/context-diff-snapshot.js +146 -0
- package/dist/context-diff-snapshot.js.map +1 -0
- package/dist/context-diff.d.ts +70 -0
- package/dist/context-diff.d.ts.map +1 -0
- package/dist/context-diff.js +259 -0
- package/dist/context-diff.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +2 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +19 -2
- package/dist/lifecycle.js.map +1 -1
- package/dist/payload-capture.d.ts +10 -0
- package/dist/payload-capture.d.ts.map +1 -1
- package/dist/payload-capture.js +39 -9
- package/dist/payload-capture.js.map +1 -1
- package/dist/payload-command.d.ts +2 -0
- package/dist/payload-command.d.ts.map +1 -1
- package/dist/payload-command.js +36 -6
- package/dist/payload-command.js.map +1 -1
- package/dist/payload-state.d.ts +3 -0
- package/dist/payload-state.d.ts.map +1 -1
- package/dist/payload-state.js +5 -0
- package/dist/payload-state.js.map +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +43 -9
- package/dist/preview.js.map +1 -1
- package/dist/regex.d.ts +12 -0
- package/dist/regex.d.ts.map +1 -1
- package/dist/regex.js +81 -5
- package/dist/regex.js.map +1 -1
- package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
- package/dist/runtime/tool-policy-runtime.js +13 -3
- package/dist/runtime/tool-policy-runtime.js.map +1 -1
- package/dist/runtime/web-editor-runtime.d.ts +2 -1
- package/dist/runtime/web-editor-runtime.d.ts.map +1 -1
- package/dist/runtime/web-editor-runtime.js +8 -3
- package/dist/runtime/web-editor-runtime.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ui-contribution/contrib-port.d.ts +170 -0
- package/dist/ui-contribution/contrib-port.d.ts.map +1 -0
- package/dist/ui-contribution/contrib-port.js +640 -0
- package/dist/ui-contribution/contrib-port.js.map +1 -0
- package/dist/ui-contribution/index.d.ts +3 -0
- package/dist/ui-contribution/index.d.ts.map +1 -0
- package/dist/ui-contribution/index.js +2 -0
- package/dist/ui-contribution/index.js.map +1 -0
- package/dist/web-editor/client-script.generated.d.ts.map +1 -1
- package/dist/web-editor/client-script.generated.js +1 -1
- package/dist/web-editor/client-script.generated.js.map +1 -1
- package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
- package/dist/web-editor/client-styles.generated.js +1 -1
- package/dist/web-editor/client-styles.generated.js.map +1 -1
- package/dist/web-editor/contrib-service.d.ts +41 -0
- package/dist/web-editor/contrib-service.d.ts.map +1 -0
- package/dist/web-editor/contrib-service.js +174 -0
- package/dist/web-editor/contrib-service.js.map +1 -0
- package/dist/web-editor/line-diff.d.ts +28 -0
- package/dist/web-editor/line-diff.d.ts.map +1 -0
- package/dist/web-editor/line-diff.js +216 -0
- package/dist/web-editor/line-diff.js.map +1 -0
- package/dist/web-editor/page.d.ts +1 -1
- package/dist/web-editor/page.d.ts.map +1 -1
- package/dist/web-editor/page.js +2 -2
- package/dist/web-editor/page.js.map +1 -1
- package/dist/web-editor/schema-form.d.ts +63 -0
- package/dist/web-editor/schema-form.d.ts.map +1 -0
- package/dist/web-editor/schema-form.js +213 -0
- package/dist/web-editor/schema-form.js.map +1 -0
- package/dist/web-editor/server.d.ts.map +1 -1
- package/dist/web-editor/server.js +125 -7
- package/dist/web-editor/server.js.map +1 -1
- package/dist/web-editor/styles.d.ts.map +1 -1
- package/dist/web-editor/styles.js +188 -21
- package/dist/web-editor/styles.js.map +1 -1
- package/dist/web-editor/types.d.ts +19 -0
- package/dist/web-editor/types.d.ts.map +1 -1
- package/dist/web-host.d.ts +7 -3
- package/dist/web-host.d.ts.map +1 -1
- package/dist/web-host.js +85 -12
- package/dist/web-host.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/concepts/agent-profiles.md +1 -1
- package/docs/concepts/prompt-stacks.md +4 -0
- package/docs/design/0.5.1-plan.md +237 -0
- package/docs/design/architecture-0.5.md +22 -1
- package/docs/design/context-diff-plan.md +8 -2
- package/docs/development/release.md +7 -1
- package/docs/development/roadmap.md +14 -0
- package/docs/getting-started.md +1 -1
- package/docs/guides/delegation.md +3 -3
- package/docs/guides/use-cases.md +4 -2
- package/docs/guides/web-editor.md +5 -1
- package/docs/reference/commands.md +1 -1
- package/docs/reference/configuration.md +6 -3
- package/docs/reference/features.md +5 -0
- package/docs/reference/public-api.md +14 -2
- package/docs/reference/stack-schema.md +59 -2
- package/docs/reference/ui-contribution-port.md +51 -0
- package/docs/zh-CN/concepts/agent-profiles.md +1 -1
- package/docs/zh-CN/concepts/prompt-stacks.md +10 -4
- package/docs/zh-CN/guides/delegation.md +2 -2
- package/docs/zh-CN/guides/web-editor.md +4 -0
- package/docs/zh-CN/reference/commands.md +1 -1
- package/examples/custom-system-status-extension/README.md +4 -3
- package/examples/custom-system-status-extension/index.ts +8 -6
- package/examples/hack-prompt-stack.json +118 -0
- package/examples/minimal-prompt-stack.json +36 -0
- package/package.json +6 -1
- package/examples/image-reader-prompt-stack.json +0 -114
- package/examples/reviewer-prompt-stack.json +0 -104
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { FormSchema, FormValues } from "../web-editor/schema-form.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Cross-extension UI contribution port v1 over the Pi event bus.
|
|
4
|
+
*
|
|
5
|
+
* This is the generic, versioned RPC contract used by optional packages to
|
|
6
|
+
* contribute schema-driven tabs to the pi-forge web editor. Messages are plain,
|
|
7
|
+
* recursively validated, JSON-compatible data only — no functions, components,
|
|
8
|
+
* live contexts, or internal registries cross the bus. The port itself is not a
|
|
9
|
+
* trust boundary.
|
|
10
|
+
*
|
|
11
|
+
* Ownership: the contributing package owns the schema, current values, and
|
|
12
|
+
* persistence/validation for its tab. The pi-forge web server only proxies
|
|
13
|
+
* descriptors to the browser and writes submitted values back over the bus.
|
|
14
|
+
*/
|
|
15
|
+
export declare const UI_CONTRIBUTION_PORT_VERSION = 1;
|
|
16
|
+
export declare const UI_CONTRIBUTION_PORT_NAMESPACE = "@zihanw/pi-forge/ui-contribution/v1";
|
|
17
|
+
export declare const UI_CONTRIBUTION_PORT_OPERATIONS: readonly ["listContributions", "writeValues"];
|
|
18
|
+
export type UiContributionPortOperation = (typeof UI_CONTRIBUTION_PORT_OPERATIONS)[number];
|
|
19
|
+
export declare const UI_CONTRIBUTION_CHANNEL: {
|
|
20
|
+
readonly discover: "@zihanw/pi-forge/ui-contribution/v1/discover";
|
|
21
|
+
readonly available: "@zihanw/pi-forge/ui-contribution/v1/available";
|
|
22
|
+
readonly request: "@zihanw/pi-forge/ui-contribution/v1/request";
|
|
23
|
+
readonly reply: "@zihanw/pi-forge/ui-contribution/v1/reply";
|
|
24
|
+
readonly unavailable: "@zihanw/pi-forge/ui-contribution/v1/unavailable";
|
|
25
|
+
};
|
|
26
|
+
export interface UiContributionTransport {
|
|
27
|
+
emit(channel: string, data: unknown): void;
|
|
28
|
+
on(channel: string, handler: (data: unknown) => void): () => void;
|
|
29
|
+
}
|
|
30
|
+
export type UiContributionWireMessage = {
|
|
31
|
+
type: "discover";
|
|
32
|
+
protocolVersion: number;
|
|
33
|
+
minVersion: number;
|
|
34
|
+
maxVersion: number;
|
|
35
|
+
clientId: string;
|
|
36
|
+
} | {
|
|
37
|
+
type: "available";
|
|
38
|
+
hostId: string;
|
|
39
|
+
protocolVersion: number;
|
|
40
|
+
minVersion: number;
|
|
41
|
+
maxVersion: number;
|
|
42
|
+
capabilities: string[];
|
|
43
|
+
generation: number;
|
|
44
|
+
} | {
|
|
45
|
+
type: "request";
|
|
46
|
+
requestId: string;
|
|
47
|
+
hostId: string;
|
|
48
|
+
generation: number;
|
|
49
|
+
operation: string;
|
|
50
|
+
payload: unknown;
|
|
51
|
+
} | {
|
|
52
|
+
type: "reply";
|
|
53
|
+
requestId: string;
|
|
54
|
+
hostId: string;
|
|
55
|
+
generation: number;
|
|
56
|
+
ok: boolean;
|
|
57
|
+
data?: unknown;
|
|
58
|
+
error?: string;
|
|
59
|
+
} | {
|
|
60
|
+
type: "unavailable";
|
|
61
|
+
hostId: string;
|
|
62
|
+
generation: number;
|
|
63
|
+
};
|
|
64
|
+
export type UiContributionPortResult = {
|
|
65
|
+
ok: true;
|
|
66
|
+
data: unknown;
|
|
67
|
+
} | {
|
|
68
|
+
ok: false;
|
|
69
|
+
error: string;
|
|
70
|
+
};
|
|
71
|
+
export interface UiContributionRequestContext {
|
|
72
|
+
/** Aborted when the provider generation stops; handlers must check before side effects after an await. */
|
|
73
|
+
signal: AbortSignal;
|
|
74
|
+
generation: number;
|
|
75
|
+
}
|
|
76
|
+
export interface UiContributionProviderOptions {
|
|
77
|
+
providerId?: string;
|
|
78
|
+
capabilities?: readonly string[];
|
|
79
|
+
minVersion?: number;
|
|
80
|
+
maxVersion?: number;
|
|
81
|
+
/** Operation handler; must never throw across the bus. */
|
|
82
|
+
handle(operation: string, payload: unknown, context: UiContributionRequestContext): UiContributionPortResult | Promise<UiContributionPortResult>;
|
|
83
|
+
}
|
|
84
|
+
export interface UiContributionConnection {
|
|
85
|
+
hostId: string;
|
|
86
|
+
protocolVersion: number;
|
|
87
|
+
capabilities: readonly string[];
|
|
88
|
+
generation: number;
|
|
89
|
+
}
|
|
90
|
+
export interface UiContributionTabDescriptor {
|
|
91
|
+
tabId: string;
|
|
92
|
+
title: string;
|
|
93
|
+
icon: string;
|
|
94
|
+
schema: FormSchema;
|
|
95
|
+
values: FormValues;
|
|
96
|
+
}
|
|
97
|
+
export interface UiListContributionsResponse {
|
|
98
|
+
tabs: UiContributionTabDescriptor[];
|
|
99
|
+
}
|
|
100
|
+
export interface UiWriteValuesRequest {
|
|
101
|
+
tabId: string;
|
|
102
|
+
patch: FormValues;
|
|
103
|
+
}
|
|
104
|
+
export type UiWriteValuesResponse = {
|
|
105
|
+
ok: true;
|
|
106
|
+
values?: FormValues;
|
|
107
|
+
} | {
|
|
108
|
+
ok: false;
|
|
109
|
+
errors: Record<string, string>;
|
|
110
|
+
};
|
|
111
|
+
export type ValidationResult<T = unknown> = {
|
|
112
|
+
ok: true;
|
|
113
|
+
data: T;
|
|
114
|
+
} | {
|
|
115
|
+
ok: false;
|
|
116
|
+
error: string;
|
|
117
|
+
};
|
|
118
|
+
export declare class UiContributionPortError extends Error {
|
|
119
|
+
readonly code: "timeout" | "duplicate" | "unavailable" | "protocol" | "invalid";
|
|
120
|
+
constructor(code: UiContributionPortError["code"], message: string);
|
|
121
|
+
}
|
|
122
|
+
export declare function validateListContributionsRequest(value: unknown): ValidationResult<Record<string, never>>;
|
|
123
|
+
export declare function validateListContributionsResponse(value: unknown): ValidationResult<UiListContributionsResponse>;
|
|
124
|
+
export declare function validateUiContributionTabDescriptor(value: unknown): ValidationResult<UiContributionTabDescriptor>;
|
|
125
|
+
export declare function validateWriteValuesRequest(value: unknown): ValidationResult<UiWriteValuesRequest>;
|
|
126
|
+
export declare function validateWriteValuesResponse(value: unknown): ValidationResult<UiWriteValuesResponse>;
|
|
127
|
+
export declare function validateFormSchema(value: unknown): ValidationResult<FormSchema>;
|
|
128
|
+
export declare class UiContributionProvider {
|
|
129
|
+
private readonly transport;
|
|
130
|
+
private readonly options;
|
|
131
|
+
readonly hostId: string;
|
|
132
|
+
private generationId;
|
|
133
|
+
private started;
|
|
134
|
+
private unsubscribers;
|
|
135
|
+
private readonly pendingRequests;
|
|
136
|
+
constructor(transport: UiContributionTransport, options: UiContributionProviderOptions);
|
|
137
|
+
get generation(): number;
|
|
138
|
+
get isLive(): boolean;
|
|
139
|
+
private availableMessage;
|
|
140
|
+
start(): void;
|
|
141
|
+
stop(): void;
|
|
142
|
+
private onDiscover;
|
|
143
|
+
private onRequest;
|
|
144
|
+
}
|
|
145
|
+
export interface UiContributionClientOptions {
|
|
146
|
+
clientId?: string;
|
|
147
|
+
defaultTimeoutMs?: number;
|
|
148
|
+
discoverSettleMs?: number;
|
|
149
|
+
}
|
|
150
|
+
export declare class UiContributionClient {
|
|
151
|
+
private readonly transport;
|
|
152
|
+
readonly clientId: string;
|
|
153
|
+
private readonly defaultTimeoutMs;
|
|
154
|
+
private readonly discoverSettleMs;
|
|
155
|
+
private connectionUnsubscribe?;
|
|
156
|
+
private unavailableHandlers;
|
|
157
|
+
private activeConnection?;
|
|
158
|
+
constructor(transport: UiContributionTransport, options?: UiContributionClientOptions);
|
|
159
|
+
onUnavailable(handler: () => void): () => void;
|
|
160
|
+
private teardownPersistentListener;
|
|
161
|
+
private onUnavailableMessage;
|
|
162
|
+
discover(timeoutMs?: number): Promise<UiContributionConnection>;
|
|
163
|
+
connect(connection: UiContributionConnection): UiContributionConnection;
|
|
164
|
+
request(connection: UiContributionConnection, operation: string, payload: unknown, timeoutMs?: number): Promise<UiContributionPortResult>;
|
|
165
|
+
listContributions(connection: UiContributionConnection, timeoutMs?: number): Promise<UiContributionPortResult>;
|
|
166
|
+
writeValues(connection: UiContributionConnection, tabId: string, patch: FormValues, timeoutMs?: number): Promise<UiContributionPortResult>;
|
|
167
|
+
disconnect(): void;
|
|
168
|
+
get subscriptionCount(): number;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=contrib-port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contrib-port.d.ts","sourceRoot":"","sources":["../../src/ui-contribution/contrib-port.ts"],"names":[],"mappings":"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"}
|