@pairlobby/protocol 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +93 -0
- package/README.md +5 -0
- package/dist/auto-close.d.ts +34 -0
- package/dist/auto-close.d.ts.map +1 -0
- package/dist/auto-close.js +12 -0
- package/dist/auto-close.js.map +1 -0
- package/dist/credentials.d.ts +15 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +48 -0
- package/dist/credentials.js.map +1 -0
- package/dist/errors.d.ts +23 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +78 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +3177 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +145 -0
- package/dist/events.js.map +1 -0
- package/dist/handover.d.ts +266 -0
- package/dist/handover.d.ts.map +1 -0
- package/dist/handover.js +37 -0
- package/dist/handover.js.map +1 -0
- package/dist/http.d.ts +8849 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +157 -0
- package/dist/http.js.map +1 -0
- package/dist/ids.d.ts +26 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +46 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/limits.d.ts +74 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +56 -0
- package/dist/limits.js.map +1 -0
- package/dist/names.d.ts +16 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +7 -0
- package/dist/names.js.map +1 -0
- package/dist/records.d.ts +1109 -0
- package/dist/records.d.ts.map +1 -0
- package/dist/records.js +169 -0
- package/dist/records.js.map +1 -0
- package/dist/requests.d.ts +71 -0
- package/dist/requests.d.ts.map +1 -0
- package/dist/requests.js +93 -0
- package/dist/requests.js.map +1 -0
- package/dist/wire.d.ts +4266 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +24 -0
- package/dist/wire.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
//! Room events. Clients submit an `EventSubmission`; the server assigns sender,
|
|
2
|
+
//! sequence, id, and timestamp and persists a `RoomEvent`.
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { NameSource, ParticipantName } from './names.js';
|
|
5
|
+
import { EventId, HandoverId, ParticipantId, RoomId } from './ids.js';
|
|
6
|
+
import { HandoverDocument } from './handover.js';
|
|
7
|
+
import { AutoClosePolicySchema, CloseReasonSchema } from './auto-close.js';
|
|
8
|
+
export const PROTOCOL_VERSION = 1;
|
|
9
|
+
export const PROTOCOL_VERSION_HEADER = 'pairlobby-protocol';
|
|
10
|
+
export const ParticipantKind = z.enum(['agent', 'human']);
|
|
11
|
+
/**
|
|
12
|
+
* A guest may read the room and leave it. Nothing else: no messages, no
|
|
13
|
+
* handovers, no acknowledgements, no invites, no control.
|
|
14
|
+
*/
|
|
15
|
+
export const ParticipantRole = z.enum(['guest', 'member', 'controller']);
|
|
16
|
+
/**
|
|
17
|
+
* What an adapter reports actually happened, kept distinct from what the
|
|
18
|
+
* controller asked for. A human message alone never claims cancellation.
|
|
19
|
+
*/
|
|
20
|
+
export const ControlOutcome = z.enum(['pause_requested', 'paused_between_turns', 'current_turn_cancelled', 'tool_cancellation_unknown', 'resumed', 'unsupported', 'disconnected']);
|
|
21
|
+
export const AdapterCapabilities = z.object({
|
|
22
|
+
/** The adapter can deliver an unsolicited message into a running session. */
|
|
23
|
+
deliverUnsolicited: z.boolean().default(false),
|
|
24
|
+
/** The adapter can end the model's current turn on request. */
|
|
25
|
+
cancelTurn: z.boolean().default(false),
|
|
26
|
+
/** The adapter can stop a tool the session is currently running. */
|
|
27
|
+
cancelTool: z.boolean().default(false),
|
|
28
|
+
runtime: z.string().min(1).max(128).optional(),
|
|
29
|
+
runtimeVersion: z.string().min(1).max(64).optional()
|
|
30
|
+
});
|
|
31
|
+
const messagePayload = z.object({
|
|
32
|
+
text: z
|
|
33
|
+
.string()
|
|
34
|
+
.min(1)
|
|
35
|
+
.max(32 * 1024)
|
|
36
|
+
.refine((text) => text.trim().length > 0, 'message must not be blank'),
|
|
37
|
+
priority: z.enum(['normal', 'priority']).default('normal'),
|
|
38
|
+
responseStage: z.enum(['progress', 'final']).optional()
|
|
39
|
+
});
|
|
40
|
+
/** A participant confirms receipt of a message; only the target satisfies an addressed request. */
|
|
41
|
+
export const MessageAction = z.enum(['working', 'waiting', 'no_action', 'declined', 'reply_pending', 'done']);
|
|
42
|
+
/** Optional status fields extend the receipt envelope so older clients can still parse it. */
|
|
43
|
+
const messageReceivedPayload = z.object({ eventId: EventId, stage: z.literal('read').optional(), action: MessageAction.optional(), reason: z.string().max(1024).optional(), responseEventId: EventId.optional() });
|
|
44
|
+
const deliveryFailedPayload = z.object({ eventId: EventId, reason: z.string().min(1).max(1024), stage: z.enum(['delivery', 'execution', 'publishing']).optional() });
|
|
45
|
+
const handoverOfferedPayload = z.object({ handoverId: HandoverId, revision: z.number().int().min(1), document: HandoverDocument });
|
|
46
|
+
const handoverAcceptedPayload = z.object({ handoverId: HandoverId, revision: z.number().int().min(1), note: z.string().max(2048).optional() });
|
|
47
|
+
const handoverDeclinedPayload = z.object({ handoverId: HandoverId, revision: z.number().int().min(1), reason: z.string().max(2048).optional() });
|
|
48
|
+
const participantJoinedPayload = z.object({
|
|
49
|
+
participantId: ParticipantId,
|
|
50
|
+
displayName: z.string().min(1).max(64),
|
|
51
|
+
kind: ParticipantKind,
|
|
52
|
+
role: ParticipantRole,
|
|
53
|
+
capabilities: AdapterCapabilities.optional()
|
|
54
|
+
});
|
|
55
|
+
const participantLeftPayload = z.object({ participantId: ParticipantId });
|
|
56
|
+
const participantRevokedPayload = z.object({ participantId: ParticipantId });
|
|
57
|
+
/** `interrupt` asks the receiver to stop the agent's current turn too, not only to hold later work. */
|
|
58
|
+
const controlPausePayload = z.object({ targetParticipantId: ParticipantId, revision: z.number().int().min(1), reason: z.string().max(512).optional(), interrupt: z.boolean().optional() });
|
|
59
|
+
const controlResumePayload = z.object({ targetParticipantId: ParticipantId, revision: z.number().int().min(1) });
|
|
60
|
+
const controlAckPayload = z.object({ targetParticipantId: ParticipantId, revision: z.number().int().min(1), outcome: ControlOutcome, detail: z.string().max(512).optional() });
|
|
61
|
+
/** `reason` is absent on closures recorded before auto-close existed, which were manual. */
|
|
62
|
+
const roomClosedPayload = z.object({ exportWindowEndsAt: z.number().int().nonnegative(), reason: CloseReasonSchema.optional() });
|
|
63
|
+
const roomAutoCloseChangedPayload = z.object({ autoClose: AutoClosePolicySchema, previous: AutoClosePolicySchema });
|
|
64
|
+
const roomRenamedPayload = z.object({ name: z.string().min(1).max(64), previousName: z.string().min(1).max(64) });
|
|
65
|
+
const roomExpiryChangedPayload = z.object({ expiresAt: z.number().int().nonnegative().nullable(), previousExpiresAt: z.number().int().nonnegative().nullable() });
|
|
66
|
+
/** `inviteRole` is present only when the invitation default changed; older clients ignore it. */
|
|
67
|
+
const roomAccessChangedPayload = z.object({ joinPolicy: z.enum(['invite_only', 'open_to_guests']), inviteRole: z.enum(['member', 'guest']).optional() });
|
|
68
|
+
/**
|
|
69
|
+
* An account was asked into the room by its handle, or that invitation was withdrawn.
|
|
70
|
+
* Only a relay with accounts records these; the person's later arrival is an ordinary join.
|
|
71
|
+
*/
|
|
72
|
+
const roomInvitationChangedPayload = z.object({ handle: z.string().min(1).max(64), state: z.enum(['invited', 'withdrawn']), role: z.enum(['member', 'guest']).optional(), agents: z.number().int().nonnegative().optional() });
|
|
73
|
+
/** Event types a client may submit. Membership and control events are server-authored. */
|
|
74
|
+
export const CLIENT_EVENT_TYPES = ['message', 'message.received', 'message.delivery_failed', 'handover.offered', 'handover.accepted', 'handover.declined', 'control.ack'];
|
|
75
|
+
export const EventSubmission = z.discriminatedUnion('type', [
|
|
76
|
+
z.object({ type: z.literal('message'), payload: messagePayload }),
|
|
77
|
+
z.object({ type: z.literal('message.received'), payload: messageReceivedPayload }),
|
|
78
|
+
z.object({ type: z.literal('message.delivery_failed'), payload: deliveryFailedPayload }),
|
|
79
|
+
z.object({ type: z.literal('handover.offered'), payload: handoverOfferedPayload }),
|
|
80
|
+
z.object({ type: z.literal('handover.accepted'), payload: handoverAcceptedPayload }),
|
|
81
|
+
z.object({ type: z.literal('handover.declined'), payload: handoverDeclinedPayload }),
|
|
82
|
+
z.object({ type: z.literal('control.ack'), payload: controlAckPayload })
|
|
83
|
+
]);
|
|
84
|
+
export const EventBody = z.discriminatedUnion('type', [
|
|
85
|
+
z.object({ type: z.literal('message'), payload: messagePayload }),
|
|
86
|
+
z.object({ type: z.literal('message.received'), payload: messageReceivedPayload }),
|
|
87
|
+
z.object({ type: z.literal('message.delivery_failed'), payload: deliveryFailedPayload }),
|
|
88
|
+
z.object({ type: z.literal('handover.offered'), payload: handoverOfferedPayload }),
|
|
89
|
+
z.object({ type: z.literal('handover.accepted'), payload: handoverAcceptedPayload }),
|
|
90
|
+
z.object({ type: z.literal('handover.declined'), payload: handoverDeclinedPayload }),
|
|
91
|
+
z.object({ type: z.literal('participant.joined'), payload: participantJoinedPayload }),
|
|
92
|
+
z.object({ type: z.literal('participant.renamed'), payload: z.object({ participantId: ParticipantId, previousName: z.string(), name: ParticipantName, source: NameSource }) }),
|
|
93
|
+
z.object({ type: z.literal('participant.left'), payload: participantLeftPayload }),
|
|
94
|
+
z.object({ type: z.literal('participant.revoked'), payload: participantRevokedPayload }),
|
|
95
|
+
z.object({ type: z.literal('control.pause'), payload: controlPausePayload }),
|
|
96
|
+
z.object({ type: z.literal('control.resume'), payload: controlResumePayload }),
|
|
97
|
+
z.object({ type: z.literal('control.ack'), payload: controlAckPayload }),
|
|
98
|
+
z.object({ type: z.literal('room.closed'), payload: roomClosedPayload }),
|
|
99
|
+
z.object({ type: z.literal('room.auto_close_changed'), payload: roomAutoCloseChangedPayload }),
|
|
100
|
+
z.object({ type: z.literal('room.renamed'), payload: roomRenamedPayload }),
|
|
101
|
+
z.object({ type: z.literal('room.expiry_changed'), payload: roomExpiryChangedPayload }),
|
|
102
|
+
z.object({ type: z.literal('room.access_changed'), payload: roomAccessChangedPayload }),
|
|
103
|
+
z.object({ type: z.literal('room.local_join_changed'), payload: z.object({ localJoin: z.boolean() }) }),
|
|
104
|
+
z.object({ type: z.literal('room.invitation_changed'), payload: roomInvitationChangedPayload }),
|
|
105
|
+
z.object({ type: z.literal('room.lock_changed'), payload: z.object({ locked: z.boolean() }) }),
|
|
106
|
+
z.object({ type: z.literal('participant.mute_changed'), payload: z.object({ participantId: ParticipantId, muted: z.boolean() }) }),
|
|
107
|
+
z.object({ type: z.literal('participant.role_changed'), payload: z.object({ participantId: ParticipantId, role: ParticipantRole, previousRole: ParticipantRole }) }),
|
|
108
|
+
z.object({ type: z.literal('conversation.turn_changed'), payload: z.object({ action: z.enum(['claimed', 'working', 'passed', 'skipped', 'cancelled', 'mode']), requestIds: z.array(EventId).max(32), participantIds: z.array(ParticipantId).max(32), mode: z.enum(['sequential', 'parallel']) }) })
|
|
109
|
+
]);
|
|
110
|
+
const envelope = z.object({
|
|
111
|
+
protocolVersion: z.literal(PROTOCOL_VERSION),
|
|
112
|
+
roomId: RoomId,
|
|
113
|
+
seq: z.number().int().min(1),
|
|
114
|
+
eventId: EventId,
|
|
115
|
+
/** Null for events the server authored on its own behalf, such as expiry-driven closure. */
|
|
116
|
+
senderId: ParticipantId.nullable(),
|
|
117
|
+
idempotencyKey: z.string().min(1).max(128).nullable(),
|
|
118
|
+
/** A routing hint, not a private-message boundary: every member reads the whole transcript. */
|
|
119
|
+
recipientId: ParticipantId.nullable(),
|
|
120
|
+
recipientIds: z.array(ParticipantId).min(1).max(32).optional(),
|
|
121
|
+
/** Preserves whether this group was addressed as all, including an untagged chat message. */
|
|
122
|
+
allRecipients: z.boolean().optional(),
|
|
123
|
+
replyTo: EventId.nullable(),
|
|
124
|
+
/** A conversational follow-up; unlike replyTo, this does not complete a request. */
|
|
125
|
+
quoteOf: EventId.optional(),
|
|
126
|
+
at: z.number().int().nonnegative()
|
|
127
|
+
});
|
|
128
|
+
export const RoomEvent = z.intersection(envelope, EventBody);
|
|
129
|
+
export const SendEventRequest = z.intersection(z.object({
|
|
130
|
+
idempotencyKey: z.string().min(1).max(128),
|
|
131
|
+
recipientId: ParticipantId.optional(),
|
|
132
|
+
recipientIds: z.array(ParticipantId).min(1).max(32).optional(),
|
|
133
|
+
allRecipients: z.boolean().optional(),
|
|
134
|
+
turnToken: z.string().min(16).max(128).optional(),
|
|
135
|
+
replyTo: EventId.optional(),
|
|
136
|
+
quoteOf: EventId.optional()
|
|
137
|
+
}), EventSubmission);
|
|
138
|
+
export function isClientEventType(type) {
|
|
139
|
+
return CLIENT_EVENT_TYPES.includes(type);
|
|
140
|
+
}
|
|
141
|
+
/** Byte size the payload counts against room quota. */
|
|
142
|
+
export function payloadBytes(event) {
|
|
143
|
+
return new TextEncoder().encode(JSON.stringify(event.payload)).length;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const HandoverMode: z.ZodEnum<["sequential", "concurrent"]>;
|
|
3
|
+
export type HandoverMode = z.infer<typeof HandoverMode>;
|
|
4
|
+
export declare const TestResult: z.ZodEnum<["passed", "failed", "not_run"]>;
|
|
5
|
+
export type TestResult = z.infer<typeof TestResult>;
|
|
6
|
+
export declare const RepositoryRef: z.ZodObject<{
|
|
7
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
8
|
+
branch: z.ZodString;
|
|
9
|
+
commit: z.ZodString;
|
|
10
|
+
worktreePath: z.ZodOptional<z.ZodString>;
|
|
11
|
+
dirty: z.ZodBoolean;
|
|
12
|
+
/** Paths the sender knows the receiver cannot reach yet. Flagged as missing until transferred. */
|
|
13
|
+
missingPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
dirty: boolean;
|
|
16
|
+
branch: string;
|
|
17
|
+
commit: string;
|
|
18
|
+
missingPaths: string[];
|
|
19
|
+
remote?: string | undefined;
|
|
20
|
+
worktreePath?: string | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
dirty: boolean;
|
|
23
|
+
branch: string;
|
|
24
|
+
commit: string;
|
|
25
|
+
remote?: string | undefined;
|
|
26
|
+
worktreePath?: string | undefined;
|
|
27
|
+
missingPaths?: string[] | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
export type RepositoryRef = z.infer<typeof RepositoryRef>;
|
|
30
|
+
export declare const TestsRef: z.ZodObject<{
|
|
31
|
+
command: z.ZodString;
|
|
32
|
+
result: z.ZodEnum<["passed", "failed", "not_run"]>;
|
|
33
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
command: string;
|
|
36
|
+
result: "passed" | "failed" | "not_run";
|
|
37
|
+
notes?: string | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
command: string;
|
|
40
|
+
result: "passed" | "failed" | "not_run";
|
|
41
|
+
notes?: string | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
export type TestsRef = z.infer<typeof TestsRef>;
|
|
44
|
+
export declare const HandoverMetadata: z.ZodObject<{
|
|
45
|
+
goal: z.ZodString;
|
|
46
|
+
recipient: z.ZodString;
|
|
47
|
+
mode: z.ZodEnum<["sequential", "concurrent"]>;
|
|
48
|
+
nextAction: z.ZodString;
|
|
49
|
+
decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
50
|
+
blockers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
51
|
+
repository: z.ZodOptional<z.ZodObject<{
|
|
52
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
53
|
+
branch: z.ZodString;
|
|
54
|
+
commit: z.ZodString;
|
|
55
|
+
worktreePath: z.ZodOptional<z.ZodString>;
|
|
56
|
+
dirty: z.ZodBoolean;
|
|
57
|
+
/** Paths the sender knows the receiver cannot reach yet. Flagged as missing until transferred. */
|
|
58
|
+
missingPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
dirty: boolean;
|
|
61
|
+
branch: string;
|
|
62
|
+
commit: string;
|
|
63
|
+
missingPaths: string[];
|
|
64
|
+
remote?: string | undefined;
|
|
65
|
+
worktreePath?: string | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
dirty: boolean;
|
|
68
|
+
branch: string;
|
|
69
|
+
commit: string;
|
|
70
|
+
remote?: string | undefined;
|
|
71
|
+
worktreePath?: string | undefined;
|
|
72
|
+
missingPaths?: string[] | undefined;
|
|
73
|
+
}>>;
|
|
74
|
+
tests: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
command: z.ZodString;
|
|
76
|
+
result: z.ZodEnum<["passed", "failed", "not_run"]>;
|
|
77
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, "strip", z.ZodTypeAny, {
|
|
79
|
+
command: string;
|
|
80
|
+
result: "passed" | "failed" | "not_run";
|
|
81
|
+
notes?: string | undefined;
|
|
82
|
+
}, {
|
|
83
|
+
command: string;
|
|
84
|
+
result: "passed" | "failed" | "not_run";
|
|
85
|
+
notes?: string | undefined;
|
|
86
|
+
}>>;
|
|
87
|
+
}, "strip", z.ZodTypeAny, {
|
|
88
|
+
mode: "sequential" | "concurrent";
|
|
89
|
+
goal: string;
|
|
90
|
+
recipient: string;
|
|
91
|
+
nextAction: string;
|
|
92
|
+
decisions: string[];
|
|
93
|
+
blockers: string[];
|
|
94
|
+
repository?: {
|
|
95
|
+
dirty: boolean;
|
|
96
|
+
branch: string;
|
|
97
|
+
commit: string;
|
|
98
|
+
missingPaths: string[];
|
|
99
|
+
remote?: string | undefined;
|
|
100
|
+
worktreePath?: string | undefined;
|
|
101
|
+
} | undefined;
|
|
102
|
+
tests?: {
|
|
103
|
+
command: string;
|
|
104
|
+
result: "passed" | "failed" | "not_run";
|
|
105
|
+
notes?: string | undefined;
|
|
106
|
+
} | undefined;
|
|
107
|
+
}, {
|
|
108
|
+
mode: "sequential" | "concurrent";
|
|
109
|
+
goal: string;
|
|
110
|
+
recipient: string;
|
|
111
|
+
nextAction: string;
|
|
112
|
+
decisions?: string[] | undefined;
|
|
113
|
+
blockers?: string[] | undefined;
|
|
114
|
+
repository?: {
|
|
115
|
+
dirty: boolean;
|
|
116
|
+
branch: string;
|
|
117
|
+
commit: string;
|
|
118
|
+
remote?: string | undefined;
|
|
119
|
+
worktreePath?: string | undefined;
|
|
120
|
+
missingPaths?: string[] | undefined;
|
|
121
|
+
} | undefined;
|
|
122
|
+
tests?: {
|
|
123
|
+
command: string;
|
|
124
|
+
result: "passed" | "failed" | "not_run";
|
|
125
|
+
notes?: string | undefined;
|
|
126
|
+
} | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
export type HandoverMetadata = z.infer<typeof HandoverMetadata>;
|
|
129
|
+
export declare const HandoverDocument: z.ZodObject<{
|
|
130
|
+
metadata: z.ZodObject<{
|
|
131
|
+
goal: z.ZodString;
|
|
132
|
+
recipient: z.ZodString;
|
|
133
|
+
mode: z.ZodEnum<["sequential", "concurrent"]>;
|
|
134
|
+
nextAction: z.ZodString;
|
|
135
|
+
decisions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
136
|
+
blockers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
137
|
+
repository: z.ZodOptional<z.ZodObject<{
|
|
138
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
139
|
+
branch: z.ZodString;
|
|
140
|
+
commit: z.ZodString;
|
|
141
|
+
worktreePath: z.ZodOptional<z.ZodString>;
|
|
142
|
+
dirty: z.ZodBoolean;
|
|
143
|
+
/** Paths the sender knows the receiver cannot reach yet. Flagged as missing until transferred. */
|
|
144
|
+
missingPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
145
|
+
}, "strip", z.ZodTypeAny, {
|
|
146
|
+
dirty: boolean;
|
|
147
|
+
branch: string;
|
|
148
|
+
commit: string;
|
|
149
|
+
missingPaths: string[];
|
|
150
|
+
remote?: string | undefined;
|
|
151
|
+
worktreePath?: string | undefined;
|
|
152
|
+
}, {
|
|
153
|
+
dirty: boolean;
|
|
154
|
+
branch: string;
|
|
155
|
+
commit: string;
|
|
156
|
+
remote?: string | undefined;
|
|
157
|
+
worktreePath?: string | undefined;
|
|
158
|
+
missingPaths?: string[] | undefined;
|
|
159
|
+
}>>;
|
|
160
|
+
tests: z.ZodOptional<z.ZodObject<{
|
|
161
|
+
command: z.ZodString;
|
|
162
|
+
result: z.ZodEnum<["passed", "failed", "not_run"]>;
|
|
163
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
164
|
+
}, "strip", z.ZodTypeAny, {
|
|
165
|
+
command: string;
|
|
166
|
+
result: "passed" | "failed" | "not_run";
|
|
167
|
+
notes?: string | undefined;
|
|
168
|
+
}, {
|
|
169
|
+
command: string;
|
|
170
|
+
result: "passed" | "failed" | "not_run";
|
|
171
|
+
notes?: string | undefined;
|
|
172
|
+
}>>;
|
|
173
|
+
}, "strip", z.ZodTypeAny, {
|
|
174
|
+
mode: "sequential" | "concurrent";
|
|
175
|
+
goal: string;
|
|
176
|
+
recipient: string;
|
|
177
|
+
nextAction: string;
|
|
178
|
+
decisions: string[];
|
|
179
|
+
blockers: string[];
|
|
180
|
+
repository?: {
|
|
181
|
+
dirty: boolean;
|
|
182
|
+
branch: string;
|
|
183
|
+
commit: string;
|
|
184
|
+
missingPaths: string[];
|
|
185
|
+
remote?: string | undefined;
|
|
186
|
+
worktreePath?: string | undefined;
|
|
187
|
+
} | undefined;
|
|
188
|
+
tests?: {
|
|
189
|
+
command: string;
|
|
190
|
+
result: "passed" | "failed" | "not_run";
|
|
191
|
+
notes?: string | undefined;
|
|
192
|
+
} | undefined;
|
|
193
|
+
}, {
|
|
194
|
+
mode: "sequential" | "concurrent";
|
|
195
|
+
goal: string;
|
|
196
|
+
recipient: string;
|
|
197
|
+
nextAction: string;
|
|
198
|
+
decisions?: string[] | undefined;
|
|
199
|
+
blockers?: string[] | undefined;
|
|
200
|
+
repository?: {
|
|
201
|
+
dirty: boolean;
|
|
202
|
+
branch: string;
|
|
203
|
+
commit: string;
|
|
204
|
+
remote?: string | undefined;
|
|
205
|
+
worktreePath?: string | undefined;
|
|
206
|
+
missingPaths?: string[] | undefined;
|
|
207
|
+
} | undefined;
|
|
208
|
+
tests?: {
|
|
209
|
+
command: string;
|
|
210
|
+
result: "passed" | "failed" | "not_run";
|
|
211
|
+
notes?: string | undefined;
|
|
212
|
+
} | undefined;
|
|
213
|
+
}>;
|
|
214
|
+
/** Current state, completed work, and anything else the sender wrote as prose. */
|
|
215
|
+
body: z.ZodString;
|
|
216
|
+
}, "strip", z.ZodTypeAny, {
|
|
217
|
+
metadata: {
|
|
218
|
+
mode: "sequential" | "concurrent";
|
|
219
|
+
goal: string;
|
|
220
|
+
recipient: string;
|
|
221
|
+
nextAction: string;
|
|
222
|
+
decisions: string[];
|
|
223
|
+
blockers: string[];
|
|
224
|
+
repository?: {
|
|
225
|
+
dirty: boolean;
|
|
226
|
+
branch: string;
|
|
227
|
+
commit: string;
|
|
228
|
+
missingPaths: string[];
|
|
229
|
+
remote?: string | undefined;
|
|
230
|
+
worktreePath?: string | undefined;
|
|
231
|
+
} | undefined;
|
|
232
|
+
tests?: {
|
|
233
|
+
command: string;
|
|
234
|
+
result: "passed" | "failed" | "not_run";
|
|
235
|
+
notes?: string | undefined;
|
|
236
|
+
} | undefined;
|
|
237
|
+
};
|
|
238
|
+
body: string;
|
|
239
|
+
}, {
|
|
240
|
+
metadata: {
|
|
241
|
+
mode: "sequential" | "concurrent";
|
|
242
|
+
goal: string;
|
|
243
|
+
recipient: string;
|
|
244
|
+
nextAction: string;
|
|
245
|
+
decisions?: string[] | undefined;
|
|
246
|
+
blockers?: string[] | undefined;
|
|
247
|
+
repository?: {
|
|
248
|
+
dirty: boolean;
|
|
249
|
+
branch: string;
|
|
250
|
+
commit: string;
|
|
251
|
+
remote?: string | undefined;
|
|
252
|
+
worktreePath?: string | undefined;
|
|
253
|
+
missingPaths?: string[] | undefined;
|
|
254
|
+
} | undefined;
|
|
255
|
+
tests?: {
|
|
256
|
+
command: string;
|
|
257
|
+
result: "passed" | "failed" | "not_run";
|
|
258
|
+
notes?: string | undefined;
|
|
259
|
+
} | undefined;
|
|
260
|
+
};
|
|
261
|
+
body: string;
|
|
262
|
+
}>;
|
|
263
|
+
export type HandoverDocument = z.infer<typeof HandoverDocument>;
|
|
264
|
+
export declare const HandoverState: z.ZodEnum<["offered", "accepted", "declined"]>;
|
|
265
|
+
export type HandoverState = z.infer<typeof HandoverState>;
|
|
266
|
+
//# sourceMappingURL=handover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handover.d.ts","sourceRoot":"","sources":["../src/handover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,YAAY,yCAAuC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,UAAU,4CAA0C,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,aAAa;;;;;;IAMtB,kGAAkG;;;;;;;;;;;;;;;;EAEpG,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;;;;;;;;;EAInB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;QAZzB,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBpG,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;YAxBzB,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BlG,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEpF,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,gDAA8C,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
package/dist/handover.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//! The handover document: machine-readable fields in YAML frontmatter, opaque
|
|
2
|
+
//! prose in the body. A missing or malformed field is a validation error, never
|
|
3
|
+
//! a heading the parser guessed at.
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export const HandoverMode = z.enum(['sequential', 'concurrent']);
|
|
6
|
+
export const TestResult = z.enum(['passed', 'failed', 'not_run']);
|
|
7
|
+
export const RepositoryRef = z.object({
|
|
8
|
+
remote: z.string().min(1).max(512).optional(),
|
|
9
|
+
branch: z.string().min(1).max(256),
|
|
10
|
+
commit: z.string().regex(/^[0-9a-f]{7,40}$/, 'expected a hex commit sha'),
|
|
11
|
+
worktreePath: z.string().min(1).max(1024).optional(),
|
|
12
|
+
dirty: z.boolean(),
|
|
13
|
+
/** Paths the sender knows the receiver cannot reach yet. Flagged as missing until transferred. */
|
|
14
|
+
missingPaths: z.array(z.string().min(1).max(1024)).max(100).default([])
|
|
15
|
+
});
|
|
16
|
+
export const TestsRef = z.object({
|
|
17
|
+
command: z.string().min(1).max(512),
|
|
18
|
+
result: TestResult,
|
|
19
|
+
notes: z.string().max(2048).optional()
|
|
20
|
+
});
|
|
21
|
+
export const HandoverMetadata = z.object({
|
|
22
|
+
goal: z.string().min(1).max(2048),
|
|
23
|
+
recipient: z.string().min(1).max(128),
|
|
24
|
+
mode: HandoverMode,
|
|
25
|
+
nextAction: z.string().min(1).max(2048),
|
|
26
|
+
decisions: z.array(z.string().min(1).max(1024)).max(50).default([]),
|
|
27
|
+
blockers: z.array(z.string().min(1).max(1024)).max(50).default([]),
|
|
28
|
+
repository: RepositoryRef.optional(),
|
|
29
|
+
tests: TestsRef.optional()
|
|
30
|
+
});
|
|
31
|
+
export const HandoverDocument = z.object({
|
|
32
|
+
metadata: HandoverMetadata,
|
|
33
|
+
/** Current state, completed work, and anything else the sender wrote as prose. */
|
|
34
|
+
body: z.string().max(24 * 1024)
|
|
35
|
+
});
|
|
36
|
+
export const HandoverState = z.enum(['offered', 'accepted', 'declined']);
|
|
37
|
+
//# sourceMappingURL=handover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handover.js","sourceRoot":"","sources":["../src/handover.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAChF,oCAAoC;AAEpC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAGlE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;IACzE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACpD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,kGAAkG;IAClG,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1E,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACrC,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClE,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,gBAAgB;IAC1B,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;CAClC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC"}
|