@butterbase/shared 0.4.0 → 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"office.d.ts","sourceRoot":"","sources":["../src/office.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wFAAwF;AACxF,eAAO,MAAM,cAAc,iXAMjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAWzD,eAAO,MAAM,iBAAiB;;;;;;;;;EAAqE,CAAC;AACpG,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AACZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK9B,CAAC;AACZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;EAG5B,CAAC;AACZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACnF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACvF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACnF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACrF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGtB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B7B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAErE,eAAO,MAAM,kBAAkB,qvBAWrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAChE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAG5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,sBAAsB,GAAG,2BAA2B,CAAC;CACvE;AACD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMpB,CAAC;AACZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA2D,CAAC;AAGjG,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAO3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,SAAS,MAAM,CAAC,GAClE,CAAC,SAAS,iBAAiB,GAAG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AACD,MAAM,WAAW,oBAAoB;IAAG,MAAM,CAAC,EAAE,WAAW,CAAC;CAAE;AAC/D,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAAG,cAAc,CAAC,EAAE,MAAM,CAAC;CAAE;AAC7F,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAAG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AACpG,MAAM,WAAW,UAAU,CAAC,CAAC;IAAI,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAAE;AAC1E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AACD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AACD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AACD,iGAAiG;AACjG,MAAM,WAAW,kBAAkB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAAE;AACzF,MAAM,WAAW,oBAAoB;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAAE;AAC7E,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAAE"}
package/dist/office.js ADDED
@@ -0,0 +1,132 @@
1
+ import { z } from 'zod';
2
+ /** Public organization-scoped Office protocol. No app or browser session is implied. */
3
+ export const OFFICE_ACTIONS = [
4
+ 'status', 'enable', 'pause', 'resume', 'list_decisions', 'get_decision',
5
+ 'get_decision_context', 'approve', 'deny', 'create_conversation', 'list_conversations',
6
+ 'get_conversation', 'ask', 'list_memory', 'search_memory', 'get_source_artifact',
7
+ 'record_decision', 'record_commitment', 'record_learning', 'list_principles',
8
+ 'get_principle', 'record_principle',
9
+ ];
10
+ const id = z.string().trim().min(1).max(256);
11
+ const text = z.string().trim().min(1);
12
+ const timestamp = z.string().datetime();
13
+ const json = z.record(z.unknown());
14
+ const salience = z.enum(['ambient', 'normal', 'archival']);
15
+ const org = { org_id: z.string().uuid() };
16
+ const keyed = { idempotency_key: id };
17
+ const page = { cursor: z.string().trim().min(1).max(2048).optional(), limit: z.number().int().min(1).max(100).optional() };
18
+ const decision = { decision_id: id, decision_source: z.enum(['office', 'substrate']).default('office') };
19
+ export const decisionRefSchema = z.object({ source: z.enum(['office', 'substrate']), id }).strict();
20
+ // Mirror the four native capability payloads; strictness prevents silent scope or policy injection.
21
+ export const officeRecordDecisionSchema = z.object({
22
+ title: text, rationale: z.string().optional(),
23
+ kind: z.enum(['operational', 'strategic', 'mission', 'vision', 'principle', 'policy_decision']),
24
+ salience: salience.default('normal'), source_artifact_id: id.optional(),
25
+ }).strict();
26
+ export const officeRecordCommitmentSchema = z.object({
27
+ description: text, from_entity: id.optional(), to_entity: id.optional(),
28
+ amount: z.number().finite().optional(), unit: z.string().optional(), due_at: z.string().optional(),
29
+ status: z.enum(['proposed', 'tentative', 'confirmed', 'fulfilled', 'expired', 'broken']),
30
+ source_artifact_id: id.optional(), attrs: json.optional(),
31
+ }).strict();
32
+ export const officeRecordLearningSchema = z.object({
33
+ title: text, description: text, resolution_taken: z.string().optional(),
34
+ related_decision_id: id.optional(), source_artifact_id: id.optional(),
35
+ }).strict();
36
+ export const officeRecordPrincipleSchema = z.object({
37
+ title: text, rationale: z.string().optional(), applies_to: json, constraint_spec: json,
38
+ salience: salience.default('ambient'),
39
+ }).strict();
40
+ export const officeMemorySchemas = {
41
+ record_decision: officeRecordDecisionSchema, record_commitment: officeRecordCommitmentSchema,
42
+ record_learning: officeRecordLearningSchema, record_principle: officeRecordPrincipleSchema,
43
+ };
44
+ export const officeActionSchema = z.discriminatedUnion('action', [
45
+ z.object({ ...org, action: z.literal('status'), confirmation_id: id.optional() }).strict(),
46
+ z.object({ ...org, ...keyed, action: z.literal('enable') }).strict(),
47
+ z.object({ ...org, ...keyed, action: z.literal('pause') }).strict(),
48
+ z.object({ ...org, ...keyed, action: z.literal('resume') }).strict(),
49
+ z.object({ ...org, ...page, action: z.literal('list_decisions'), status: z.enum(['pending', 'resolved', 'all']).default('pending') }).strict(),
50
+ z.object({ ...org, ...decision, action: z.literal('get_decision') }).strict(),
51
+ z.object({ ...org, ...decision, action: z.literal('get_decision_context'), limit: page.limit }).strict(),
52
+ z.object({ ...org, ...decision, ...keyed, action: z.literal('approve') }).strict(),
53
+ z.object({ ...org, ...decision, action: z.literal('deny'), reason: text.max(4000) }).strict(),
54
+ z.object({ ...org, ...keyed, action: z.literal('create_conversation'), title: text.max(200).optional() }).strict(),
55
+ z.object({ ...org, ...page, action: z.literal('list_conversations') }).strict(),
56
+ z.object({ ...org, action: z.literal('get_conversation'), conversation_id: id,
57
+ turn_id: id.optional(), after_sequence: z.number().int().nonnegative().optional(), limit: page.limit }).strict(),
58
+ z.object({ ...org, ...keyed, action: z.literal('ask'), message: text.max(100_000),
59
+ conversation_id: id.optional(), wait_ms: z.number().int().min(0).max(25_000).default(15_000) }).strict(),
60
+ z.object({ ...org, ...page, action: z.literal('list_memory'), kind: z.enum(['decision', 'commitment', 'learning']).optional() }).strict(),
61
+ z.object({ ...org, action: z.literal('search_memory'), query: text.max(4000), limit: page.limit }).strict(),
62
+ z.object({ ...org, action: z.literal('get_source_artifact'), source_artifact_id: id }).strict(),
63
+ z.object({ ...org, ...keyed, action: z.literal('record_decision'), payload: officeRecordDecisionSchema }).strict(),
64
+ z.object({ ...org, ...keyed, action: z.literal('record_commitment'), payload: officeRecordCommitmentSchema }).strict(),
65
+ z.object({ ...org, ...keyed, action: z.literal('record_learning'), payload: officeRecordLearningSchema }).strict(),
66
+ z.object({ ...org, ...page, action: z.literal('list_principles') }).strict(),
67
+ z.object({ ...org, action: z.literal('get_principle'), principle_id: id }).strict(),
68
+ z.object({ ...org, ...keyed, action: z.literal('record_principle'), payload: officeRecordPrincipleSchema }).strict(),
69
+ ]).superRefine((request, ctx) => {
70
+ if (request.action === 'get_conversation' && request.after_sequence !== undefined && !request.turn_id) {
71
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ['turn_id'], message: 'turn_id is required with after_sequence' });
72
+ }
73
+ });
74
+ export const OFFICE_ERROR_CODES = [
75
+ 'invalid_request', 'unauthenticated', 'forbidden', 'not_found', 'owner_required',
76
+ 'managed_credential_forbidden', 'credential_revoked', 'organization_scope_required',
77
+ 'paid_plan_required', 'account_suspended', 'credits_required', 'paused_by_owner',
78
+ 'credential_repair_required', 'service_unavailable', 'office_not_enabled',
79
+ 'idempotency_conflict', 'conversation_busy', 'conversation_awaiting_approval',
80
+ 'conversation_not_client_owned',
81
+ 'confirmation_expired', 'confirmation_changed', 'confirmation_unreviewable',
82
+ 'policy_conflict_requires_resolution', 'events_expired', 'event_limit_exceeded',
83
+ 'turn_interrupted', 'deadline_exceeded', 'execution_failed', 'outcome_unknown',
84
+ 'observation_timeout', 'connection_error', 'protocol_error', 'aborted',
85
+ ];
86
+ export const officeErrorSchema = z.object({
87
+ code: z.enum(OFFICE_ERROR_CODES), message: z.string(), decision: decisionRefSchema.optional(),
88
+ history: z.object({ turn_id: id, conversation_id: id,
89
+ state: z.enum(['running', 'awaiting_approval', 'completed', 'blocked', 'failed', 'interrupted']) }).strict().optional(),
90
+ }).strict();
91
+ const confirmationIdentity = { confirmation_id: id };
92
+ export const confirmationReceiptSchema = z.discriminatedUnion('state', [
93
+ z.object({ ...confirmationIdentity, state: z.literal('awaiting_confirmation'),
94
+ confirmation_url: z.string().url(), expires_at: timestamp }).strict(),
95
+ z.object({ ...confirmationIdentity, state: z.literal('executing') }).strict(),
96
+ z.object({ ...confirmationIdentity, state: z.literal('succeeded'), outcome: json }).strict(),
97
+ z.object({ ...confirmationIdentity, state: z.literal('rejected') }).strict(),
98
+ z.object({ ...confirmationIdentity, state: z.literal('expired') }).strict(),
99
+ z.object({ ...confirmationIdentity, state: z.literal('failed'), error: officeErrorSchema }).strict(),
100
+ z.object({ ...confirmationIdentity, state: z.literal('outcome_unknown'), error: officeErrorSchema }).strict(),
101
+ ]);
102
+ export const officeStatusSchema = z.object({
103
+ organization_id: z.string().uuid(), activation_state: z.enum(['not_enabled', 'enabling', 'enabled', 'failed']),
104
+ can_enable: z.boolean(), can_approve: z.boolean(), work_allowed: z.boolean(), paused: z.boolean(),
105
+ blocked_reason: z.enum(['paid_plan_required', 'account_suspended', 'credits_required',
106
+ 'credential_repair_required', 'service_unavailable', 'paused_by_owner']).nullable(),
107
+ last_turn: z.object({ at: timestamp, outcome: z.string() }).strict().nullable(),
108
+ }).strict();
109
+ export const officeStatusResultSchema = z.union([officeStatusSchema, confirmationReceiptSchema]);
110
+ const turnIdentity = { turn_id: id, conversation_id: id, output: z.string() };
111
+ export const officeTurnSchema = z.discriminatedUnion('state', [
112
+ z.object({ ...turnIdentity, state: z.literal('running') }).strict(),
113
+ z.object({ ...turnIdentity, state: z.literal('awaiting_approval'), decision: decisionRefSchema }).strict(),
114
+ z.object({ ...turnIdentity, state: z.literal('completed'), resolution: z.enum(['approved', 'denied']).optional() }).strict(),
115
+ z.object({ ...turnIdentity, state: z.literal('blocked'), error: officeErrorSchema }).strict(),
116
+ z.object({ ...turnIdentity, state: z.literal('failed'), error: officeErrorSchema }).strict(),
117
+ z.object({ ...turnIdentity, state: z.literal('interrupted'), error: officeErrorSchema }).strict(),
118
+ ]);
119
+ const sequence = { sequence: z.number().int().positive() };
120
+ export const officePublicEventSchema = z.discriminatedUnion('type', [
121
+ z.object({ ...sequence, type: z.literal('started'), turn_id: id, conversation_id: id }).strict(),
122
+ z.object({ ...sequence, type: z.literal('text_delta'), text: z.string() }).strict(),
123
+ z.object({ ...sequence, type: z.literal('message'), text: z.string() }).strict(),
124
+ z.object({ ...sequence, type: z.literal('approval_required'), decision: decisionRefSchema }).strict(),
125
+ z.object({ ...sequence, type: z.literal('decision_resolved'), decision: decisionRefSchema, resolution: z.enum(['approved', 'denied']) }).strict(),
126
+ z.object({ ...sequence, type: z.literal('blocked'), error: officeErrorSchema }).strict(),
127
+ z.object({ ...sequence, type: z.literal('completed'), turn_id: id, conversation_id: id,
128
+ resolution: z.enum(['approved', 'denied']).optional() }).strict(),
129
+ z.object({ ...sequence, type: z.literal('failed'), error: officeErrorSchema }).strict(),
130
+ z.object({ ...sequence, type: z.literal('interrupted'), error: officeErrorSchema }).strict(),
131
+ ]);
132
+ //# sourceMappingURL=office.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"office.js","sourceRoot":"","sources":["../src/office.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc;IACvE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,oBAAoB;IACtF,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB;IAChF,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB;IAC5E,eAAe,EAAE,kBAAkB;CAC3B,CAAC;AAGX,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AACxC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3D,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1C,MAAM,KAAK,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACtC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3H,MAAM,QAAQ,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAGpG,oGAAoG;AACpG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC/F,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,EAAE,CAAC,QAAQ,EAAE;CACxE,CAAC,CAAC,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxF,kBAAkB,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvE,mBAAmB,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,QAAQ,EAAE;CACtE,CAAC,CAAC,MAAM,EAAE,CAAC;AACZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI;IACtF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;CACtC,CAAC,CAAC,MAAM,EAAE,CAAC;AAKZ,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,eAAe,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,4BAA4B;IAC5F,eAAe,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,2BAA2B;CAClF,CAAC;AAGX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IAC/D,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACpE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACnE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACpE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9I,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACxG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAClF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAClH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,eAAe,EAAE,EAAE;QAC3E,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IAClH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/E,eAAe,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1G,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACzI,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3G,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE;IAClH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE;IACtH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE;IAClH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACnF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE;CACrH,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;IAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtG,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC,CAAC;IACvH,CAAC;AACH,CAAC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB;IAChF,8BAA8B,EAAE,oBAAoB,EAAE,6BAA6B;IACnF,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB;IAChF,4BAA4B,EAAE,qBAAqB,EAAE,oBAAoB;IACzE,sBAAsB,EAAE,mBAAmB,EAAE,gCAAgC;IAC7E,+BAA+B;IAC/B,sBAAsB,EAAE,sBAAsB,EAAE,2BAA2B;IAC3E,qCAAqC,EAAE,gBAAgB,EAAE,sBAAsB;IAC/E,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB;IAC9E,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS;CAC9D,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC7F,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;QAClD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1H,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,oBAAoB,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IACrE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC3E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACvE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3E,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IACpG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9G,CAAC,CAAC;AAcH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9G,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACjG,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB;QACnF,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChF,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAEjG,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IAC5D,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACnE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1G,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5H,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5F,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAClG,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAClE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAChG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACnF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAChF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IACrG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACjJ,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IACxF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE;QACpF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACnE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IACvF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7F,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=office.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"office.test.d.ts","sourceRoot":"","sources":["../src/office.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { OFFICE_ACTIONS, officeActionSchema, decisionRefSchema, officeStatusResultSchema, confirmationReceiptSchema, officeTurnSchema, officePublicEventSchema, officeErrorSchema, } from './office.js';
3
+ const org_id = 'a0000000-0000-4000-8000-000000000001';
4
+ const request = (action, fields = {}) => ({ action, org_id, ...fields });
5
+ describe('Office wire requests', () => {
6
+ it('accepts exactly the agreed action vocabulary', () => {
7
+ expect([...OFFICE_ACTIONS].sort()).toEqual([
8
+ 'status', 'enable', 'pause', 'resume', 'list_decisions', 'get_decision',
9
+ 'get_decision_context', 'approve', 'deny', 'create_conversation', 'list_conversations',
10
+ 'get_conversation', 'ask', 'list_memory', 'search_memory', 'get_source_artifact',
11
+ 'record_decision', 'record_commitment', 'record_learning', 'list_principles',
12
+ 'get_principle', 'record_principle',
13
+ ].sort());
14
+ expect(new Set(OFFICE_ACTIONS).size).toBe(22);
15
+ expect(officeActionSchema.safeParse(request('execute_anything')).success).toBe(false);
16
+ });
17
+ it.each([undefined, '', 'personal', 'not-a-uuid'])('requires explicit UUID org scope (%s)', (value) => {
18
+ expect(officeActionSchema.safeParse({ action: 'status', org_id: value }).success).toBe(false);
19
+ });
20
+ it.each([
21
+ request('status', { message: 'ignored?' }),
22
+ request('pause', { dangerously_skip_approval: true, idempotency_key: 'pause-1' }),
23
+ request('ask', { message: 'Hello', idempotency_key: 'ask-1', capability: 'send_email' }),
24
+ request('get_conversation', { conversation_id: 'conv-1', after_sequence: 1 }),
25
+ request('status', { confirmation_id: 'receipt-1', limit: 5 }),
26
+ request('search_memory', { query: 'hiring', cursor: 'unsupported-native-search-cursor' }),
27
+ ])('rejects unknown or inappropriate fields: %j', (input) => {
28
+ expect(officeActionSchema.safeParse(input).success).toBe(false);
29
+ });
30
+ it('requires decision IDs and uses an explicit source with Office as default', () => {
31
+ expect(officeActionSchema.safeParse(request('get_decision')).success).toBe(false);
32
+ expect(officeActionSchema.parse(request('get_decision', { decision_id: 'apr_1' })))
33
+ .toMatchObject({ decision_source: 'office', decision_id: 'apr_1' });
34
+ expect(decisionRefSchema.parse({ source: 'substrate', id: 'act_1' })).toEqual({ source: 'substrate', id: 'act_1' });
35
+ expect(decisionRefSchema.safeParse({ source: 'email', id: 'act_1' }).success).toBe(false);
36
+ expect(officeActionSchema.safeParse(request('deny', { decision_id: 'apr_1', reason: ' ' })).success).toBe(false);
37
+ });
38
+ it('requires idempotency on protected operations and bounds Ask observation', () => {
39
+ expect(officeActionSchema.safeParse(request('enable')).success).toBe(false);
40
+ expect(officeActionSchema.parse(request('ask', { message: 'Hello', idempotency_key: 'ask-1' })))
41
+ .toMatchObject({ wait_ms: 15_000 });
42
+ for (const wait_ms of [-1, 25_001, 1.5]) {
43
+ expect(officeActionSchema.safeParse(request('ask', { message: 'Hi', idempotency_key: 'k', wait_ms })).success).toBe(false);
44
+ }
45
+ });
46
+ it('accepts opaque page cursors through the backend limit independently of record ID length', () => {
47
+ for (const action of ['list_memory', 'list_principles', 'list_decisions', 'list_conversations']) {
48
+ expect(officeActionSchema.safeParse(request(action, { cursor: 'a'.repeat(700) })).success).toBe(true);
49
+ expect(officeActionSchema.safeParse(request(action, { cursor: 'a'.repeat(2049) })).success).toBe(false);
50
+ }
51
+ });
52
+ it('preserves nested memory JSON and rejects scope/approval injection', () => {
53
+ const payload = { description: 'Deliver order', status: 'confirmed', attrs: { order: { line_items: [1, 2] } } };
54
+ expect(officeActionSchema.parse(request('record_commitment', { payload, idempotency_key: 'com-1' })))
55
+ .toMatchObject({ payload });
56
+ expect(officeActionSchema.safeParse(request('record_commitment', { payload: { ...payload, org_id }, idempotency_key: 'c' })).success).toBe(false);
57
+ expect(officeActionSchema.safeParse(request('record_commitment', { payload: JSON.stringify(payload), idempotency_key: 'c' })).success).toBe(false);
58
+ });
59
+ it.each([
60
+ ['record_decision', { title: 'Missing kind' }],
61
+ ['record_commitment', { description: 'Missing status' }],
62
+ ['record_learning', { title: 'Missing description' }],
63
+ ['record_principle', { title: 'Missing policy' }],
64
+ ])('enforces native memory requirements for %s', (action, payload) => {
65
+ expect(officeActionSchema.safeParse(request(action, { payload, idempotency_key: 'memory-1' })).success).toBe(false);
66
+ });
67
+ it('accepts principle objects with native ambient default', () => {
68
+ expect(officeActionSchema.parse(request('record_principle', {
69
+ idempotency_key: 'principle-1',
70
+ payload: { title: 'No email', applies_to: { capability: 'send_email' }, constraint_spec: { type: 'forbid' } },
71
+ }))).toMatchObject({ payload: { salience: 'ambient', constraint_spec: { type: 'forbid' } } });
72
+ });
73
+ });
74
+ describe('Office wire results', () => {
75
+ const receipt = {
76
+ state: 'awaiting_confirmation', confirmation_id: 'receipt-1',
77
+ confirmation_url: 'https://office.butterbase.ai/office/confirm/receipt-1',
78
+ expires_at: '2026-10-29T20:00:00.000Z',
79
+ };
80
+ it('distinguishes lifecycle status from a pending confirmation', () => {
81
+ expect(officeStatusResultSchema.parse(receipt)).toEqual(receipt);
82
+ expect(officeStatusResultSchema.parse({
83
+ organization_id: org_id, activation_state: 'enabled', can_enable: false,
84
+ can_approve: true, work_allowed: false, blocked_reason: 'paused_by_owner', paused: true, last_turn: null,
85
+ })).toMatchObject({ paused: true });
86
+ expect(confirmationReceiptSchema.safeParse({ ...receipt, state: 'succeeded' }).success).toBe(false);
87
+ expect(confirmationReceiptSchema.parse({ confirmation_id: 'receipt-1', state: 'succeeded', outcome: { paused: true } }))
88
+ .toMatchObject({ state: 'succeeded', outcome: { paused: true } });
89
+ });
90
+ it('requires decision references on suspended turns and errors on failures', () => {
91
+ const turn = { turn_id: 'turn-1', conversation_id: 'conv-1', state: 'awaiting_approval', output: '' };
92
+ expect(officeTurnSchema.safeParse(turn).success).toBe(false);
93
+ expect(officeTurnSchema.parse({ ...turn, decision: { source: 'office', id: 'apr_1' } })).toMatchObject({ state: 'awaiting_approval' });
94
+ expect(officeTurnSchema.safeParse({ ...turn, state: 'failed' }).success).toBe(false);
95
+ });
96
+ it('accepts typed conflicts and rejects private/raw event payloads', () => {
97
+ expect(officeErrorSchema.parse({ code: 'idempotency_conflict', message: 'Use a new request key.' })).toMatchObject({ code: 'idempotency_conflict' });
98
+ expect(officePublicEventSchema.parse({ type: 'text_delta', sequence: 1, text: 'Hi' })).toEqual({ type: 'text_delta', sequence: 1, text: 'Hi' });
99
+ expect(officePublicEventSchema.safeParse({ type: 'text_delta', sequence: 1, text: 'Hi', tool_args: { token: 'secret' } }).success).toBe(false);
100
+ expect(officePublicEventSchema.safeParse({ type: 'text_delta', sequence: 0, text: 'Hi' }).success).toBe(false);
101
+ });
102
+ it('carries expired replay history pointers without implying live replay succeeded', () => {
103
+ expect(officeErrorSchema.safeParse({ code: 'events_expired', message: 'Replay expired',
104
+ history: { turn_id: 'turn-1', conversation_id: 'conv-1', state: 'completed' } }).success).toBe(true);
105
+ });
106
+ });
107
+ //# sourceMappingURL=office.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"office.test.js","sourceRoot":"","sources":["../src/office.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quota-enforcer.d.ts","sourceRoot":"","sources":["../../src/quota/quota-enforcer.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED,qBAAa,sBAAuB,YAAW,aAAa;IACpD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IAQjE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IACnE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAGvE"}
1
+ {"version":3,"file":"quota-enforcer.d.ts","sourceRoot":"","sources":["../../src/quota/quota-enforcer.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED,qBAAa,sBAAuB,YAAW,aAAa;IACpD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IAQjE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IACnE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAGvE"}
@@ -1,4 +1,8 @@
1
- import { randomUUID } from 'node:crypto';
1
+ // Use Web Crypto (globalThis.crypto) instead of importing from 'node:crypto'
2
+ // so this module bundles cleanly in browsers, Sandpack, and Workers alongside
3
+ // Node ≥19 (which exposes the same global). `randomUUID` is required to be
4
+ // available on globalThis.crypto by the Web Crypto spec.
5
+ const randomUUID = () => globalThis.crypto.randomUUID();
2
6
  export class UnlimitedQuotaEnforcer {
3
7
  async acquireLease(_userId, _req) {
4
8
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"quota-enforcer.js","sourceRoot":"","sources":["../../src/quota/quota-enforcer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2BzC,MAAM,OAAO,sBAAsB;IACjC,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAkB;QACpD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAU,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACnC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;SACtD,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAqB,IAAkB,CAAC;IAC5E,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,KAAgB;QAClD,OAAO,MAAM,CAAC,iBAAiB,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"quota-enforcer.js","sourceRoot":"","sources":["../../src/quota/quota-enforcer.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,yDAAyD;AACzD,MAAM,UAAU,GAAG,GAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AA2BhE,MAAM,OAAO,sBAAsB;IACjC,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAkB;QACpD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAU,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC,iBAAiB;YACnC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;SACtD,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAqB,IAAkB,CAAC;IAC5E,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,KAAgB;QAClD,OAAO,MAAM,CAAC,iBAAiB,CAAC;IAClC,CAAC;CACF"}
package/dist/types.d.ts CHANGED
@@ -105,6 +105,17 @@ export interface AuthContext {
105
105
  email?: string;
106
106
  appId?: string;
107
107
  rawToken?: string;
108
+ /**
109
+ * The organization this request is scoped to.
110
+ * - API-key auth: `api_keys.organization_id` (org the key was minted under).
111
+ * - JWT auth: caller's `platform_users.personal_organization_id`.
112
+ * - `end_user_jwt`, `function_key`, `anonymous`: null.
113
+ * Absent → the fallback path in downstream code (e.g. substrate overlay)
114
+ * may resolve via a control-DB lookup.
115
+ */
116
+ organizationId?: string | null;
117
+ /** Service-managed credentials cannot cross their bound organization. */
118
+ organizationLocked?: boolean;
108
119
  }
109
120
  /**
110
121
  * Caller identity surfaced as `ctx.caller` inside a deployed function.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqNA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@butterbase/shared",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Shared types and constants for Butterbase packages",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://butterbase.ai",
@@ -41,6 +41,9 @@
41
41
  "build": "tsc -b",
42
42
  "dev": "tsc -b --watch"
43
43
  },
44
+ "dependencies": {
45
+ "zod": "^3.24.0"
46
+ },
44
47
  "devDependencies": {
45
48
  "typescript": "^5.7.0",
46
49
  "@types/node": "^22.0.0",