@paperclipai/server 2026.830.0-canary.1 → 2026.830.0-canary.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.
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "773d357d8"
2
+ "commit": "300b7f4b7"
3
3
  }
@@ -0,0 +1,425 @@
1
+ import type { CompleteControlPlaneRunInput, ControlPlanePort, OpenControlPlaneRunInput } from "../contracts/control-plane-port.js";
2
+ import type { NativeRunEvent, NativeRunResult } from "../contracts/types.js";
3
+ import type { PersistedNativeSession } from "../contracts/native-session-backend.js";
4
+ import type { PrpEvent } from "../protocol/replay-contract.js";
5
+ export type CapabilityJsonPrimitive = string | number | boolean | null;
6
+ export type CapabilityJsonValue = CapabilityJsonPrimitive | CapabilityJsonValue[] | {
7
+ [key: string]: CapabilityJsonValue;
8
+ };
9
+ export type CapabilityTaskStatus = "backlog" | "todo" | "in_progress" | "in_review" | "done" | "blocked" | "cancelled";
10
+ export interface CapabilityFixtureCompany {
11
+ id: string;
12
+ name: string;
13
+ issuePrefix: string;
14
+ status: "active" | "paused";
15
+ budgetId: string;
16
+ }
17
+ export interface CapabilityFixtureActor {
18
+ id: string;
19
+ companyId: string;
20
+ name: string;
21
+ role: string;
22
+ status: "active" | "paused";
23
+ budgetId: string;
24
+ capabilityGrants: string[];
25
+ }
26
+ export interface CapabilityFixtureTask {
27
+ id: string;
28
+ companyId: string;
29
+ identifier: string;
30
+ title: string;
31
+ description: string | null;
32
+ status: CapabilityTaskStatus;
33
+ priority: "critical" | "high" | "medium" | "low";
34
+ workMode: "standard" | "ask" | "planning" | "skill_test";
35
+ parentId: string | null;
36
+ assigneeActorId: string | null;
37
+ checkoutRunId: string | null;
38
+ executionRunId: string | null;
39
+ startedAt: string | null;
40
+ completedAt: string | null;
41
+ }
42
+ export interface CapabilityFixtureComment {
43
+ id: string;
44
+ taskId: string;
45
+ authorActorId: string | null;
46
+ body: string;
47
+ createdAt: string;
48
+ }
49
+ export interface CapabilityFixtureDocumentRevision {
50
+ id: string;
51
+ documentId: string;
52
+ revision: number;
53
+ body: string;
54
+ changeSummary: string | null;
55
+ createdAt: string;
56
+ }
57
+ export interface CapabilityFixtureDocument {
58
+ id: string;
59
+ taskId: string;
60
+ key: string;
61
+ title: string;
62
+ format: "markdown";
63
+ latestRevisionId: string;
64
+ revisions: CapabilityFixtureDocumentRevision[];
65
+ }
66
+ export type CapabilityInteractionKind = "confirmation" | "checkbox" | "questions" | "suggest_tasks" | "item_verdicts";
67
+ export interface CapabilityFixtureInteraction {
68
+ id: string;
69
+ taskId: string;
70
+ kind: CapabilityInteractionKind;
71
+ status: "pending" | "answered" | "accepted" | "rejected" | "expired";
72
+ title: string;
73
+ prompt: string;
74
+ payload: CapabilityJsonValue;
75
+ targetRevisionId: string | null;
76
+ continuationPolicy: "none" | "wake_assignee" | "wake_assignee_on_accept";
77
+ result: CapabilityJsonValue | null;
78
+ createdAt: string;
79
+ resolvedAt: string | null;
80
+ }
81
+ export interface CapabilityFixtureApprovalComment {
82
+ id: string;
83
+ authorActorId: string | null;
84
+ body: string;
85
+ createdAt: string;
86
+ }
87
+ export interface CapabilityFixtureApproval {
88
+ id: string;
89
+ companyId: string;
90
+ taskIds: string[];
91
+ type: string;
92
+ status: "pending" | "approved" | "rejected" | "cancelled";
93
+ requestedByActorId: string | null;
94
+ payload: CapabilityJsonValue;
95
+ decisionNote: string | null;
96
+ comments: CapabilityFixtureApprovalComment[];
97
+ createdAt: string;
98
+ decidedAt: string | null;
99
+ }
100
+ export interface CapabilityFixtureArtifact {
101
+ id: string;
102
+ taskId: string;
103
+ filename: string;
104
+ contentType: string;
105
+ byteSize: number;
106
+ sha256: string;
107
+ contentRef: string;
108
+ createdAt: string;
109
+ }
110
+ export interface CapabilityFixtureWorkProduct {
111
+ id: string;
112
+ taskId: string;
113
+ type: "artifact" | "document" | "pull_request" | "preview_url" | "runtime_service" | "commit" | "branch";
114
+ title: string;
115
+ metadata: CapabilityJsonValue;
116
+ artifactId: string | null;
117
+ createdAt: string;
118
+ }
119
+ export interface CapabilityFixtureBlocker {
120
+ id: string;
121
+ taskId: string;
122
+ blockedByTaskId: string;
123
+ createdAt: string;
124
+ }
125
+ export interface CapabilityFixtureWorkspaceService {
126
+ id: string;
127
+ taskId: string;
128
+ name: string;
129
+ status: "stopped" | "starting" | "running" | "failed";
130
+ url: string | null;
131
+ lastTransitionAt: string;
132
+ }
133
+ export interface CapabilityFixtureBudget {
134
+ id: string;
135
+ scope: "company" | "actor";
136
+ scopeId: string;
137
+ limitCents: number;
138
+ spentCents: number;
139
+ hardStop: boolean;
140
+ }
141
+ export type CapabilityWakeReason = "manual" | "issue_commented" | "interaction_resolved" | "approval_resolved" | "blockers_resolved" | "scheduled_retry" | "resume";
142
+ export interface CapabilityWakeContext {
143
+ reason: CapabilityWakeReason;
144
+ payload: CapabilityJsonValue;
145
+ }
146
+ export interface CapabilityScheduledWake {
147
+ id: string;
148
+ actorId: string;
149
+ taskId: string;
150
+ reason: CapabilityWakeReason;
151
+ payload: CapabilityJsonValue;
152
+ dueAt: string;
153
+ status: "scheduled" | "delivered" | "cancelled";
154
+ createdAt: string;
155
+ }
156
+ export interface CapabilityFixtureRun {
157
+ id: string;
158
+ companyId: string;
159
+ actorId: string;
160
+ taskId: string;
161
+ sessionId: string;
162
+ backendKind: OpenControlPlaneRunInput["backendKind"];
163
+ sourceInstanceId: string;
164
+ status: "running" | "succeeded" | "failed" | "cancelled" | "budget_stopped";
165
+ attempt: number;
166
+ openedAt: string;
167
+ finishedAt: string | null;
168
+ wake: CapabilityWakeContext;
169
+ capabilities: string[];
170
+ events: Array<NativeRunEvent | PrpEvent>;
171
+ result: NativeRunResult | CompleteControlPlaneRunInput | null;
172
+ sessionCheckpoint: PersistedNativeSession | null;
173
+ }
174
+ export interface CapabilityAuditRecord {
175
+ id: string;
176
+ at: string;
177
+ runId: string | null;
178
+ actorId: string | null;
179
+ action: string;
180
+ entityType: string;
181
+ entityId: string;
182
+ details: CapabilityJsonValue;
183
+ }
184
+ export interface CapabilityDecisionRecord {
185
+ id: string;
186
+ at: string;
187
+ runId: string | null;
188
+ operation: string;
189
+ outcome: "allowed" | "denied" | "duplicate" | "reconciled" | "faulted";
190
+ reason: string;
191
+ stateRevision: number;
192
+ entityRefs: string[];
193
+ }
194
+ export interface CapabilityFaultRule {
195
+ id: string;
196
+ operation: "open_run" | "append_event" | "apply_command" | "complete_run";
197
+ commandKind?: CapabilitySemanticCommand["kind"];
198
+ effect: "retryable_error" | "lost_ack";
199
+ remaining: number;
200
+ code: string;
201
+ }
202
+ export interface ScenarioChatdempotencyRecord {
203
+ scope: string;
204
+ key: string;
205
+ inputCanonical: string;
206
+ result: CapabilityCommandResult;
207
+ }
208
+ export interface CapabilityFixtureState {
209
+ schema: "paperclip.capability.mock-state.v1";
210
+ revision: number;
211
+ clock: {
212
+ epochMs: number;
213
+ tick: number;
214
+ };
215
+ counters: Record<string, number>;
216
+ lifecycle: "stopped" | "running";
217
+ activeRunId: string | null;
218
+ company: CapabilityFixtureCompany;
219
+ actors: CapabilityFixtureActor[];
220
+ tasks: CapabilityFixtureTask[];
221
+ /** Known task ids outside the fixture company, without leaking foreign data. */
222
+ outOfScopeTaskIds: string[];
223
+ comments: CapabilityFixtureComment[];
224
+ documents: CapabilityFixtureDocument[];
225
+ interactions: CapabilityFixtureInteraction[];
226
+ approvals: CapabilityFixtureApproval[];
227
+ artifacts: CapabilityFixtureArtifact[];
228
+ workProducts: CapabilityFixtureWorkProduct[];
229
+ blockers: CapabilityFixtureBlocker[];
230
+ workspaceServices: CapabilityFixtureWorkspaceService[];
231
+ budgets: CapabilityFixtureBudget[];
232
+ runs: CapabilityFixtureRun[];
233
+ wakes: CapabilityScheduledWake[];
234
+ audit: CapabilityAuditRecord[];
235
+ decisions: CapabilityDecisionRecord[];
236
+ idempotency: ScenarioChatdempotencyRecord[];
237
+ faults: CapabilityFaultRule[];
238
+ }
239
+ export interface CapabilityRunContext {
240
+ schema: "paperclip.capability.run-context.v1";
241
+ company: Pick<CapabilityFixtureCompany, "id" | "name" | "issuePrefix" | "status">;
242
+ actor: Pick<CapabilityFixtureActor, "id" | "name" | "role" | "status" | "capabilityGrants">;
243
+ activeTask: CapabilityFixtureTask;
244
+ ancestors: CapabilityFixtureTask[];
245
+ wake: CapabilityWakeContext;
246
+ capabilities: string[];
247
+ budget: {
248
+ limitCents: number;
249
+ spentCents: number;
250
+ remainingCents: number;
251
+ };
252
+ interactionResults: Array<Pick<CapabilityFixtureInteraction, "id" | "kind" | "status" | "result">>;
253
+ }
254
+ export interface CapabilityOpenFixtureRunInput extends OpenControlPlaneRunInput {
255
+ wake?: CapabilityWakeContext;
256
+ capabilities?: string[];
257
+ resume?: boolean;
258
+ }
259
+ interface CapabilityBaseCommand {
260
+ taskId?: string;
261
+ }
262
+ export type CapabilitySemanticCommand = (CapabilityBaseCommand & {
263
+ kind: "report_progress";
264
+ body: string;
265
+ }) | (CapabilityBaseCommand & {
266
+ kind: "write_document";
267
+ key: string;
268
+ title: string;
269
+ body: string;
270
+ baseRevisionId: string | null;
271
+ changeSummary?: string | null;
272
+ }) | (CapabilityBaseCommand & {
273
+ kind: "request_human_input";
274
+ interactionKind: CapabilityInteractionKind;
275
+ title: string;
276
+ prompt: string;
277
+ payload?: CapabilityJsonValue;
278
+ targetRevisionId?: string | null;
279
+ continuationPolicy: CapabilityFixtureInteraction["continuationPolicy"];
280
+ }) | (CapabilityBaseCommand & {
281
+ kind: "resolve_human_input";
282
+ interactionId: string;
283
+ outcome: "answered" | "accepted" | "rejected" | "expired";
284
+ result: CapabilityJsonValue;
285
+ }) | (CapabilityBaseCommand & {
286
+ kind: "register_deliverable";
287
+ filename: string;
288
+ contentType: string;
289
+ byteSize: number;
290
+ sha256: string;
291
+ contentRef: string;
292
+ title: string;
293
+ }) | (CapabilityBaseCommand & {
294
+ kind: "set_dependencies";
295
+ blockedByTaskIds: string[];
296
+ }) | (CapabilityBaseCommand & {
297
+ kind: "create_task";
298
+ title: string;
299
+ description?: string | null;
300
+ assigneeActorId?: string | null;
301
+ priority?: CapabilityFixtureTask["priority"];
302
+ blockedByTaskIds?: string[];
303
+ }) | (CapabilityBaseCommand & {
304
+ kind: "request_approval";
305
+ approvalType: string;
306
+ payload: CapabilityJsonValue;
307
+ }) | (CapabilityBaseCommand & {
308
+ kind: "decide_approval";
309
+ approvalId: string;
310
+ decision: "approved" | "rejected" | "cancelled";
311
+ note: string;
312
+ }) | (CapabilityBaseCommand & {
313
+ kind: "comment_on_approval";
314
+ approvalId: string;
315
+ body: string;
316
+ }) | (CapabilityBaseCommand & {
317
+ kind: "control_workspace_service";
318
+ serviceId: string;
319
+ action: "start" | "stop" | "fail";
320
+ url?: string | null;
321
+ }) | (CapabilityBaseCommand & {
322
+ kind: "record_budget_usage";
323
+ cents: number;
324
+ }) | (CapabilityBaseCommand & {
325
+ kind: "finish_task";
326
+ summary: string;
327
+ }) | (CapabilityBaseCommand & {
328
+ kind: "block_task";
329
+ reason: string;
330
+ blockedByTaskIds?: string[];
331
+ }) | (CapabilityBaseCommand & {
332
+ kind: "request_review";
333
+ summary: string;
334
+ }) | (CapabilityBaseCommand & {
335
+ kind: "release_task";
336
+ reason: string;
337
+ }) | (CapabilityBaseCommand & {
338
+ kind: "schedule_wake";
339
+ reason: CapabilityWakeReason;
340
+ payload?: CapabilityJsonValue;
341
+ delayTicks: number;
342
+ });
343
+ export interface CapabilityCommandEnvelope {
344
+ runId: string;
345
+ idempotencyKey: string;
346
+ expectedRevision?: number;
347
+ command: CapabilitySemanticCommand;
348
+ }
349
+ export interface CapabilityCommandResult {
350
+ commandId: string;
351
+ commandKind: CapabilitySemanticCommand["kind"];
352
+ disposition: "applied" | "duplicate";
353
+ stateRevision: number;
354
+ entityRefs: string[];
355
+ scheduledWakeIds: string[];
356
+ }
357
+ export interface CapabilityCommandErrorResult {
358
+ code: string;
359
+ message: string;
360
+ retryable: boolean;
361
+ }
362
+ export type CapabilityCommandOutcome = {
363
+ ok: true;
364
+ result: CapabilityCommandResult;
365
+ } | {
366
+ ok: false;
367
+ commandKind: CapabilitySemanticCommand["kind"];
368
+ stateRevision: number;
369
+ error: CapabilityCommandErrorResult;
370
+ };
371
+ /**
372
+ * Claims enforced by the mock command boundary itself. The semantic catalog
373
+ * may hide ungranted operations earlier, but direct adapter consumers cannot
374
+ * bypass these checks.
375
+ */
376
+ export declare const CAPABILITY_COMMAND_REQUIRED_CLAIMS: {
377
+ readonly report_progress: readonly [];
378
+ readonly write_document: readonly [];
379
+ readonly request_human_input: readonly [];
380
+ readonly resolve_human_input: readonly ["control_plane:interactions"];
381
+ readonly register_deliverable: readonly [];
382
+ readonly set_dependencies: readonly ["dependencies:write"];
383
+ readonly create_task: readonly ["delegation:tasks:create"];
384
+ readonly request_approval: readonly ["governance:approvals:request"];
385
+ readonly decide_approval: readonly ["governance:approvals:decide"];
386
+ readonly comment_on_approval: readonly ["governance:approvals:comment"];
387
+ readonly control_workspace_service: readonly ["workspace:control"];
388
+ readonly record_budget_usage: readonly ["control_plane:budget"];
389
+ readonly finish_task: readonly [];
390
+ readonly block_task: readonly [];
391
+ readonly request_review: readonly [];
392
+ readonly release_task: readonly ["control_plane:release"];
393
+ readonly schedule_wake: readonly ["control_plane:wakes"];
394
+ };
395
+ export interface CapabilityMockControlPlanePort extends ControlPlanePort {
396
+ start(): Promise<void>;
397
+ stop(): Promise<void>;
398
+ openFixtureRun(input: CapabilityOpenFixtureRunInput): Promise<CapabilityRunContext>;
399
+ context(runId: string): CapabilityRunContext;
400
+ applyCommand(envelope: CapabilityCommandEnvelope): Promise<CapabilityCommandResult>;
401
+ tryApplyCommand(envelope: CapabilityCommandEnvelope): Promise<CapabilityCommandOutcome>;
402
+ snapshot(): Readonly<CapabilityFixtureState>;
403
+ decisionRecords(): readonly CapabilityDecisionRecord[];
404
+ serialize(): string;
405
+ }
406
+ export interface CapabilityFixtureSeed {
407
+ epochMs?: number;
408
+ company?: Partial<CapabilityFixtureCompany>;
409
+ actors?: CapabilityFixtureActor[];
410
+ tasks?: CapabilityFixtureTask[];
411
+ outOfScopeTaskIds?: string[];
412
+ comments?: CapabilityFixtureComment[];
413
+ documents?: CapabilityFixtureDocument[];
414
+ interactions?: CapabilityFixtureInteraction[];
415
+ approvals?: CapabilityFixtureApproval[];
416
+ artifacts?: CapabilityFixtureArtifact[];
417
+ workProducts?: CapabilityFixtureWorkProduct[];
418
+ blockers?: CapabilityFixtureBlocker[];
419
+ workspaceServices?: CapabilityFixtureWorkspaceService[];
420
+ budgets?: CapabilityFixtureBudget[];
421
+ faults?: CapabilityFaultRule[];
422
+ }
423
+ export declare function createCapabilityFixtureState(seed?: CapabilityFixtureSeed): CapabilityFixtureState;
424
+ export {};
425
+ //# sourceMappingURL=capability-control-plane-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-control-plane-types.d.ts","sourceRoot":"","sources":["../../src/mock-core/capability-control-plane-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Claims enforced by the mock command boundary itself. The semantic catalog
3
+ * may hide ungranted operations earlier, but direct adapter consumers cannot
4
+ * bypass these checks.
5
+ */
6
+ export const CAPABILITY_COMMAND_REQUIRED_CLAIMS = {
7
+ report_progress: [],
8
+ write_document: [],
9
+ request_human_input: [],
10
+ resolve_human_input: ["control_plane:interactions"],
11
+ register_deliverable: [],
12
+ set_dependencies: ["dependencies:write"],
13
+ create_task: ["delegation:tasks:create"],
14
+ request_approval: ["governance:approvals:request"],
15
+ decide_approval: ["governance:approvals:decide"],
16
+ comment_on_approval: ["governance:approvals:comment"],
17
+ control_workspace_service: ["workspace:control"],
18
+ record_budget_usage: ["control_plane:budget"],
19
+ finish_task: [],
20
+ block_task: [],
21
+ request_review: [],
22
+ release_task: ["control_plane:release"],
23
+ schedule_wake: ["control_plane:wakes"],
24
+ };
25
+ export function createCapabilityFixtureState(seed = {}) {
26
+ const company = {
27
+ id: "company-1",
28
+ name: "Mock Paperclip Company",
29
+ issuePrefix: "MCK",
30
+ status: "active",
31
+ budgetId: "budget-company-1",
32
+ ...seed.company,
33
+ };
34
+ const actors = seed.actors ?? [
35
+ {
36
+ id: "actor-1",
37
+ companyId: company.id,
38
+ name: "Mock Engineer",
39
+ role: "engineer",
40
+ status: "active",
41
+ budgetId: "budget-actor-1",
42
+ capabilityGrants: [],
43
+ },
44
+ ];
45
+ const tasks = seed.tasks ?? [
46
+ {
47
+ id: "task-1",
48
+ companyId: company.id,
49
+ identifier: `${company.issuePrefix}-1`,
50
+ title: "Deterministic fixture task",
51
+ description: null,
52
+ status: "todo",
53
+ priority: "medium",
54
+ workMode: "standard",
55
+ parentId: null,
56
+ assigneeActorId: actors[0]?.id ?? null,
57
+ checkoutRunId: null,
58
+ executionRunId: null,
59
+ startedAt: null,
60
+ completedAt: null,
61
+ },
62
+ ];
63
+ const budgets = seed.budgets ?? [
64
+ {
65
+ id: company.budgetId,
66
+ scope: "company",
67
+ scopeId: company.id,
68
+ limitCents: 10_000,
69
+ spentCents: 0,
70
+ hardStop: true,
71
+ },
72
+ ...actors.map((actor) => ({
73
+ id: actor.budgetId,
74
+ scope: "actor",
75
+ scopeId: actor.id,
76
+ limitCents: 1_000,
77
+ spentCents: 0,
78
+ hardStop: true,
79
+ })),
80
+ ];
81
+ return {
82
+ schema: "paperclip.capability.mock-state.v1",
83
+ revision: 0,
84
+ clock: { epochMs: seed.epochMs ?? Date.UTC(2026, 7, 9), tick: 0 },
85
+ counters: {},
86
+ lifecycle: "stopped",
87
+ activeRunId: null,
88
+ company,
89
+ actors: structuredClone(actors),
90
+ tasks: structuredClone(tasks),
91
+ outOfScopeTaskIds: structuredClone(seed.outOfScopeTaskIds ?? []),
92
+ comments: structuredClone(seed.comments ?? []),
93
+ documents: structuredClone(seed.documents ?? []),
94
+ interactions: structuredClone(seed.interactions ?? []),
95
+ approvals: structuredClone(seed.approvals ?? []),
96
+ artifacts: structuredClone(seed.artifacts ?? []),
97
+ workProducts: structuredClone(seed.workProducts ?? []),
98
+ blockers: structuredClone(seed.blockers ?? []),
99
+ workspaceServices: structuredClone(seed.workspaceServices ?? []),
100
+ budgets: structuredClone(budgets),
101
+ runs: [],
102
+ wakes: [],
103
+ audit: [],
104
+ decisions: [],
105
+ idempotency: [],
106
+ faults: structuredClone(seed.faults ?? []),
107
+ };
108
+ }
109
+ //# sourceMappingURL=capability-control-plane-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-control-plane-types.js","sourceRoot":"","sources":["../../src/mock-core/capability-control-plane-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { AppendedEventReceipt, CompleteControlPlaneRunInput, OpenControlPlaneRunInput, ReplayControlPlaneEventsInput, ReplayedControlPlaneEvents } from "../contracts/control-plane-port.js";
2
+ import type { PersistedNativeSession } from "../contracts/native-session-backend.js";
3
+ import type { NativeRunEvent, NativeRunResult } from "../contracts/types.js";
4
+ import { type PrpEvent } from "../protocol/replay-contract.js";
5
+ import { type CapabilityCommandEnvelope, type CapabilityCommandOutcome, type CapabilityCommandResult, type CapabilityDecisionRecord, type CapabilityFixtureSeed, type CapabilityFixtureState, type CapabilityMockControlPlanePort, type CapabilityOpenFixtureRunInput, type CapabilityRunContext } from "./capability-control-plane-types.js";
6
+ export declare class CapabilityMockControlPlaneError extends Error {
7
+ readonly code: string;
8
+ readonly retryable: boolean;
9
+ constructor(code: string, message: string, retryable?: boolean);
10
+ }
11
+ /**
12
+ * Deterministic, serializable control-plane authority for Capability scenarios.
13
+ *
14
+ * The adapter deliberately models Paperclip semantics instead of Paperclip
15
+ * transport. It imports no server route, service, database, or provider binding.
16
+ */
17
+ export declare class CapabilityMockControlPlaneAdapter implements CapabilityMockControlPlanePort {
18
+ #private;
19
+ constructor(seed?: CapabilityFixtureSeed | CapabilityFixtureState);
20
+ static restore(serialized: string): CapabilityMockControlPlaneAdapter;
21
+ start(): Promise<void>;
22
+ stop(): Promise<void>;
23
+ openRun(input: OpenControlPlaneRunInput): Promise<void>;
24
+ openFixtureRun(input: CapabilityOpenFixtureRunInput): Promise<CapabilityRunContext>;
25
+ context(runId: string): CapabilityRunContext;
26
+ appendEvent(event: NativeRunEvent | PrpEvent): Promise<AppendedEventReceipt>;
27
+ replayEvents(input: ReplayControlPlaneEventsInput): Promise<ReplayedControlPlaneEvents>;
28
+ loadSessionCheckpoint(): Promise<PersistedNativeSession | null>;
29
+ checkpointSession(snapshot: PersistedNativeSession): Promise<void>;
30
+ applyCommand(envelope: CapabilityCommandEnvelope): Promise<CapabilityCommandResult>;
31
+ tryApplyCommand(envelope: CapabilityCommandEnvelope): Promise<CapabilityCommandOutcome>;
32
+ completeRun(result: NativeRunResult | CompleteControlPlaneRunInput): Promise<void>;
33
+ snapshot(): Readonly<CapabilityFixtureState>;
34
+ decisionRecords(): readonly CapabilityDecisionRecord[];
35
+ serialize(): string;
36
+ }
37
+ //# sourceMappingURL=capability-mock-control-plane-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-mock-control-plane-adapter.d.ts","sourceRoot":"","sources":["../../src/mock-core/capability-mock-control-plane-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAIL,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAM7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAG3B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EAG1B,MAAM,qCAAqC,CAAC;AAI7C,qBAAa,+BAAgC,SAAQ,KAAK;IAEtD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,SAAS;IAHpB,YACW,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,SAAS,UAAQ,EAI3B;CACF;AACD;;;;;GAKG;AACH,qBAAa,iCAAkC,YAAW,8BAA8B;;IAGtF,YAAY,IAAI,GAAE,qBAAqB,GAAG,sBAA2B,EAOpE;IAED,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,iCAAiC,CAiBpE;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1B;IAEK,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;IAEK,cAAc,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgGxF;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAoD3C;IAEK,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8FjF;IAEK,YAAY,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAqB5F;IAEK,qBAAqB,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAGpE;IAEK,iBAAiB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE;IAEK,YAAY,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA6FxF;IAEK,eAAe,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgB5F;IAEK,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EvF;IAED,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,CAAC,CAE3C;IAED,eAAe,IAAI,SAAS,wBAAwB,EAAE,CAErD;IAED,SAAS,IAAI,MAAM,CAElB;CAgmCF"}