@pluno/product-agent-web 0.1.203 → 0.1.204

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.
@@ -0,0 +1,2 @@
1
+ import { type PATransportedError } from "../../core/protocol/errors";
2
+ export declare function toPAWebTransportedError(error: unknown): PATransportedError;
@@ -0,0 +1,16 @@
1
+ import type { PAAuthorityId, PARunId, PASessionId } from "../kernel/state";
2
+ import type { PAJsonObject } from "../protocol/json";
3
+ export type PABrowserToolCall = Readonly<{
4
+ authorityId: PAAuthorityId;
5
+ sessionId: PASessionId;
6
+ runId: PARunId;
7
+ callId: string;
8
+ executorId: string;
9
+ inputFingerprint: string;
10
+ input: PAJsonObject;
11
+ }>;
12
+ export type PABrowserToolOutcome = Readonly<{
13
+ callId: string;
14
+ status: "completed" | "failed" | "outcome_unknown";
15
+ output: PAJsonObject;
16
+ }>;
@@ -0,0 +1,21 @@
1
+ import type { PAClientScopeId, PARequestId, PASessionId, PAViewId } from "../kernel/state";
2
+ import type { PAJsonObject } from "../protocol/json";
3
+ export type PAAttachmentSource = Readonly<{
4
+ sourceId: string;
5
+ name: string;
6
+ mimeType: string;
7
+ sizeBytes: number;
8
+ }>;
9
+ export type PARendererComposerSubmission = Readonly<{
10
+ viewId: PAViewId;
11
+ clientScopeId: PAClientScopeId;
12
+ rendererRevision: number;
13
+ content: string;
14
+ attachments: readonly PAAttachmentSource[];
15
+ metadata?: PAJsonObject;
16
+ }>;
17
+ export type PASubmissionReceipt = Readonly<{
18
+ requestId: PARequestId;
19
+ sessionId: PASessionId;
20
+ acceptedRendererRevision: number;
21
+ }>;
@@ -0,0 +1,14 @@
1
+ export * from "./browser-execution/contracts";
2
+ export * from "./conversation/contracts";
3
+ export * from "./interactions/contracts";
4
+ export * from "./kernel/capabilities";
5
+ export * from "./kernel/commands";
6
+ export * from "./kernel/effects";
7
+ export * from "./kernel/events";
8
+ export * from "./kernel/reducer";
9
+ export * from "./kernel/selectors";
10
+ export * from "./kernel/state";
11
+ export * from "./model-selection/contracts";
12
+ export * from "./ports";
13
+ export * from "./protocol/errors";
14
+ export * from "./protocol/json";
@@ -0,0 +1,8 @@
1
+ import type { PAJsonObject } from "../protocol/json";
2
+ export type PAInteractionAction = "connect" | "dismiss" | "dont_show_again" | "enable" | "later" | "never" | "run" | "snooze" | "submit_feedback";
3
+ export type PAInteractionActionInput = Readonly<{
4
+ interactionId: string;
5
+ action: PAInteractionAction;
6
+ expectedRevision: number;
7
+ payload?: PAJsonObject;
8
+ }>;
@@ -0,0 +1,333 @@
1
+ export declare const PA_OPERATION_CAPABILITY: {
2
+ readonly connect: "canConnect";
3
+ readonly read_account: "canReadAccount";
4
+ readonly read_appearance: "canReadAppearance";
5
+ readonly read_history: "canReadHistory";
6
+ readonly start_conversation: "canStartConversation";
7
+ readonly send_message: "canCompose";
8
+ readonly retry_message: "canRetryMessages";
9
+ readonly stop_run: "canStopRuns";
10
+ readonly upload_attachment: "canUploadAttachments";
11
+ readonly execute_browser_tool: "canExecuteCurrentPageTools";
12
+ readonly manage_tabs: "canManageTabs";
13
+ readonly group_session_tabs: "canGroupSessionTabs";
14
+ readonly change_task_page_title: "canChangeTaskPageTitle";
15
+ readonly open_external_link: "canOpenExternalLinks";
16
+ readonly use_runtime_helper: "canUseRuntimeHelpers";
17
+ readonly use_sandbox_files: "canUseSandboxFiles";
18
+ readonly show_notification: "canShowSystemNotifications";
19
+ readonly share: "canShare";
20
+ readonly submit_feedback: "canSubmitFeedback";
21
+ readonly pin_session: "canPinSessions";
22
+ readonly rename_session: "canRenameSessions";
23
+ readonly delete_session: "canDeleteSessions";
24
+ readonly select_model: "canSelectModel";
25
+ readonly select_browser_mode: "canSelectBrowserMode";
26
+ readonly manage_session_prompt: "canManageSessionPrompt";
27
+ readonly refresh_context: "canRefreshOriginContext";
28
+ readonly refresh_user_context: "canRefreshUserContext";
29
+ readonly manage_origin_style: "canManageOriginStyle";
30
+ readonly manage_origin_access: "canManageOriginAccess";
31
+ readonly start_deep_flow: "canStartDeepFlow";
32
+ readonly manage_preferences: "canManagePreferences";
33
+ readonly read_starter_prompts: "canReadStarterPrompts";
34
+ readonly manage_morning_report: "canManageMorningReport";
35
+ readonly manage_proactive_suggestions: "canManageProactiveSuggestions";
36
+ readonly manage_notification_permission: "canRequestNotificationPermission";
37
+ readonly manage_tab_group_permission: "canRequestTabGroupPermission";
38
+ readonly manage_integration_auth: "canManageIntegrationAuth";
39
+ readonly read_active_users: "canReadActiveUsers";
40
+ readonly manage_extension_update: "canManageExtensionUpdate";
41
+ readonly record_widget_lifecycle: "canRecordWidgetLifecycle";
42
+ readonly read_hosted_browser_eligibility: "canReadHostedBrowserEligibility";
43
+ readonly manage_interactions: "canManageInteractions";
44
+ readonly invoke_conversation_action: "canInvokeConversationActions";
45
+ };
46
+ export type PAOperation = keyof typeof PA_OPERATION_CAPABILITY;
47
+ export type PAOperationCapability = typeof PA_OPERATION_CAPABILITY[PAOperation];
48
+ export type PASurfaceCapabilities = Readonly<{
49
+ canConnect: boolean;
50
+ canRenderConversation: boolean;
51
+ canReadHistory: boolean;
52
+ canStartConversation: boolean;
53
+ canCompose: boolean;
54
+ canRetryMessages: boolean;
55
+ canStopRuns: boolean;
56
+ canUploadAttachments: boolean;
57
+ canExecuteCurrentPageTools: boolean;
58
+ canManageTabs: boolean;
59
+ canGroupSessionTabs: boolean;
60
+ canChangeTaskPageTitle: boolean;
61
+ canShowSystemNotifications: boolean;
62
+ canRequestNotificationPermission: boolean;
63
+ canRequestTabGroupPermission: boolean;
64
+ canOpenExternalLinks: boolean;
65
+ canShare: boolean;
66
+ canSubmitFeedback: boolean;
67
+ canPinSessions: boolean;
68
+ canRenameSessions: boolean;
69
+ canDeleteSessions: boolean;
70
+ canReadAccount: boolean;
71
+ canReadAppearance: boolean;
72
+ canManagePreferences: boolean;
73
+ canInvokeConversationActions: boolean;
74
+ canShowPersonalFeatures: boolean;
75
+ canSelectModel: boolean;
76
+ canSelectBrowserMode: boolean;
77
+ canManageSessionPrompt: boolean;
78
+ canRefreshOriginContext: boolean;
79
+ canRefreshUserContext: boolean;
80
+ canManageOriginStyle: boolean;
81
+ canManageOriginAccess: boolean;
82
+ canStartDeepFlow: boolean;
83
+ canUseRuntimeHelpers: boolean;
84
+ canUseSandboxFiles: boolean;
85
+ canReadHostedBrowserEligibility: boolean;
86
+ canManageInteractions: boolean;
87
+ canReadStarterPrompts: boolean;
88
+ canManageMorningReport: boolean;
89
+ canManageProactiveSuggestions: boolean;
90
+ canManageIntegrationAuth: boolean;
91
+ canReadActiveUsers: boolean;
92
+ canManageExtensionUpdate: boolean;
93
+ canRecordWidgetLifecycle: boolean;
94
+ }>;
95
+ export type PAClientCapabilityProfile = "extension_sidepanel" | "extension_widget" | "main_web_chat" | "embedded_widget" | "embedded_custom_ui";
96
+ export declare const PA_SURFACE_PROFILES: {
97
+ readonly extension_sidepanel: Readonly<{
98
+ canConnect: boolean;
99
+ canRenderConversation: boolean;
100
+ canReadHistory: boolean;
101
+ canStartConversation: boolean;
102
+ canCompose: boolean;
103
+ canRetryMessages: boolean;
104
+ canStopRuns: boolean;
105
+ canUploadAttachments: boolean;
106
+ canExecuteCurrentPageTools: boolean;
107
+ canManageTabs: boolean;
108
+ canGroupSessionTabs: boolean;
109
+ canChangeTaskPageTitle: boolean;
110
+ canShowSystemNotifications: boolean;
111
+ canRequestNotificationPermission: boolean;
112
+ canRequestTabGroupPermission: boolean;
113
+ canOpenExternalLinks: boolean;
114
+ canShare: boolean;
115
+ canSubmitFeedback: boolean;
116
+ canPinSessions: boolean;
117
+ canRenameSessions: boolean;
118
+ canDeleteSessions: boolean;
119
+ canReadAccount: boolean;
120
+ canReadAppearance: boolean;
121
+ canManagePreferences: boolean;
122
+ canInvokeConversationActions: boolean;
123
+ canShowPersonalFeatures: boolean;
124
+ canSelectModel: boolean;
125
+ canSelectBrowserMode: boolean;
126
+ canManageSessionPrompt: boolean;
127
+ canRefreshOriginContext: boolean;
128
+ canRefreshUserContext: boolean;
129
+ canManageOriginStyle: boolean;
130
+ canManageOriginAccess: boolean;
131
+ canStartDeepFlow: boolean;
132
+ canUseRuntimeHelpers: boolean;
133
+ canUseSandboxFiles: boolean;
134
+ canReadHostedBrowserEligibility: boolean;
135
+ canManageInteractions: boolean;
136
+ canReadStarterPrompts: boolean;
137
+ canManageMorningReport: boolean;
138
+ canManageProactiveSuggestions: boolean;
139
+ canManageIntegrationAuth: boolean;
140
+ canReadActiveUsers: boolean;
141
+ canManageExtensionUpdate: boolean;
142
+ canRecordWidgetLifecycle: boolean;
143
+ }>;
144
+ readonly extension_widget: Readonly<{
145
+ canConnect: boolean;
146
+ canRenderConversation: boolean;
147
+ canReadHistory: boolean;
148
+ canStartConversation: boolean;
149
+ canCompose: boolean;
150
+ canRetryMessages: boolean;
151
+ canStopRuns: boolean;
152
+ canUploadAttachments: boolean;
153
+ canExecuteCurrentPageTools: boolean;
154
+ canManageTabs: boolean;
155
+ canGroupSessionTabs: boolean;
156
+ canChangeTaskPageTitle: boolean;
157
+ canShowSystemNotifications: boolean;
158
+ canRequestNotificationPermission: boolean;
159
+ canRequestTabGroupPermission: boolean;
160
+ canOpenExternalLinks: boolean;
161
+ canShare: boolean;
162
+ canSubmitFeedback: boolean;
163
+ canPinSessions: boolean;
164
+ canRenameSessions: boolean;
165
+ canDeleteSessions: boolean;
166
+ canReadAccount: boolean;
167
+ canReadAppearance: boolean;
168
+ canManagePreferences: boolean;
169
+ canInvokeConversationActions: boolean;
170
+ canShowPersonalFeatures: boolean;
171
+ canSelectModel: boolean;
172
+ canSelectBrowserMode: boolean;
173
+ canManageSessionPrompt: boolean;
174
+ canRefreshOriginContext: boolean;
175
+ canRefreshUserContext: boolean;
176
+ canManageOriginStyle: boolean;
177
+ canManageOriginAccess: boolean;
178
+ canStartDeepFlow: boolean;
179
+ canUseRuntimeHelpers: boolean;
180
+ canUseSandboxFiles: boolean;
181
+ canReadHostedBrowserEligibility: boolean;
182
+ canManageInteractions: boolean;
183
+ canReadStarterPrompts: boolean;
184
+ canManageMorningReport: boolean;
185
+ canManageProactiveSuggestions: boolean;
186
+ canManageIntegrationAuth: boolean;
187
+ canReadActiveUsers: boolean;
188
+ canManageExtensionUpdate: boolean;
189
+ canRecordWidgetLifecycle: boolean;
190
+ }>;
191
+ readonly main_web_chat: Readonly<{
192
+ canConnect: boolean;
193
+ canRenderConversation: boolean;
194
+ canReadHistory: boolean;
195
+ canStartConversation: boolean;
196
+ canCompose: boolean;
197
+ canRetryMessages: boolean;
198
+ canStopRuns: boolean;
199
+ canUploadAttachments: boolean;
200
+ canExecuteCurrentPageTools: boolean;
201
+ canManageTabs: boolean;
202
+ canGroupSessionTabs: boolean;
203
+ canChangeTaskPageTitle: boolean;
204
+ canShowSystemNotifications: boolean;
205
+ canRequestNotificationPermission: boolean;
206
+ canRequestTabGroupPermission: boolean;
207
+ canOpenExternalLinks: boolean;
208
+ canShare: boolean;
209
+ canSubmitFeedback: boolean;
210
+ canPinSessions: boolean;
211
+ canRenameSessions: boolean;
212
+ canDeleteSessions: boolean;
213
+ canReadAccount: boolean;
214
+ canReadAppearance: boolean;
215
+ canManagePreferences: boolean;
216
+ canInvokeConversationActions: boolean;
217
+ canShowPersonalFeatures: boolean;
218
+ canSelectModel: boolean;
219
+ canSelectBrowserMode: boolean;
220
+ canManageSessionPrompt: boolean;
221
+ canRefreshOriginContext: boolean;
222
+ canRefreshUserContext: boolean;
223
+ canManageOriginStyle: boolean;
224
+ canManageOriginAccess: boolean;
225
+ canStartDeepFlow: boolean;
226
+ canUseRuntimeHelpers: boolean;
227
+ canUseSandboxFiles: boolean;
228
+ canReadHostedBrowserEligibility: boolean;
229
+ canManageInteractions: boolean;
230
+ canReadStarterPrompts: boolean;
231
+ canManageMorningReport: boolean;
232
+ canManageProactiveSuggestions: boolean;
233
+ canManageIntegrationAuth: boolean;
234
+ canReadActiveUsers: boolean;
235
+ canManageExtensionUpdate: boolean;
236
+ canRecordWidgetLifecycle: boolean;
237
+ }>;
238
+ readonly embedded_widget: Readonly<{
239
+ canConnect: boolean;
240
+ canRenderConversation: boolean;
241
+ canReadHistory: boolean;
242
+ canStartConversation: boolean;
243
+ canCompose: boolean;
244
+ canRetryMessages: boolean;
245
+ canStopRuns: boolean;
246
+ canUploadAttachments: boolean;
247
+ canExecuteCurrentPageTools: boolean;
248
+ canManageTabs: boolean;
249
+ canGroupSessionTabs: boolean;
250
+ canChangeTaskPageTitle: boolean;
251
+ canShowSystemNotifications: boolean;
252
+ canRequestNotificationPermission: boolean;
253
+ canRequestTabGroupPermission: boolean;
254
+ canOpenExternalLinks: boolean;
255
+ canShare: boolean;
256
+ canSubmitFeedback: boolean;
257
+ canPinSessions: boolean;
258
+ canRenameSessions: boolean;
259
+ canDeleteSessions: boolean;
260
+ canReadAccount: boolean;
261
+ canReadAppearance: boolean;
262
+ canManagePreferences: boolean;
263
+ canInvokeConversationActions: boolean;
264
+ canShowPersonalFeatures: boolean;
265
+ canSelectModel: boolean;
266
+ canSelectBrowserMode: boolean;
267
+ canManageSessionPrompt: boolean;
268
+ canRefreshOriginContext: boolean;
269
+ canRefreshUserContext: boolean;
270
+ canManageOriginStyle: boolean;
271
+ canManageOriginAccess: boolean;
272
+ canStartDeepFlow: boolean;
273
+ canUseRuntimeHelpers: boolean;
274
+ canUseSandboxFiles: boolean;
275
+ canReadHostedBrowserEligibility: boolean;
276
+ canManageInteractions: boolean;
277
+ canReadStarterPrompts: boolean;
278
+ canManageMorningReport: boolean;
279
+ canManageProactiveSuggestions: boolean;
280
+ canManageIntegrationAuth: boolean;
281
+ canReadActiveUsers: boolean;
282
+ canManageExtensionUpdate: boolean;
283
+ canRecordWidgetLifecycle: boolean;
284
+ }>;
285
+ readonly embedded_custom_ui: Readonly<{
286
+ canConnect: boolean;
287
+ canRenderConversation: boolean;
288
+ canReadHistory: boolean;
289
+ canStartConversation: boolean;
290
+ canCompose: boolean;
291
+ canRetryMessages: boolean;
292
+ canStopRuns: boolean;
293
+ canUploadAttachments: boolean;
294
+ canExecuteCurrentPageTools: boolean;
295
+ canManageTabs: boolean;
296
+ canGroupSessionTabs: boolean;
297
+ canChangeTaskPageTitle: boolean;
298
+ canShowSystemNotifications: boolean;
299
+ canRequestNotificationPermission: boolean;
300
+ canRequestTabGroupPermission: boolean;
301
+ canOpenExternalLinks: boolean;
302
+ canShare: boolean;
303
+ canSubmitFeedback: boolean;
304
+ canPinSessions: boolean;
305
+ canRenameSessions: boolean;
306
+ canDeleteSessions: boolean;
307
+ canReadAccount: boolean;
308
+ canReadAppearance: boolean;
309
+ canManagePreferences: boolean;
310
+ canInvokeConversationActions: boolean;
311
+ canShowPersonalFeatures: boolean;
312
+ canSelectModel: boolean;
313
+ canSelectBrowserMode: boolean;
314
+ canManageSessionPrompt: boolean;
315
+ canRefreshOriginContext: boolean;
316
+ canRefreshUserContext: boolean;
317
+ canManageOriginStyle: boolean;
318
+ canManageOriginAccess: boolean;
319
+ canStartDeepFlow: boolean;
320
+ canUseRuntimeHelpers: boolean;
321
+ canUseSandboxFiles: boolean;
322
+ canReadHostedBrowserEligibility: boolean;
323
+ canManageInteractions: boolean;
324
+ canReadStarterPrompts: boolean;
325
+ canManageMorningReport: boolean;
326
+ canManageProactiveSuggestions: boolean;
327
+ canManageIntegrationAuth: boolean;
328
+ canReadActiveUsers: boolean;
329
+ canManageExtensionUpdate: boolean;
330
+ canRecordWidgetLifecycle: boolean;
331
+ }>;
332
+ };
333
+ export declare function hasPASurfaceCapability(profile: PAClientCapabilityProfile, capability: string): boolean;
@@ -0,0 +1,7 @@
1
+ export type PACommand = Readonly<{
2
+ type: string;
3
+ }>;
4
+ export type PACommandReducerInput<TCommand extends PACommand> = Readonly<{
5
+ source: "command";
6
+ value: TCommand;
7
+ }>;
@@ -0,0 +1,37 @@
1
+ import type { PAEffectId } from "./state";
2
+ import type { PATransportedError } from "../protocol/errors";
3
+ import type { PAJsonValue } from "../protocol/json";
4
+ export type PAEffectContract = Readonly<{
5
+ input: PAJsonValue;
6
+ output: PAJsonValue;
7
+ }>;
8
+ export type PAEffectMapShape<TMap> = {
9
+ readonly [TKind in keyof TMap]: PAEffectContract;
10
+ };
11
+ export type PAEffect<TEffectMap extends PAEffectMapShape<TEffectMap>> = {
12
+ readonly [TKind in keyof TEffectMap & string]: Readonly<{
13
+ id: PAEffectId;
14
+ kind: TKind;
15
+ input: TEffectMap[TKind]["input"];
16
+ }>;
17
+ }[keyof TEffectMap & string];
18
+ export type PAEffectCompletedEvent<TEffectMap extends PAEffectMapShape<TEffectMap>> = {
19
+ readonly [TKind in keyof TEffectMap & string]: Readonly<{
20
+ type: "effect.completed";
21
+ effectId: PAEffectId;
22
+ effectKind: TKind;
23
+ output: TEffectMap[TKind]["output"];
24
+ }>;
25
+ }[keyof TEffectMap & string];
26
+ export type PAEffectFailedEvent<TEffectMap extends PAEffectMapShape<TEffectMap>> = {
27
+ readonly [TKind in keyof TEffectMap & string]: Readonly<{
28
+ type: "effect.failed";
29
+ effectId: PAEffectId;
30
+ effectKind: TKind;
31
+ error: PATransportedError;
32
+ }>;
33
+ }[keyof TEffectMap & string];
34
+ export type PAEffectResultEvent<TEffectMap extends PAEffectMapShape<TEffectMap>> = PAEffectCompletedEvent<TEffectMap> | PAEffectFailedEvent<TEffectMap>;
35
+ export type PAEffectHandlers<TEffectMap extends PAEffectMapShape<TEffectMap>> = {
36
+ readonly [TKind in keyof TEffectMap]: (input: TEffectMap[TKind]["input"]) => Promise<TEffectMap[TKind]["output"]>;
37
+ };
@@ -0,0 +1,9 @@
1
+ import type { PAEffectMapShape, PAEffectResultEvent } from "./effects";
2
+ export type PADomainEvent = Readonly<{
3
+ type: string;
4
+ }>;
5
+ export type PAEngineEvent<TDomainEvent extends PADomainEvent, TEffectMap extends PAEffectMapShape<TEffectMap>> = TDomainEvent | PAEffectResultEvent<TEffectMap>;
6
+ export type PAEventReducerInput<TEvent extends PADomainEvent> = Readonly<{
7
+ source: "event";
8
+ value: TEvent;
9
+ }>;
@@ -0,0 +1,10 @@
1
+ import type { PACommand, PACommandReducerInput } from "./commands";
2
+ import type { PAEffect, PAEffectMapShape } from "./effects";
3
+ import type { PADomainEvent, PAEventReducerInput } from "./events";
4
+ export type PAReduction<TState, TEffectMap extends PAEffectMapShape<TEffectMap>> = Readonly<{
5
+ state: TState;
6
+ effects: readonly PAEffect<TEffectMap>[];
7
+ }>;
8
+ export type PAReducerInput<TCommand extends PACommand, TEvent extends PADomainEvent> = PACommandReducerInput<TCommand> | PAEventReducerInput<TEvent>;
9
+ export type PAReducer<TState, TCommand extends PACommand, TEvent extends PADomainEvent, TEffectMap extends PAEffectMapShape<TEffectMap>> = (state: TState, input: PAReducerInput<TCommand, TEvent>) => PAReduction<TState, TEffectMap>;
10
+ export declare function unchangedPAReduction<TState, TEffectMap extends PAEffectMapShape<TEffectMap>>(state: TState): PAReduction<TState, TEffectMap>;
@@ -0,0 +1,3 @@
1
+ export type PASelector<TState, TProjection> = (state: TState) => TProjection;
2
+ export type PAProjectionListener<TProjection> = (projection: TProjection) => void;
3
+ export type PAUnsubscribe = () => void;
@@ -0,0 +1,46 @@
1
+ import type { PATransportedError } from "../protocol/errors";
2
+ declare const paIdentifierBrand: unique symbol;
3
+ export type PABrandedIdentifier<TName extends string> = string & {
4
+ readonly [paIdentifierBrand]: TName;
5
+ };
6
+ export type PAAuthorityId = PABrandedIdentifier<"authority">;
7
+ export type PAClientScopeId = PABrandedIdentifier<"client-scope">;
8
+ export type PAConversationScopeId = PABrandedIdentifier<"conversation-scope">;
9
+ export type PAEffectId = PABrandedIdentifier<"effect">;
10
+ export type PARequestId = PABrandedIdentifier<"request">;
11
+ export type PARunId = PABrandedIdentifier<"run">;
12
+ export type PASessionId = PABrandedIdentifier<"session">;
13
+ export type PAViewId = PABrandedIdentifier<"view">;
14
+ export type PAQueryStatus = "not_requested" | "loading" | "ready" | "refreshing" | "loading_more" | "error";
15
+ export type PAQueryState<TKey extends string, TData> = Readonly<{
16
+ key: TKey;
17
+ status: PAQueryStatus;
18
+ data: TData | null;
19
+ cursor: string | null;
20
+ error: PATransportedError | null;
21
+ requestId: PARequestId | null;
22
+ updatedAt: number | null;
23
+ }>;
24
+ export declare function createPAQueryState<TKey extends string, TData>(key: TKey): PAQueryState<TKey, TData>;
25
+ export declare function beginPAQuery<TKey extends string, TData>(state: PAQueryState<TKey, TData>, input: Readonly<{
26
+ key: TKey;
27
+ requestId: PARequestId;
28
+ mode: "replace" | "append";
29
+ }>): PAQueryState<TKey, TData>;
30
+ export declare function completePAQuery<TKey extends string, TData>(state: PAQueryState<TKey, TData>, input: Readonly<{
31
+ key: TKey;
32
+ requestId: PARequestId;
33
+ data: TData;
34
+ cursor: string | null;
35
+ updatedAt: number;
36
+ }>): PAQueryState<TKey, TData>;
37
+ export declare function failPAQuery<TKey extends string, TData>(state: PAQueryState<TKey, TData>, input: Readonly<{
38
+ key: TKey;
39
+ requestId: PARequestId;
40
+ error: PATransportedError;
41
+ }>): PAQueryState<TKey, TData>;
42
+ export type PAEngineState<TSlices extends object> = Readonly<{
43
+ revision: number;
44
+ slices: Readonly<TSlices>;
45
+ }>;
46
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { PAClientScopeId } from "../kernel/state";
2
+ export type PAProductAgentModel = "anthropic/claude-opus-5" | "anthropic/claude-sonnet-5" | "deepseek/deepseek-chat-v3.1" | "deepseek/deepseek-v4-flash" | "gpt-5.4-nano" | "gpt-5.4-mini" | "gpt-5.4" | "gpt-5.6-luna" | "gpt-5.6-terra" | "gpt-5.6-sol";
3
+ export type PAComposerModelSelection = Readonly<{
4
+ clientScopeId: PAClientScopeId;
5
+ requestedModel: PAProductAgentModel;
6
+ }>;
@@ -0,0 +1,14 @@
1
+ import type { PAEffectId, PARequestId } from "./kernel/state";
2
+ import type { PAJsonValue } from "./protocol/json";
3
+ export interface PAClockPort {
4
+ now(): number;
5
+ }
6
+ export interface PAIdPort {
7
+ createEffectId(): PAEffectId;
8
+ createRequestId(): PARequestId;
9
+ }
10
+ export interface PAKeyValuePort {
11
+ get(key: string): Promise<PAJsonValue | undefined>;
12
+ set(key: string, value: PAJsonValue): Promise<void>;
13
+ remove(key: string): Promise<void>;
14
+ }
@@ -0,0 +1,9 @@
1
+ import { type PAJsonObject } from "./json";
2
+ export type PATransportedErrorCode = "capability_unavailable" | "connection_interrupted" | "request_timed_out" | "validation_failed" | "unknown" | (string & {});
3
+ export type PATransportedError = Readonly<{
4
+ code: PATransportedErrorCode;
5
+ message: string;
6
+ retryable: boolean;
7
+ details?: PAJsonObject;
8
+ }>;
9
+ export declare function createPATransportedError(input: PATransportedError): PATransportedError;
@@ -0,0 +1,6 @@
1
+ export type PAJsonPrimitive = string | number | boolean | null;
2
+ export type PAJsonValue = PAJsonPrimitive | readonly PAJsonValue[] | {
3
+ readonly [key: string]: PAJsonValue;
4
+ };
5
+ export type PAJsonObject = Readonly<Record<string, PAJsonValue>>;
6
+ export declare function isPAJsonValue(value: unknown): value is PAJsonValue;