@agent-deck/shared 1.10.6 → 1.11.1

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.
@@ -151,6 +151,15 @@ export declare const StatusLinePayloadSchema: z.ZodObject<{
151
151
  }>;
152
152
  export type DeckDisplaySource = z.infer<typeof DeckDisplaySourceSchema>;
153
153
  export type DeckCardCounts = z.infer<typeof DeckCardCountsSchema>;
154
+ /**
155
+ * Where the active deck for a session comes from (NOT-211).
156
+ * `session` = session-only override that differs from the saved workspace
157
+ * default (compared by deck id); `workspace` = following the saved workspace
158
+ * default (or nothing overriding it); `launch` = launch-selected deck with no
159
+ * saved default.
160
+ */
161
+ export declare const BindingActiveSourceSchema: z.ZodEnum<["session", "workspace", "launch"]>;
162
+ export type BindingActiveSource = z.infer<typeof BindingActiveSourceSchema>;
154
163
  export declare const DeckListEntrySchema: z.ZodObject<{
155
164
  id: z.ZodString;
156
165
  name: z.ZodString;
@@ -215,6 +224,38 @@ export declare const PendingAdminChallengeSchema: z.ZodObject<{
215
224
  deckName?: string | undefined;
216
225
  }>;
217
226
  export type PendingAdminChallenge = z.infer<typeof PendingAdminChallengeSchema>;
227
+ /**
228
+ * NOT-212: a pending deck-switch request as the local menubar inbox sees it.
229
+ * Display-safe labels only — the approval itself still commits through the
230
+ * dashboard-only resolve route, and the browser page mints its session via
231
+ * the trusted bootstrap mechanism (no reusable secret in the URL).
232
+ */
233
+ export declare const PendingDeckSwitchRequestSchema: z.ZodObject<{
234
+ requestId: z.ZodString;
235
+ runtimeSessionId: z.ZodString;
236
+ status: z.ZodLiteral<"pending">;
237
+ currentDeckName: z.ZodOptional<z.ZodString>;
238
+ requestedDeckName: z.ZodOptional<z.ZodString>;
239
+ expiresAt: z.ZodString;
240
+ approvalPath: z.ZodString;
241
+ }, "strip", z.ZodTypeAny, {
242
+ status: "pending";
243
+ expiresAt: string;
244
+ runtimeSessionId: string;
245
+ approvalPath: string;
246
+ requestId: string;
247
+ currentDeckName?: string | undefined;
248
+ requestedDeckName?: string | undefined;
249
+ }, {
250
+ status: "pending";
251
+ expiresAt: string;
252
+ runtimeSessionId: string;
253
+ approvalPath: string;
254
+ requestId: string;
255
+ currentDeckName?: string | undefined;
256
+ requestedDeckName?: string | undefined;
257
+ }>;
258
+ export type PendingDeckSwitchRequest = z.infer<typeof PendingDeckSwitchRequestSchema>;
218
259
  export type DeckDisplay = z.infer<typeof DeckDisplaySchema>;
219
260
  export type StatusLinePayload = z.infer<typeof StatusLinePayloadSchema>;
220
261
  export declare const DISPLAY_LINE_MAX_LENGTH = 120;
@@ -226,12 +267,38 @@ export declare function countDeckCards(deck: {
226
267
  playbooks?: unknown[];
227
268
  }): DeckCardCounts;
228
269
  export declare function formatDisplayUpdatedSuffix(updatedAt: string): string;
229
- export declare function formatDisplayLine(deckName: string | null, counts: DeckCardCounts, options?: {
270
+ export type DisplayLineOptions = {
230
271
  offline?: boolean;
231
272
  mcpOffline?: boolean;
232
273
  updatedAt?: string;
233
274
  badge?: string;
234
- }): string;
275
+ /**
276
+ * Saved workspace-default deck name (NOT-211). The override marker is
277
+ * decided by `sessionOverride` when defined (id-based decision made by the
278
+ * caller); otherwise it falls back to the name comparison, so callers that
279
+ * do not need override detail keep the existing one-line shape.
280
+ */
281
+ workspaceDefaultName?: string | null;
282
+ /**
283
+ * Explicit id-based override decision (NOT-211 repair). When defined it wins
284
+ * over the name comparison: `true` shows the marker even if the names match
285
+ * (same-name/different-id is a real override), `false` hides it even if the
286
+ * saved file name is stale after a deck rename.
287
+ */
288
+ sessionOverride?: boolean;
289
+ };
290
+ export declare const SESSION_OVERRIDE_MARKER_PREFIX = " \u00B7 session (default ";
291
+ export declare const SESSION_OVERRIDE_MARKER_SUFFIX = ")";
292
+ export declare function formatDisplayLine(deckName: string | null, counts: DeckCardCounts, options?: DisplayLineOptions): string;
293
+ /**
294
+ * Append a concise session-override marker to an already-bounded display line
295
+ * (NOT-211). The explicit `sessionOverride` flag (id-based decision) wins over
296
+ * the name comparison when defined; otherwise names are compared as a
297
+ * fallback. Returns the line unchanged when there is no override. The marker
298
+ * is always kept visible within the max length: the default name is truncated
299
+ * first, and as a last resort the base line is shortened to make room.
300
+ */
301
+ export declare function appendSessionOverrideSuffix(line: string, deckName: string | null, workspaceDefaultName?: string | null, sessionOverride?: boolean): string;
235
302
  export declare function normalizeWorkspaceRoot(workspaceRoot: string): string;
236
303
  export declare function resolveStatusLineSessionId(payload: StatusLinePayload): string | undefined;
237
304
  export declare function resolveStatusLineWorkspace(payload: StatusLinePayload, fallbackCwd?: string): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"deck-display.d.ts","sourceRoot":"","sources":["../../src/schemas/deck-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB,6DAKlC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW5B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB,GAAG,cAAc,CAOjB;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxF,MAAM,CAsCR;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAGzF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/G"}
1
+ {"version":3,"file":"deck-display.d.ts","sourceRoot":"","sources":["../../src/schemas/deck-display.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DISPLAY_LINE_MAX_LENGTH = exports.PendingAdminChallengeSchema = exports.DeckListEntrySchema = exports.StatusLinePayloadSchema = exports.DeckDisplaySchema = exports.LiveBindingSchema = exports.DeckCardCountsSchema = exports.DeckDisplaySourceSchema = void 0;
6
+ exports.SESSION_OVERRIDE_MARKER_SUFFIX = exports.SESSION_OVERRIDE_MARKER_PREFIX = exports.DISPLAY_LINE_MAX_LENGTH = exports.PendingDeckSwitchRequestSchema = exports.PendingAdminChallengeSchema = exports.DeckListEntrySchema = exports.BindingActiveSourceSchema = exports.StatusLinePayloadSchema = exports.DeckDisplaySchema = exports.LiveBindingSchema = exports.DeckCardCountsSchema = exports.DeckDisplaySourceSchema = void 0;
7
7
  exports.countDeckCards = countDeckCards;
8
8
  exports.formatDisplayUpdatedSuffix = formatDisplayUpdatedSuffix;
9
9
  exports.formatDisplayLine = formatDisplayLine;
10
+ exports.appendSessionOverrideSuffix = appendSessionOverrideSuffix;
10
11
  exports.normalizeWorkspaceRoot = normalizeWorkspaceRoot;
11
12
  exports.resolveStatusLineSessionId = resolveStatusLineSessionId;
12
13
  exports.resolveStatusLineWorkspace = resolveStatusLineWorkspace;
@@ -58,6 +59,14 @@ exports.StatusLinePayloadSchema = zod_1.z.object({
58
59
  })
59
60
  .optional(),
60
61
  });
62
+ /**
63
+ * Where the active deck for a session comes from (NOT-211).
64
+ * `session` = session-only override that differs from the saved workspace
65
+ * default (compared by deck id); `workspace` = following the saved workspace
66
+ * default (or nothing overriding it); `launch` = launch-selected deck with no
67
+ * saved default.
68
+ */
69
+ exports.BindingActiveSourceSchema = zod_1.z.enum(['session', 'workspace', 'launch']);
61
70
  exports.DeckListEntrySchema = zod_1.z.object({
62
71
  id: zod_1.z.string().uuid(),
63
72
  name: zod_1.z.string().min(1),
@@ -73,6 +82,21 @@ exports.PendingAdminChallengeSchema = zod_1.z.object({
73
82
  expiresAt: zod_1.z.string().datetime(),
74
83
  approvalPath: zod_1.z.string().min(1),
75
84
  });
85
+ /**
86
+ * NOT-212: a pending deck-switch request as the local menubar inbox sees it.
87
+ * Display-safe labels only — the approval itself still commits through the
88
+ * dashboard-only resolve route, and the browser page mints its session via
89
+ * the trusted bootstrap mechanism (no reusable secret in the URL).
90
+ */
91
+ exports.PendingDeckSwitchRequestSchema = zod_1.z.object({
92
+ requestId: zod_1.z.string().min(1),
93
+ runtimeSessionId: zod_1.z.string().min(1),
94
+ status: zod_1.z.literal('pending'),
95
+ currentDeckName: zod_1.z.string().min(1).optional(),
96
+ requestedDeckName: zod_1.z.string().min(1).optional(),
97
+ expiresAt: zod_1.z.string().datetime(),
98
+ approvalPath: zod_1.z.string().min(1),
99
+ });
76
100
  exports.DISPLAY_LINE_MAX_LENGTH = 120;
77
101
  function countDeckCards(deck) {
78
102
  const services = deck.services ?? [];
@@ -90,6 +114,28 @@ function formatDisplayUpdatedSuffix(updatedAt) {
90
114
  const pad = (value) => String(value).padStart(2, '0');
91
115
  return ` (updated ${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())})`;
92
116
  }
117
+ exports.SESSION_OVERRIDE_MARKER_PREFIX = ' · session (default ';
118
+ exports.SESSION_OVERRIDE_MARKER_SUFFIX = ')';
119
+ /**
120
+ * Decide which workspace-default name to show in the session-override marker
121
+ * (NOT-211). Returns null when there is no override: no active deck, no saved
122
+ * default, or — when the caller leaves `sessionOverride` undefined — active
123
+ * and default names match.
124
+ */
125
+ function resolveSessionOverrideDefault(deckName, workspaceDefaultName, sessionOverride) {
126
+ const active = deckName?.trim();
127
+ const fallback = workspaceDefaultName?.trim();
128
+ if (!active || !fallback) {
129
+ return null;
130
+ }
131
+ if (sessionOverride !== undefined) {
132
+ return sessionOverride ? fallback : null;
133
+ }
134
+ return active === fallback ? null : fallback;
135
+ }
136
+ function boundDisplayLine(line) {
137
+ return line.length > exports.DISPLAY_LINE_MAX_LENGTH ? line.slice(0, exports.DISPLAY_LINE_MAX_LENGTH) : line;
138
+ }
93
139
  function formatDisplayLine(deckName, counts, options) {
94
140
  const prefix = '◆ ';
95
141
  const updatedSuffix = options?.updatedAt ? formatDisplayUpdatedSuffix(options.updatedAt) : '';
@@ -110,19 +156,83 @@ function formatDisplayLine(deckName, counts, options) {
110
156
  const separator = ' · ';
111
157
  const badgeSuffix = options?.badge ? ` · ⌘${options.badge}` : '';
112
158
  const mcpSuffix = options?.mcpOffline ? ' · MCP offline' : '';
113
- const suffixLength = updatedSuffix.length + mcpSuffix.length + badgeSuffix.length;
159
+ // Room for the override marker is reserved before truncating the active
160
+ // name, so a real session override stays visible within the budget.
161
+ const overrideDefault = resolveSessionOverrideDefault(deckName, options?.workspaceDefaultName, options?.sessionOverride);
162
+ let marker = '';
163
+ if (overrideDefault !== null) {
164
+ const fullMarker = `${exports.SESSION_OVERRIDE_MARKER_PREFIX}${overrideDefault}${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
165
+ const otherFixedLength = prefix.length + separator.length + countsPart.length + updatedSuffix.length + mcpSuffix.length + badgeSuffix.length;
166
+ const maxMarkerLength = exports.DISPLAY_LINE_MAX_LENGTH - otherFixedLength - 1;
167
+ if (fullMarker.length <= maxMarkerLength) {
168
+ marker = fullMarker;
169
+ }
170
+ else {
171
+ const spare = maxMarkerLength - exports.SESSION_OVERRIDE_MARKER_PREFIX.length - exports.SESSION_OVERRIDE_MARKER_SUFFIX.length;
172
+ if (spare >= 2) {
173
+ marker = `${exports.SESSION_OVERRIDE_MARKER_PREFIX}${overrideDefault.slice(0, spare - 1)}…${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
174
+ }
175
+ }
176
+ }
177
+ const suffixLength = updatedSuffix.length + mcpSuffix.length + badgeSuffix.length + marker.length;
114
178
  const fixedLength = prefix.length + separator.length + countsPart.length + suffixLength;
115
179
  const maxNameLength = exports.DISPLAY_LINE_MAX_LENGTH - fixedLength;
116
180
  let name = deckName;
117
181
  if (maxNameLength < 1) {
118
- const line = `${prefix}${countsPart}${badgeSuffix}${mcpSuffix}${updatedSuffix}`;
119
- return line.length > exports.DISPLAY_LINE_MAX_LENGTH ? line.slice(0, exports.DISPLAY_LINE_MAX_LENGTH) : line;
182
+ // No room for the active name: drop it, then shrink the marker's default
183
+ // name to fit rather than losing the override entirely.
184
+ const lineless = `${prefix}${countsPart}${badgeSuffix}${mcpSuffix}${updatedSuffix}`;
185
+ if (!marker) {
186
+ return boundDisplayLine(lineless);
187
+ }
188
+ const spare = exports.DISPLAY_LINE_MAX_LENGTH -
189
+ (lineless.length + exports.SESSION_OVERRIDE_MARKER_PREFIX.length + exports.SESSION_OVERRIDE_MARKER_SUFFIX.length);
190
+ if (spare < 2) {
191
+ return boundDisplayLine(lineless);
192
+ }
193
+ const shown = overrideDefault.length > spare ? `${overrideDefault.slice(0, spare - 1)}…` : overrideDefault;
194
+ return `${lineless}${exports.SESSION_OVERRIDE_MARKER_PREFIX}${shown}${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
120
195
  }
121
196
  if (name.length > maxNameLength) {
122
- name = `${name.slice(0, Math.max(1, maxNameLength - 1))}…`;
197
+ name =
198
+ maxNameLength >= 2
199
+ ? `${name.slice(0, maxNameLength - 1)}…`
200
+ : name.slice(0, Math.max(0, maxNameLength));
123
201
  }
124
- const line = `${prefix}${name}${separator}${countsPart}${badgeSuffix}${mcpSuffix}${updatedSuffix}`;
125
- return line.length > exports.DISPLAY_LINE_MAX_LENGTH ? line.slice(0, exports.DISPLAY_LINE_MAX_LENGTH) : line;
202
+ return `${prefix}${name}${separator}${countsPart}${badgeSuffix}${mcpSuffix}${updatedSuffix}${marker}`;
203
+ }
204
+ /**
205
+ * Append a concise session-override marker to an already-bounded display line
206
+ * (NOT-211). The explicit `sessionOverride` flag (id-based decision) wins over
207
+ * the name comparison when defined; otherwise names are compared as a
208
+ * fallback. Returns the line unchanged when there is no override. The marker
209
+ * is always kept visible within the max length: the default name is truncated
210
+ * first, and as a last resort the base line is shortened to make room.
211
+ */
212
+ function appendSessionOverrideSuffix(line, deckName, workspaceDefaultName, sessionOverride) {
213
+ const fallback = resolveSessionOverrideDefault(deckName, workspaceDefaultName, sessionOverride);
214
+ if (fallback === null) {
215
+ return line;
216
+ }
217
+ const full = `${line}${exports.SESSION_OVERRIDE_MARKER_PREFIX}${fallback}${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
218
+ if (full.length <= exports.DISPLAY_LINE_MAX_LENGTH) {
219
+ return full;
220
+ }
221
+ const spare = exports.DISPLAY_LINE_MAX_LENGTH -
222
+ (line.length + exports.SESSION_OVERRIDE_MARKER_PREFIX.length + exports.SESSION_OVERRIDE_MARKER_SUFFIX.length);
223
+ if (spare >= 2) {
224
+ return `${line}${exports.SESSION_OVERRIDE_MARKER_PREFIX}${fallback.slice(0, spare - 1)}…${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
225
+ }
226
+ const keep = exports.DISPLAY_LINE_MAX_LENGTH -
227
+ (exports.SESSION_OVERRIDE_MARKER_PREFIX.length + exports.SESSION_OVERRIDE_MARKER_SUFFIX.length + 2);
228
+ if (keep < 1) {
229
+ return full.slice(0, exports.DISPLAY_LINE_MAX_LENGTH);
230
+ }
231
+ const shortLine = line.length > keep ? `${line.slice(0, Math.max(0, keep - 1))}…` : line;
232
+ const room = exports.DISPLAY_LINE_MAX_LENGTH -
233
+ (shortLine.length + exports.SESSION_OVERRIDE_MARKER_PREFIX.length + exports.SESSION_OVERRIDE_MARKER_SUFFIX.length);
234
+ const shown = fallback.length > room ? `${fallback.slice(0, Math.max(0, room - 1))}…` : fallback;
235
+ return `${shortLine}${exports.SESSION_OVERRIDE_MARKER_PREFIX}${shown}${exports.SESSION_OVERRIDE_MARKER_SUFFIX}`;
126
236
  }
127
237
  function normalizeWorkspaceRoot(workspaceRoot) {
128
238
  return node_path_1.default.resolve(workspaceRoot.trim());
@@ -1 +1 @@
1
- {"version":3,"file":"deck-display.js","sourceRoot":"","sources":["../../src/schemas/deck-display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deck-display.js","sourceRoot":"","sources":["../../src/schemas/deck-display.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  export declare const AgentSessionModeSchema: z.ZodEnum<["normal", "agent-admin"]>;
3
- export declare const TrustedSessionErrorCodeSchema: z.ZodEnum<["GRANT_REQUIRED", "SESSION_INVALID", "SESSION_REVOKED", "RESOURCE_OUT_OF_SCOPE", "ADMIN_REQUIRED", "DASHBOARD_REQUIRED", "ADMIN_CHALLENGE_EXPIRED", "DECK_FIXED"]>;
3
+ export declare const TrustedSessionErrorCodeSchema: z.ZodEnum<["GRANT_REQUIRED", "SESSION_INVALID", "SESSION_REVOKED", "RESOURCE_OUT_OF_SCOPE", "ADMIN_REQUIRED", "DASHBOARD_REQUIRED", "ADMIN_CHALLENGE_EXPIRED", "DECK_FIXED", "SWITCH_APPROVAL_REQUIRED", "DECK_SWITCH_EXPIRED", "DECK_SWITCH_CONSUMED"]>;
4
4
  /** @deprecated Legacy v2 grant file shape — CLI reads for migration only (NOT-108). */
5
5
  export declare const WorkspaceGrantStatusSchema: z.ZodEnum<["pending", "active", "revoked"]>;
6
6
  export declare const RuntimeSessionSchema: z.ZodObject<{
@@ -148,4 +148,47 @@ export type TrustedSessionErrorBody = {
148
148
  };
149
149
  export declare function trustedSessionError(code: TrustedSessionErrorCode, message: string): TrustedSessionErrorBody;
150
150
  export declare function httpStatusForTrustedError(code: TrustedSessionErrorCode): number;
151
+ /**
152
+ * Human approval scope for a deck-switch request (NOT-207).
153
+ * Exactly three decisions exist: rebind this session only, rebind the
154
+ * session and the workspace default, or decline.
155
+ */
156
+ export declare const DeckSwitchDecisionSchema: z.ZodEnum<["session", "workspace-default", "decline"]>;
157
+ export type DeckSwitchDecision = z.infer<typeof DeckSwitchDecisionSchema>;
158
+ /** Approval request body for resolving one opaque deck-switch request. */
159
+ export declare const DeckSwitchResolveBodySchema: z.ZodObject<{
160
+ runtimeSessionId: z.ZodString;
161
+ decision: z.ZodEnum<["session", "workspace-default", "decline"]>;
162
+ }, "strict", z.ZodTypeAny, {
163
+ runtimeSessionId: string;
164
+ decision: "session" | "workspace-default" | "decline";
165
+ }, {
166
+ runtimeSessionId: string;
167
+ decision: "session" | "workspace-default" | "decline";
168
+ }>;
169
+ export type DeckSwitchResolveBody = z.infer<typeof DeckSwitchResolveBodySchema>;
170
+ /** Successful resolution result for a deck-switch request. */
171
+ export declare const DeckSwitchResolutionSchema: z.ZodObject<{
172
+ requestId: z.ZodString;
173
+ decision: z.ZodEnum<["session", "workspace-default", "decline"]>;
174
+ status: z.ZodEnum<["consumed", "declined"]>;
175
+ deckId: z.ZodOptional<z.ZodString>;
176
+ deckName: z.ZodOptional<z.ZodString>;
177
+ workspaceRoot: z.ZodOptional<z.ZodString>;
178
+ }, "strict", z.ZodTypeAny, {
179
+ status: "consumed" | "declined";
180
+ requestId: string;
181
+ decision: "session" | "workspace-default" | "decline";
182
+ deckId?: string | undefined;
183
+ deckName?: string | undefined;
184
+ workspaceRoot?: string | undefined;
185
+ }, {
186
+ status: "consumed" | "declined";
187
+ requestId: string;
188
+ decision: "session" | "workspace-default" | "decline";
189
+ deckId?: string | undefined;
190
+ deckName?: string | undefined;
191
+ workspaceRoot?: string | undefined;
192
+ }>;
193
+ export type DeckSwitchResolution = z.infer<typeof DeckSwitchResolutionSchema>;
151
194
  //# sourceMappingURL=trusted-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trusted-session.d.ts","sourceRoot":"","sources":["../../src/schemas/trusted-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,sCAAoC,CAAC;AAExE,eAAO,MAAM,6BAA6B,+KAUxC,CAAC;AAEH,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,6CAA2C,CAAC;AAEnF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAUtB,CAAC;AAEZ,gEAAgE;AAChE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEZ,oFAAoF;AACpF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+B,CAAC;AAEtE,yDAAyD;AACzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAO3B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,MAAM,GACd,uBAAuB,CAEzB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAgB/E"}
1
+ {"version":3,"file":"trusted-session.d.ts","sourceRoot":"","sources":["../../src/schemas/trusted-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,sCAAoC,CAAC;AAExE,eAAO,MAAM,6BAA6B,0PAgBxC,CAAC;AAEH,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,6CAA2C,CAAC;AAEnF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAUtB,CAAC;AAEZ,gEAAgE;AAChE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEZ,oFAAoF;AACpF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+B,CAAC;AAEtE,yDAAyD;AACzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAO3B,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,MAAM,GACd,uBAAuB,CAEzB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAoB/E;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wDAAsD,CAAC;AAE5F,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,0EAA0E;AAC1E,eAAO,MAAM,2BAA2B;;;;;;;;;EAK7B,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RedactedSessionBindingSchema = exports.WorkspaceAssignmentSchema = exports.WorkspaceV2ManifestSchema = exports.WorkspaceGrantManifestSchema = exports.RuntimeSessionSchema = exports.WorkspaceGrantStatusSchema = exports.TrustedSessionErrorCodeSchema = exports.AgentSessionModeSchema = void 0;
3
+ exports.DeckSwitchResolutionSchema = exports.DeckSwitchResolveBodySchema = exports.DeckSwitchDecisionSchema = exports.RedactedSessionBindingSchema = exports.WorkspaceAssignmentSchema = exports.WorkspaceV2ManifestSchema = exports.WorkspaceGrantManifestSchema = exports.RuntimeSessionSchema = exports.WorkspaceGrantStatusSchema = exports.TrustedSessionErrorCodeSchema = exports.AgentSessionModeSchema = void 0;
4
4
  exports.trustedSessionError = trustedSessionError;
5
5
  exports.httpStatusForTrustedError = httpStatusForTrustedError;
6
6
  const zod_1 = require("zod");
@@ -15,6 +15,12 @@ exports.TrustedSessionErrorCodeSchema = zod_1.z.enum([
15
15
  'ADMIN_CHALLENGE_EXPIRED',
16
16
  /** Launch-selected deck cannot be changed by the agent (NOT-105). */
17
17
  'DECK_FIXED',
18
+ /** Bound session must request a human-approved switch via switch_deck (NOT-214). */
19
+ 'SWITCH_APPROVAL_REQUIRED',
20
+ /** Deck-switch request past its TTL (NOT-207). */
21
+ 'DECK_SWITCH_EXPIRED',
22
+ /** Deck-switch request already resolved; repeat resolution is a no-op (NOT-207). */
23
+ 'DECK_SWITCH_CONSUMED',
18
24
  ]);
19
25
  /** @deprecated Legacy v2 grant file shape — CLI reads for migration only (NOT-108). */
20
26
  exports.WorkspaceGrantStatusSchema = zod_1.z.enum(['pending', 'active', 'revoked']);
@@ -78,11 +84,39 @@ function httpStatusForTrustedError(code) {
78
84
  case 'ADMIN_REQUIRED':
79
85
  case 'DASHBOARD_REQUIRED':
80
86
  case 'DECK_FIXED':
87
+ case 'SWITCH_APPROVAL_REQUIRED':
81
88
  return 403;
89
+ case 'DECK_SWITCH_CONSUMED':
90
+ return 409;
82
91
  case 'ADMIN_CHALLENGE_EXPIRED':
92
+ case 'DECK_SWITCH_EXPIRED':
83
93
  return 410;
84
94
  default:
85
95
  return 500;
86
96
  }
87
97
  }
98
+ /**
99
+ * Human approval scope for a deck-switch request (NOT-207).
100
+ * Exactly three decisions exist: rebind this session only, rebind the
101
+ * session and the workspace default, or decline.
102
+ */
103
+ exports.DeckSwitchDecisionSchema = zod_1.z.enum(['session', 'workspace-default', 'decline']);
104
+ /** Approval request body for resolving one opaque deck-switch request. */
105
+ exports.DeckSwitchResolveBodySchema = zod_1.z
106
+ .object({
107
+ runtimeSessionId: zod_1.z.string().min(1),
108
+ decision: exports.DeckSwitchDecisionSchema,
109
+ })
110
+ .strict();
111
+ /** Successful resolution result for a deck-switch request. */
112
+ exports.DeckSwitchResolutionSchema = zod_1.z
113
+ .object({
114
+ requestId: zod_1.z.string(),
115
+ decision: exports.DeckSwitchDecisionSchema,
116
+ status: zod_1.z.enum(['consumed', 'declined']),
117
+ deckId: zod_1.z.string().optional(),
118
+ deckName: zod_1.z.string().optional(),
119
+ workspaceRoot: zod_1.z.string().optional(),
120
+ })
121
+ .strict();
88
122
  //# sourceMappingURL=trusted-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trusted-session.js","sourceRoot":"","sources":["../../src/schemas/trusted-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trusted-session.js","sourceRoot":"","sources":["../../src/schemas/trusted-session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-deck/shared",
3
- "version": "1.10.6",
3
+ "version": "1.11.1",
4
4
  "description": "Shared types, schemas, and utilities for Agent Deck",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",