@agent-deck/shared 1.11.8 → 2.0.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.
@@ -8,6 +8,14 @@ export declare const AGENT_DECK_AGENT_CLIENT = "agent";
8
8
  export declare const AGENT_DECK_WORKSPACE_HEADER = "x-agent-deck-workspace";
9
9
  /** Launch-selected deck (NOT-105). */
10
10
  export declare const AGENT_DECK_DECK_ID_HEADER = "x-agent-deck-deck-id";
11
+ /**
12
+ * Opaque run-correlation id for launch-selected MCP sessions (NOT-304).
13
+ *
14
+ * Observability metadata only: it never selects a deck, grants access,
15
+ * changes mode, or participates in authorization. Validated as an opaque
16
+ * UUID or equivalently strict bounded token — never free text.
17
+ */
18
+ export declare const AGENT_DECK_CORRELATION_HEADER = "x-agent-deck-correlation-id";
11
19
  /**
12
20
  * Session a client lost to a server restart, named on the handshake it replays
13
21
  * (NOT-101). It lets the server mark that session recovered instead of counting
@@ -1 +1 @@
1
- {"version":3,"file":"client-scope.d.ts","sourceRoot":"","sources":["../../src/constants/client-scope.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,sCAAsC;AACtC,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,mCAAmC,CAAC"}
1
+ {"version":3,"file":"client-scope.d.ts","sourceRoot":"","sources":["../../src/constants/client-scope.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAEvD,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C,uEAAuE;AACvE,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,sCAAsC;AACtC,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,gCAAgC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,mCAAmC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AGENT_DECK_RECOVERED_SESSION_HEADER = exports.AGENT_DECK_DECK_ID_HEADER = exports.AGENT_DECK_WORKSPACE_HEADER = exports.AGENT_DECK_AGENT_CLIENT = exports.AGENT_DECK_DASHBOARD_CLIENT = exports.AGENT_DECK_CLIENT_HEADER = void 0;
3
+ exports.AGENT_DECK_RECOVERED_SESSION_HEADER = exports.AGENT_DECK_CORRELATION_HEADER = exports.AGENT_DECK_DECK_ID_HEADER = exports.AGENT_DECK_WORKSPACE_HEADER = exports.AGENT_DECK_AGENT_CLIENT = exports.AGENT_DECK_DASHBOARD_CLIENT = exports.AGENT_DECK_CLIENT_HEADER = void 0;
4
4
  /** HTTP header distinguishing dashboard (human UI) from agent API clients. */
5
5
  exports.AGENT_DECK_CLIENT_HEADER = 'x-agent-deck-client';
6
6
  /** Value sent by the Agent Deck dashboard for vault management. */
@@ -11,6 +11,14 @@ exports.AGENT_DECK_AGENT_CLIENT = 'agent';
11
11
  exports.AGENT_DECK_WORKSPACE_HEADER = 'x-agent-deck-workspace';
12
12
  /** Launch-selected deck (NOT-105). */
13
13
  exports.AGENT_DECK_DECK_ID_HEADER = 'x-agent-deck-deck-id';
14
+ /**
15
+ * Opaque run-correlation id for launch-selected MCP sessions (NOT-304).
16
+ *
17
+ * Observability metadata only: it never selects a deck, grants access,
18
+ * changes mode, or participates in authorization. Validated as an opaque
19
+ * UUID or equivalently strict bounded token — never free text.
20
+ */
21
+ exports.AGENT_DECK_CORRELATION_HEADER = 'x-agent-deck-correlation-id';
14
22
  /**
15
23
  * Session a client lost to a server restart, named on the handshake it replays
16
24
  * (NOT-101). It lets the server mark that session recovered instead of counting
@@ -1 +1 @@
1
- {"version":3,"file":"client-scope.js","sourceRoot":"","sources":["../../src/constants/client-scope.ts"],"names":[],"mappings":";;;AAAA,8EAA8E;AACjE,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAEvD,+EAA+E;AAClE,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAE/C,uEAAuE;AAC1D,QAAA,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,sCAAsC;AACzB,QAAA,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE;;;;GAIG;AACU,QAAA,mCAAmC,GAAG,gCAAgC,CAAC"}
1
+ {"version":3,"file":"client-scope.js","sourceRoot":"","sources":["../../src/constants/client-scope.ts"],"names":[],"mappings":";;;AAAA,8EAA8E;AACjE,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,mEAAmE;AACtD,QAAA,2BAA2B,GAAG,WAAW,CAAC;AAEvD,+EAA+E;AAClE,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAE/C,uEAAuE;AAC1D,QAAA,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,sCAAsC;AACzB,QAAA,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE;;;;;;GAMG;AACU,QAAA,6BAA6B,GAAG,6BAA6B,CAAC;AAE3E;;;;GAIG;AACU,QAAA,mCAAmC,GAAG,gCAAgC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export { OAuthDiscoveryResult } from './types/oauth';
16
16
  export * from './utils';
17
17
  export { summarizeCollectionWarnings, getServiceWarnings, getCredentialWarnings, getPlaybookWarnings, primaryCollectionWarning, type CollectionCardWarning, type CollectionWarningKind, } from './utils/collection-warnings';
18
18
  export { normalizeLocalMcpManifestInput, parseLocalMcpManifestJson, stripJsonMarkdownFences, } from './utils/local-mcp-manifest';
19
- export { AGENT_DECK_CLIENT_HEADER, AGENT_DECK_DASHBOARD_CLIENT, AGENT_DECK_AGENT_CLIENT, AGENT_DECK_WORKSPACE_HEADER, AGENT_DECK_DECK_ID_HEADER, AGENT_DECK_RECOVERED_SESSION_HEADER, } from './constants/client-scope';
19
+ export { AGENT_DECK_CLIENT_HEADER, AGENT_DECK_DASHBOARD_CLIENT, AGENT_DECK_AGENT_CLIENT, AGENT_DECK_WORKSPACE_HEADER, AGENT_DECK_DECK_ID_HEADER, AGENT_DECK_CORRELATION_HEADER, AGENT_DECK_RECOVERED_SESSION_HEADER, } from './constants/client-scope';
20
20
  export { AGENT_DECK_SESSION_HEADER, AGENT_DECK_DASHBOARD_COOKIE, RUNTIME_SESSION_LEASE_MS, ADMIN_MODE_LEASE_MS, ADMIN_CHALLENGE_TTL_MS, DASHBOARD_NONCE_TTL_MS, DASHBOARD_SESSION_LEASE_MS, DASHBOARD_COOKIE_MAX_AGE_MS, } from './constants/trusted-session';
21
21
  export { MCP_CARD_COLOR, API_KEY_CARD_COLOR, PLAYBOOK_CARD_COLOR, getServiceCardColor } from './constants/card-colors';
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getServiceCardColor = exports.PLAYBOOK_CARD_COLOR = exports.API_KEY_CARD_COLOR = exports.MCP_CARD_COLOR = exports.DASHBOARD_COOKIE_MAX_AGE_MS = exports.DASHBOARD_SESSION_LEASE_MS = exports.DASHBOARD_NONCE_TTL_MS = exports.ADMIN_CHALLENGE_TTL_MS = exports.ADMIN_MODE_LEASE_MS = exports.RUNTIME_SESSION_LEASE_MS = exports.AGENT_DECK_DASHBOARD_COOKIE = exports.AGENT_DECK_SESSION_HEADER = exports.AGENT_DECK_RECOVERED_SESSION_HEADER = exports.AGENT_DECK_DECK_ID_HEADER = exports.AGENT_DECK_WORKSPACE_HEADER = exports.AGENT_DECK_AGENT_CLIENT = exports.AGENT_DECK_DASHBOARD_CLIENT = exports.AGENT_DECK_CLIENT_HEADER = exports.stripJsonMarkdownFences = exports.parseLocalMcpManifestJson = exports.normalizeLocalMcpManifestInput = exports.primaryCollectionWarning = exports.getPlaybookWarnings = exports.getCredentialWarnings = exports.getServiceWarnings = exports.summarizeCollectionWarnings = void 0;
17
+ exports.getServiceCardColor = exports.PLAYBOOK_CARD_COLOR = exports.API_KEY_CARD_COLOR = exports.MCP_CARD_COLOR = exports.DASHBOARD_COOKIE_MAX_AGE_MS = exports.DASHBOARD_SESSION_LEASE_MS = exports.DASHBOARD_NONCE_TTL_MS = exports.ADMIN_CHALLENGE_TTL_MS = exports.ADMIN_MODE_LEASE_MS = exports.RUNTIME_SESSION_LEASE_MS = exports.AGENT_DECK_DASHBOARD_COOKIE = exports.AGENT_DECK_SESSION_HEADER = exports.AGENT_DECK_RECOVERED_SESSION_HEADER = exports.AGENT_DECK_CORRELATION_HEADER = exports.AGENT_DECK_DECK_ID_HEADER = exports.AGENT_DECK_WORKSPACE_HEADER = exports.AGENT_DECK_AGENT_CLIENT = exports.AGENT_DECK_DASHBOARD_CLIENT = exports.AGENT_DECK_CLIENT_HEADER = exports.stripJsonMarkdownFences = exports.parseLocalMcpManifestJson = exports.normalizeLocalMcpManifestInput = exports.primaryCollectionWarning = exports.getPlaybookWarnings = exports.getCredentialWarnings = exports.getServiceWarnings = exports.summarizeCollectionWarnings = void 0;
18
18
  // Schemas (includes Zod-inferred types)
19
19
  __exportStar(require("./schemas/service"), exports);
20
20
  __exportStar(require("./schemas/deck"), exports);
@@ -50,6 +50,7 @@ Object.defineProperty(exports, "AGENT_DECK_DASHBOARD_CLIENT", { enumerable: true
50
50
  Object.defineProperty(exports, "AGENT_DECK_AGENT_CLIENT", { enumerable: true, get: function () { return client_scope_1.AGENT_DECK_AGENT_CLIENT; } });
51
51
  Object.defineProperty(exports, "AGENT_DECK_WORKSPACE_HEADER", { enumerable: true, get: function () { return client_scope_1.AGENT_DECK_WORKSPACE_HEADER; } });
52
52
  Object.defineProperty(exports, "AGENT_DECK_DECK_ID_HEADER", { enumerable: true, get: function () { return client_scope_1.AGENT_DECK_DECK_ID_HEADER; } });
53
+ Object.defineProperty(exports, "AGENT_DECK_CORRELATION_HEADER", { enumerable: true, get: function () { return client_scope_1.AGENT_DECK_CORRELATION_HEADER; } });
53
54
  Object.defineProperty(exports, "AGENT_DECK_RECOVERED_SESSION_HEADER", { enumerable: true, get: function () { return client_scope_1.AGENT_DECK_RECOVERED_SESSION_HEADER; } });
54
55
  var trusted_session_1 = require("./constants/trusted-session");
55
56
  Object.defineProperty(exports, "AGENT_DECK_SESSION_HEADER", { enumerable: true, get: function () { return trusted_session_1.AGENT_DECK_SESSION_HEADER; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAwC;AACxC,oDAAkC;AAClC,iDAA+B;AAC/B,uDAAqC;AACrC,kDAAgC;AAChC,qDAAmC;AACnC,2DAAyC;AACzC,4DAA0C;AAC1C,yDAAuC;AACvC,0DAAwC;AACxC,kDAAgC;AAChC,8DAA4C;AAC5C,4DAA0C;AAC1C,uDAAqC;AAErC,0CAA0C;AAC1C,8CAA4B;AAG5B,QAAQ;AACR,0CAAwB;AACxB,mEAQqC;AAPnC,kIAAA,2BAA2B,OAAA;AAC3B,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,0HAAA,mBAAmB,OAAA;AACnB,+HAAA,wBAAwB,OAAA;AAI1B,iEAIoC;AAHlC,oIAAA,8BAA8B,OAAA;AAC9B,+HAAA,yBAAyB,OAAA;AACzB,6HAAA,uBAAuB,OAAA;AAGzB,YAAY;AACZ,yDAOkC;AANhC,wHAAA,wBAAwB,OAAA;AACxB,2HAAA,2BAA2B,OAAA;AAC3B,uHAAA,uBAAuB,OAAA;AACvB,2HAAA,2BAA2B,OAAA;AAC3B,yHAAA,yBAAyB,OAAA;AACzB,mIAAA,mCAAmC,OAAA;AAErC,+DASqC;AARnC,4HAAA,yBAAyB,OAAA;AACzB,8HAAA,2BAA2B,OAAA;AAC3B,2HAAA,wBAAwB,OAAA;AACxB,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,yHAAA,sBAAsB,OAAA;AACtB,6HAAA,0BAA0B,OAAA;AAC1B,8HAAA,2BAA2B,OAAA;AAE7B,uDAAuH;AAA9G,6GAAA,cAAc,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAAE,kHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAwC;AACxC,oDAAkC;AAClC,iDAA+B;AAC/B,uDAAqC;AACrC,kDAAgC;AAChC,qDAAmC;AACnC,2DAAyC;AACzC,4DAA0C;AAC1C,yDAAuC;AACvC,0DAAwC;AACxC,kDAAgC;AAChC,8DAA4C;AAC5C,4DAA0C;AAC1C,uDAAqC;AAErC,0CAA0C;AAC1C,8CAA4B;AAG5B,QAAQ;AACR,0CAAwB;AACxB,mEAQqC;AAPnC,kIAAA,2BAA2B,OAAA;AAC3B,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,0HAAA,mBAAmB,OAAA;AACnB,+HAAA,wBAAwB,OAAA;AAI1B,iEAIoC;AAHlC,oIAAA,8BAA8B,OAAA;AAC9B,+HAAA,yBAAyB,OAAA;AACzB,6HAAA,uBAAuB,OAAA;AAGzB,YAAY;AACZ,yDAQkC;AAPhC,wHAAA,wBAAwB,OAAA;AACxB,2HAAA,2BAA2B,OAAA;AAC3B,uHAAA,uBAAuB,OAAA;AACvB,2HAAA,2BAA2B,OAAA;AAC3B,yHAAA,yBAAyB,OAAA;AACzB,6HAAA,6BAA6B,OAAA;AAC7B,mIAAA,mCAAmC,OAAA;AAErC,+DASqC;AARnC,4HAAA,yBAAyB,OAAA;AACzB,8HAAA,2BAA2B,OAAA;AAC3B,2HAAA,wBAAwB,OAAA;AACxB,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,yHAAA,sBAAsB,OAAA;AACtB,6HAAA,0BAA0B,OAAA;AAC1B,8HAAA,2BAA2B,OAAA;AAE7B,uDAAuH;AAA9G,6GAAA,cAAc,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAAE,kHAAA,mBAAmB,OAAA"}
@@ -10,8 +10,18 @@ export type CardUsageEvent = {
10
10
  success: boolean | null;
11
11
  source: string;
12
12
  sessionId: string | null;
13
+ /** Opaque run-correlation id (NOT-304); null for sessions without one. */
14
+ correlationId: string | null;
13
15
  createdAt: string;
14
16
  };
17
+ /** True for a UUID or strict bounded token; false for free text. */
18
+ export declare function isValidCorrelationId(value: string): boolean;
19
+ /**
20
+ * Trim and accept a candidate correlation id, or return null when it is
21
+ * absent or fails strict validation. Invalid values are dropped — never
22
+ * coerced — so untrusted input cannot smuggle task content into the stream.
23
+ */
24
+ export declare function normalizeCorrelationId(raw: unknown): string | null;
15
25
  /**
16
26
  * Raw event payload exposed by GET /api/usage/events.
17
27
  * Contains only non-sensitive usage metadata — never tool arguments,
@@ -26,6 +36,8 @@ export type CardUsageEventResponse = {
26
36
  success: boolean | null;
27
37
  source: string;
28
38
  sessionId: string | null;
39
+ /** Opaque run-correlation id (NOT-304); null for sessions without one. */
40
+ correlationId: string | null;
29
41
  };
30
42
  export type CardUsageEventsResponse = {
31
43
  events: CardUsageEventResponse[];
@@ -1 +1 @@
1
- {"version":3,"file":"card-usage.d.ts","sourceRoot":"","sources":["../../src/schemas/card-usage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,gDAAiD,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,+CAAgD,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"card-usage.d.ts","sourceRoot":"","sources":["../../src/schemas/card-usage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,gDAAiD,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAiBF,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,+CAAgD,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B,CAAC"}
@@ -1,6 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CARD_USAGE_CATEGORIES = exports.CARD_USAGE_CARD_TYPES = void 0;
4
+ exports.isValidCorrelationId = isValidCorrelationId;
5
+ exports.normalizeCorrelationId = normalizeCorrelationId;
4
6
  exports.CARD_USAGE_CARD_TYPES = ['service', 'credential', 'playbook'];
7
+ /**
8
+ * Opaque run-correlation identifier (NOT-304).
9
+ *
10
+ * A UUID or an equivalently strict bounded token: ASCII letters, digits,
11
+ * `-`/`_` only, 8–128 chars. The charset excludes whitespace, `/`, `.`,
12
+ * `:`, and every other punctuation mark, so repository paths
13
+ * (`owner/repo`), issue titles, prompts, task content, and URLs can never
14
+ * validate — they are rejected, never truncated or interpreted. Bare
15
+ * word-like slugs are opaque by construction: they are stored verbatim,
16
+ * matched exactly, and never resolved to a deck, workspace, or identity.
17
+ */
18
+ const CORRELATION_UUID_RE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
19
+ const CORRELATION_TOKEN_RE = /^[A-Za-z0-9_-]{8,128}$/;
20
+ /** True for a UUID or strict bounded token; false for free text. */
21
+ function isValidCorrelationId(value) {
22
+ return CORRELATION_UUID_RE.test(value) || CORRELATION_TOKEN_RE.test(value);
23
+ }
24
+ /**
25
+ * Trim and accept a candidate correlation id, or return null when it is
26
+ * absent or fails strict validation. Invalid values are dropped — never
27
+ * coerced — so untrusted input cannot smuggle task content into the stream.
28
+ */
29
+ function normalizeCorrelationId(raw) {
30
+ if (typeof raw !== 'string') {
31
+ return null;
32
+ }
33
+ const value = raw.trim();
34
+ if (!value || !isValidCorrelationId(value)) {
35
+ return null;
36
+ }
37
+ return value;
38
+ }
5
39
  exports.CARD_USAGE_CATEGORIES = ['popular', 'used', 'unused', 'new'];
6
40
  //# sourceMappingURL=card-usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-usage.js","sourceRoot":"","sources":["../../src/schemas/card-usage.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AAsCvE,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC"}
1
+ {"version":3,"file":"card-usage.js","sourceRoot":"","sources":["../../src/schemas/card-usage.ts"],"names":[],"mappings":";;;AAmCA,oDAEC;AAOD,wDASC;AArDY,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AAmBpF;;;;;;;;;;GAUG;AACH,MAAM,mBAAmB,GACvB,+EAA+E,CAAC;AAClF,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAEtD,oEAAoE;AACpE,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,GAAY;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAyBY,QAAA,qBAAqB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC"}
@@ -1,8 +1,31 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Single shared bound for deck operating instructions (NOT-374).
4
+ *
5
+ * Instructions live as the Markdown body of `decks/<id>.md` in the Git-synced
6
+ * file store, with SQLite holding a rebuildable copy. Every entry point — the
7
+ * deck API, the store codec, and reindex — enforces this same limit.
8
+ */
9
+ export declare const OPERATING_INSTRUCTIONS_MAX_LENGTH = 16000;
10
+ /**
11
+ * Canonical form for deck operating instructions.
12
+ *
13
+ * gray-matter appends a trailing newline on serialize, so a body without one
14
+ * would round-trip back longer than the API input (`'a'` -> `'a\n'`), and a
15
+ * 16,000-char body without a trailing newline would produce an unreindexable
16
+ * 16,001-char file. Normalizing once — empty stays empty, every other body
17
+ * ends with exactly the newline(s) it had plus one when missing — keeps
18
+ * SQLite and `decks/<id>.md` byte-identical. A lone `'\n'` collapses to `''`
19
+ * because both serialize to the same file and would otherwise be ambiguous.
20
+ * Idempotent: `normalize(normalize(x)) === normalize(x)`.
21
+ */
22
+ export declare function normalizeOperatingInstructions(value: string): string;
23
+ export declare const OperatingInstructionsSchema: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
2
24
  export declare const DeckSchema: z.ZodObject<{
3
25
  id: z.ZodString;
4
26
  name: z.ZodString;
5
27
  isActive: z.ZodDefault<z.ZodBoolean>;
28
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
6
29
  services: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
7
30
  credentials: z.ZodDefault<z.ZodArray<z.ZodObject<{
8
31
  id: z.ZodString;
@@ -86,6 +109,7 @@ export declare const DeckSchema: z.ZodObject<{
86
109
  updatedAt: string;
87
110
  createdAt: string;
88
111
  isActive: boolean;
112
+ operatingInstructions: string;
89
113
  services: any[];
90
114
  credentials: {
91
115
  id: string;
@@ -119,6 +143,7 @@ export declare const DeckSchema: z.ZodObject<{
119
143
  updatedAt: string;
120
144
  createdAt: string;
121
145
  isActive?: boolean | undefined;
146
+ operatingInstructions?: string | undefined;
122
147
  services?: any[] | undefined;
123
148
  credentials?: {
124
149
  id: string;
@@ -151,6 +176,7 @@ export declare const CreateDeckSchema: z.ZodObject<Omit<{
151
176
  id: z.ZodString;
152
177
  name: z.ZodString;
153
178
  isActive: z.ZodDefault<z.ZodBoolean>;
179
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
154
180
  services: z.ZodDefault<z.ZodArray<z.ZodAny, "many">>;
155
181
  credentials: z.ZodDefault<z.ZodArray<z.ZodObject<{
156
182
  id: z.ZodString;
@@ -231,6 +257,7 @@ export declare const CreateDeckSchema: z.ZodObject<Omit<{
231
257
  }, "id" | "updatedAt" | "createdAt" | "services">, "strip", z.ZodTypeAny, {
232
258
  name: string;
233
259
  isActive: boolean;
260
+ operatingInstructions: string;
234
261
  credentials: {
235
262
  id: string;
236
263
  updatedAt: string;
@@ -260,6 +287,7 @@ export declare const CreateDeckSchema: z.ZodObject<Omit<{
260
287
  }, {
261
288
  name: string;
262
289
  isActive?: boolean | undefined;
290
+ operatingInstructions?: string | undefined;
263
291
  credentials?: {
264
292
  id: string;
265
293
  updatedAt: string;
@@ -290,6 +318,7 @@ export declare const CreateDeckSchema: z.ZodObject<Omit<{
290
318
  export declare const UpdateDeckSchema: z.ZodObject<{
291
319
  name: z.ZodOptional<z.ZodString>;
292
320
  isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
321
+ operatingInstructions: z.ZodOptional<z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>>;
293
322
  credentials: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
294
323
  id: z.ZodString;
295
324
  label: z.ZodString;
@@ -367,6 +396,7 @@ export declare const UpdateDeckSchema: z.ZodObject<{
367
396
  }, "strip", z.ZodTypeAny, {
368
397
  name?: string | undefined;
369
398
  isActive?: boolean | undefined;
399
+ operatingInstructions?: string | undefined;
370
400
  credentials?: {
371
401
  id: string;
372
402
  updatedAt: string;
@@ -396,6 +426,7 @@ export declare const UpdateDeckSchema: z.ZodObject<{
396
426
  }, {
397
427
  name?: string | undefined;
398
428
  isActive?: boolean | undefined;
429
+ operatingInstructions?: string | undefined;
399
430
  credentials?: {
400
431
  id: string;
401
432
  updatedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"deck.d.ts","sourceRoot":"","sources":["../../src/schemas/deck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACrF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"deck.d.ts","sourceRoot":"","sources":["../../src/schemas/deck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,eAAO,MAAM,2BAA2B,uEAUrC,CAAC;AAEJ,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACrF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -1,13 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReorderDeckServicesSchema = exports.RemoveServiceFromDeckSchema = exports.AddServiceToDeckSchema = exports.DeckServiceSchema = exports.UpdateDeckSchema = exports.CreateDeckSchema = exports.DeckSchema = void 0;
3
+ exports.ReorderDeckServicesSchema = exports.RemoveServiceFromDeckSchema = exports.AddServiceToDeckSchema = exports.DeckServiceSchema = exports.UpdateDeckSchema = exports.CreateDeckSchema = exports.DeckSchema = exports.OperatingInstructionsSchema = exports.OPERATING_INSTRUCTIONS_MAX_LENGTH = void 0;
4
+ exports.normalizeOperatingInstructions = normalizeOperatingInstructions;
4
5
  const zod_1 = require("zod");
5
6
  const credential_1 = require("./credential");
6
7
  const playbook_1 = require("./playbook");
8
+ /**
9
+ * Single shared bound for deck operating instructions (NOT-374).
10
+ *
11
+ * Instructions live as the Markdown body of `decks/<id>.md` in the Git-synced
12
+ * file store, with SQLite holding a rebuildable copy. Every entry point — the
13
+ * deck API, the store codec, and reindex — enforces this same limit.
14
+ */
15
+ exports.OPERATING_INSTRUCTIONS_MAX_LENGTH = 16_000;
16
+ /**
17
+ * Canonical form for deck operating instructions.
18
+ *
19
+ * gray-matter appends a trailing newline on serialize, so a body without one
20
+ * would round-trip back longer than the API input (`'a'` -> `'a\n'`), and a
21
+ * 16,000-char body without a trailing newline would produce an unreindexable
22
+ * 16,001-char file. Normalizing once — empty stays empty, every other body
23
+ * ends with exactly the newline(s) it had plus one when missing — keeps
24
+ * SQLite and `decks/<id>.md` byte-identical. A lone `'\n'` collapses to `''`
25
+ * because both serialize to the same file and would otherwise be ambiguous.
26
+ * Idempotent: `normalize(normalize(x)) === normalize(x)`.
27
+ */
28
+ function normalizeOperatingInstructions(value) {
29
+ if (value === '' || value === '\n') {
30
+ return '';
31
+ }
32
+ return value.endsWith('\n') ? value : `${value}\n`;
33
+ }
34
+ exports.OperatingInstructionsSchema = zod_1.z
35
+ .string()
36
+ .transform((value) => normalizeOperatingInstructions(value))
37
+ .pipe(zod_1.z
38
+ .string()
39
+ .max(exports.OPERATING_INSTRUCTIONS_MAX_LENGTH, `Deck operating instructions must be at most ${exports.OPERATING_INSTRUCTIONS_MAX_LENGTH.toLocaleString('en-US')} characters`));
7
40
  exports.DeckSchema = zod_1.z.object({
8
41
  id: zod_1.z.string().uuid(),
9
42
  name: zod_1.z.string().min(1, 'Deck name is required'),
10
43
  isActive: zod_1.z.boolean().default(false),
44
+ operatingInstructions: exports.OperatingInstructionsSchema.default(''),
11
45
  services: zod_1.z.array(zod_1.z.any()).default([]), // Will be populated with Service objects
12
46
  credentials: zod_1.z.array(credential_1.CredentialSchema).default([]),
13
47
  playbooks: zod_1.z.array(playbook_1.PlaybookSchema).default([]),
@@ -1 +1 @@
1
- {"version":3,"file":"deck.js","sourceRoot":"","sources":["../../src/schemas/deck.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,6CAAgD;AAChD,yCAA4C;AAE/B,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IAChD,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,yCAAyC;IACjF,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,6BAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,yBAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,kBAAU,CAAC,IAAI,CAAC;IAC9C,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,wBAAgB,CAAC,OAAO,EAAE,CAAC;AAE9C,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACjD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC;IACvD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;CACnE,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,yBAAiB,CAAC,IAAI,CAAC;IAC3D,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC,MAAM,CAAC;IACR,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACjD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC;CACxD,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC;IACjD,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;CAC7G,CAAC,CAAC"}
1
+ {"version":3,"file":"deck.js","sourceRoot":"","sources":["../../src/schemas/deck.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const BundleFormatSchema: z.ZodLiteral<"agent-deck-bundle">;
3
3
  export declare const BundleVersionSchema: z.ZodLiteral<1>;
4
+ export declare const BundleV2VersionSchema: z.ZodLiteral<2>;
4
5
  export declare const BundleScopeSchema: z.ZodEnum<["collection", "deck"]>;
5
6
  export declare const BundleServiceSchema: z.ZodObject<{
6
7
  id: z.ZodString;
@@ -291,6 +292,617 @@ export declare const BundleV1Schema: z.ZodObject<{
291
292
  playbookIds?: string[] | undefined;
292
293
  }[] | undefined;
293
294
  }>;
295
+ export declare const BundleDeckV2Schema: z.ZodObject<{
296
+ id: z.ZodString;
297
+ name: z.ZodString;
298
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
299
+ serviceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
300
+ playbookIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
301
+ }, "strip", z.ZodTypeAny, {
302
+ id: string;
303
+ name: string;
304
+ operatingInstructions: string;
305
+ serviceIds: string[];
306
+ playbookIds: string[];
307
+ }, {
308
+ id: string;
309
+ name: string;
310
+ operatingInstructions?: string | undefined;
311
+ serviceIds?: string[] | undefined;
312
+ playbookIds?: string[] | undefined;
313
+ }>;
314
+ export declare const BundleV2Schema: z.ZodObject<{
315
+ format: z.ZodLiteral<"agent-deck-bundle">;
316
+ version: z.ZodLiteral<2>;
317
+ exportedAt: z.ZodString;
318
+ exportedFrom: z.ZodObject<{
319
+ agentDeckVersion: z.ZodString;
320
+ }, "strip", z.ZodTypeAny, {
321
+ agentDeckVersion: string;
322
+ }, {
323
+ agentDeckVersion: string;
324
+ }>;
325
+ scope: z.ZodEnum<["collection", "deck"]>;
326
+ services: z.ZodDefault<z.ZodArray<z.ZodObject<{
327
+ id: z.ZodString;
328
+ name: z.ZodString;
329
+ type: z.ZodEnum<["mcp", "a2a", "local-mcp"]>;
330
+ url: z.ZodString;
331
+ description: z.ZodOptional<z.ZodString>;
332
+ cardColor: z.ZodOptional<z.ZodString>;
333
+ iconUrl: z.ZodOptional<z.ZodString>;
334
+ disabledToolNames: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
335
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
336
+ oauthClientId: z.ZodOptional<z.ZodString>;
337
+ oauthAuthorizationUrl: z.ZodOptional<z.ZodString>;
338
+ oauthTokenUrl: z.ZodOptional<z.ZodString>;
339
+ oauthRedirectUri: z.ZodOptional<z.ZodString>;
340
+ oauthScope: z.ZodOptional<z.ZodString>;
341
+ localCommand: z.ZodOptional<z.ZodString>;
342
+ localArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
343
+ localWorkingDir: z.ZodOptional<z.ZodString>;
344
+ }, "strict", z.ZodTypeAny, {
345
+ id: string;
346
+ name: string;
347
+ type: "mcp" | "a2a" | "local-mcp";
348
+ url: string;
349
+ disabledToolNames: string[];
350
+ description?: string | undefined;
351
+ cardColor?: string | undefined;
352
+ iconUrl?: string | undefined;
353
+ headers?: Record<string, string> | undefined;
354
+ oauthClientId?: string | undefined;
355
+ oauthAuthorizationUrl?: string | undefined;
356
+ oauthTokenUrl?: string | undefined;
357
+ oauthRedirectUri?: string | undefined;
358
+ oauthScope?: string | undefined;
359
+ localCommand?: string | undefined;
360
+ localArgs?: string[] | undefined;
361
+ localWorkingDir?: string | undefined;
362
+ }, {
363
+ id: string;
364
+ name: string;
365
+ type: "mcp" | "a2a" | "local-mcp";
366
+ url: string;
367
+ description?: string | undefined;
368
+ cardColor?: string | undefined;
369
+ iconUrl?: string | undefined;
370
+ disabledToolNames?: string[] | undefined;
371
+ headers?: Record<string, string> | undefined;
372
+ oauthClientId?: string | undefined;
373
+ oauthAuthorizationUrl?: string | undefined;
374
+ oauthTokenUrl?: string | undefined;
375
+ oauthRedirectUri?: string | undefined;
376
+ oauthScope?: string | undefined;
377
+ localCommand?: string | undefined;
378
+ localArgs?: string[] | undefined;
379
+ localWorkingDir?: string | undefined;
380
+ }>, "many">>;
381
+ playbooks: z.ZodDefault<z.ZodArray<z.ZodObject<{
382
+ id: z.ZodString;
383
+ title: z.ZodString;
384
+ body: z.ZodDefault<z.ZodString>;
385
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
386
+ dependsOnServiceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
387
+ exec: z.ZodOptional<z.ZodString>;
388
+ skill: z.ZodOptional<z.ZodString>;
389
+ }, "strict", z.ZodTypeAny, {
390
+ id: string;
391
+ title: string;
392
+ body: string;
393
+ triggers: string[];
394
+ dependsOnServiceIds: string[];
395
+ exec?: string | undefined;
396
+ skill?: string | undefined;
397
+ }, {
398
+ id: string;
399
+ title: string;
400
+ body?: string | undefined;
401
+ triggers?: string[] | undefined;
402
+ dependsOnServiceIds?: string[] | undefined;
403
+ exec?: string | undefined;
404
+ skill?: string | undefined;
405
+ }>, "many">>;
406
+ decks: z.ZodDefault<z.ZodArray<z.ZodObject<{
407
+ id: z.ZodString;
408
+ name: z.ZodString;
409
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
410
+ serviceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
411
+ playbookIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
412
+ }, "strip", z.ZodTypeAny, {
413
+ id: string;
414
+ name: string;
415
+ operatingInstructions: string;
416
+ serviceIds: string[];
417
+ playbookIds: string[];
418
+ }, {
419
+ id: string;
420
+ name: string;
421
+ operatingInstructions?: string | undefined;
422
+ serviceIds?: string[] | undefined;
423
+ playbookIds?: string[] | undefined;
424
+ }>, "many">>;
425
+ }, "strict", z.ZodTypeAny, {
426
+ services: {
427
+ id: string;
428
+ name: string;
429
+ type: "mcp" | "a2a" | "local-mcp";
430
+ url: string;
431
+ disabledToolNames: string[];
432
+ description?: string | undefined;
433
+ cardColor?: string | undefined;
434
+ iconUrl?: string | undefined;
435
+ headers?: Record<string, string> | undefined;
436
+ oauthClientId?: string | undefined;
437
+ oauthAuthorizationUrl?: string | undefined;
438
+ oauthTokenUrl?: string | undefined;
439
+ oauthRedirectUri?: string | undefined;
440
+ oauthScope?: string | undefined;
441
+ localCommand?: string | undefined;
442
+ localArgs?: string[] | undefined;
443
+ localWorkingDir?: string | undefined;
444
+ }[];
445
+ playbooks: {
446
+ id: string;
447
+ title: string;
448
+ body: string;
449
+ triggers: string[];
450
+ dependsOnServiceIds: string[];
451
+ exec?: string | undefined;
452
+ skill?: string | undefined;
453
+ }[];
454
+ format: "agent-deck-bundle";
455
+ version: 2;
456
+ exportedAt: string;
457
+ exportedFrom: {
458
+ agentDeckVersion: string;
459
+ };
460
+ scope: "collection" | "deck";
461
+ decks: {
462
+ id: string;
463
+ name: string;
464
+ operatingInstructions: string;
465
+ serviceIds: string[];
466
+ playbookIds: string[];
467
+ }[];
468
+ }, {
469
+ format: "agent-deck-bundle";
470
+ version: 2;
471
+ exportedAt: string;
472
+ exportedFrom: {
473
+ agentDeckVersion: string;
474
+ };
475
+ scope: "collection" | "deck";
476
+ services?: {
477
+ id: string;
478
+ name: string;
479
+ type: "mcp" | "a2a" | "local-mcp";
480
+ url: string;
481
+ description?: string | undefined;
482
+ cardColor?: string | undefined;
483
+ iconUrl?: string | undefined;
484
+ disabledToolNames?: string[] | undefined;
485
+ headers?: Record<string, string> | undefined;
486
+ oauthClientId?: string | undefined;
487
+ oauthAuthorizationUrl?: string | undefined;
488
+ oauthTokenUrl?: string | undefined;
489
+ oauthRedirectUri?: string | undefined;
490
+ oauthScope?: string | undefined;
491
+ localCommand?: string | undefined;
492
+ localArgs?: string[] | undefined;
493
+ localWorkingDir?: string | undefined;
494
+ }[] | undefined;
495
+ playbooks?: {
496
+ id: string;
497
+ title: string;
498
+ body?: string | undefined;
499
+ triggers?: string[] | undefined;
500
+ dependsOnServiceIds?: string[] | undefined;
501
+ exec?: string | undefined;
502
+ skill?: string | undefined;
503
+ }[] | undefined;
504
+ decks?: {
505
+ id: string;
506
+ name: string;
507
+ operatingInstructions?: string | undefined;
508
+ serviceIds?: string[] | undefined;
509
+ playbookIds?: string[] | undefined;
510
+ }[] | undefined;
511
+ }>;
512
+ /**
513
+ * Import-side parser: exports always emit v2, but v1 bundles stay readable.
514
+ * Imported v1 decks receive empty instructions (see import-bundle.ts).
515
+ */
516
+ export declare const BundleAnySchema: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
517
+ format: z.ZodLiteral<"agent-deck-bundle">;
518
+ version: z.ZodLiteral<1>;
519
+ exportedAt: z.ZodString;
520
+ exportedFrom: z.ZodObject<{
521
+ agentDeckVersion: z.ZodString;
522
+ }, "strip", z.ZodTypeAny, {
523
+ agentDeckVersion: string;
524
+ }, {
525
+ agentDeckVersion: string;
526
+ }>;
527
+ scope: z.ZodEnum<["collection", "deck"]>;
528
+ services: z.ZodDefault<z.ZodArray<z.ZodObject<{
529
+ id: z.ZodString;
530
+ name: z.ZodString;
531
+ type: z.ZodEnum<["mcp", "a2a", "local-mcp"]>;
532
+ url: z.ZodString;
533
+ description: z.ZodOptional<z.ZodString>;
534
+ cardColor: z.ZodOptional<z.ZodString>;
535
+ iconUrl: z.ZodOptional<z.ZodString>;
536
+ disabledToolNames: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
537
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
538
+ oauthClientId: z.ZodOptional<z.ZodString>;
539
+ oauthAuthorizationUrl: z.ZodOptional<z.ZodString>;
540
+ oauthTokenUrl: z.ZodOptional<z.ZodString>;
541
+ oauthRedirectUri: z.ZodOptional<z.ZodString>;
542
+ oauthScope: z.ZodOptional<z.ZodString>;
543
+ localCommand: z.ZodOptional<z.ZodString>;
544
+ localArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
545
+ localWorkingDir: z.ZodOptional<z.ZodString>;
546
+ }, "strict", z.ZodTypeAny, {
547
+ id: string;
548
+ name: string;
549
+ type: "mcp" | "a2a" | "local-mcp";
550
+ url: string;
551
+ disabledToolNames: string[];
552
+ description?: string | undefined;
553
+ cardColor?: string | undefined;
554
+ iconUrl?: string | undefined;
555
+ headers?: Record<string, string> | undefined;
556
+ oauthClientId?: string | undefined;
557
+ oauthAuthorizationUrl?: string | undefined;
558
+ oauthTokenUrl?: string | undefined;
559
+ oauthRedirectUri?: string | undefined;
560
+ oauthScope?: string | undefined;
561
+ localCommand?: string | undefined;
562
+ localArgs?: string[] | undefined;
563
+ localWorkingDir?: string | undefined;
564
+ }, {
565
+ id: string;
566
+ name: string;
567
+ type: "mcp" | "a2a" | "local-mcp";
568
+ url: string;
569
+ description?: string | undefined;
570
+ cardColor?: string | undefined;
571
+ iconUrl?: string | undefined;
572
+ disabledToolNames?: string[] | undefined;
573
+ headers?: Record<string, string> | undefined;
574
+ oauthClientId?: string | undefined;
575
+ oauthAuthorizationUrl?: string | undefined;
576
+ oauthTokenUrl?: string | undefined;
577
+ oauthRedirectUri?: string | undefined;
578
+ oauthScope?: string | undefined;
579
+ localCommand?: string | undefined;
580
+ localArgs?: string[] | undefined;
581
+ localWorkingDir?: string | undefined;
582
+ }>, "many">>;
583
+ playbooks: z.ZodDefault<z.ZodArray<z.ZodObject<{
584
+ id: z.ZodString;
585
+ title: z.ZodString;
586
+ body: z.ZodDefault<z.ZodString>;
587
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
588
+ dependsOnServiceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
589
+ exec: z.ZodOptional<z.ZodString>;
590
+ skill: z.ZodOptional<z.ZodString>;
591
+ }, "strict", z.ZodTypeAny, {
592
+ id: string;
593
+ title: string;
594
+ body: string;
595
+ triggers: string[];
596
+ dependsOnServiceIds: string[];
597
+ exec?: string | undefined;
598
+ skill?: string | undefined;
599
+ }, {
600
+ id: string;
601
+ title: string;
602
+ body?: string | undefined;
603
+ triggers?: string[] | undefined;
604
+ dependsOnServiceIds?: string[] | undefined;
605
+ exec?: string | undefined;
606
+ skill?: string | undefined;
607
+ }>, "many">>;
608
+ decks: z.ZodDefault<z.ZodArray<z.ZodObject<{
609
+ id: z.ZodString;
610
+ name: z.ZodString;
611
+ serviceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
612
+ playbookIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
613
+ }, "strip", z.ZodTypeAny, {
614
+ id: string;
615
+ name: string;
616
+ serviceIds: string[];
617
+ playbookIds: string[];
618
+ }, {
619
+ id: string;
620
+ name: string;
621
+ serviceIds?: string[] | undefined;
622
+ playbookIds?: string[] | undefined;
623
+ }>, "many">>;
624
+ }, "strict", z.ZodTypeAny, {
625
+ services: {
626
+ id: string;
627
+ name: string;
628
+ type: "mcp" | "a2a" | "local-mcp";
629
+ url: string;
630
+ disabledToolNames: string[];
631
+ description?: string | undefined;
632
+ cardColor?: string | undefined;
633
+ iconUrl?: string | undefined;
634
+ headers?: Record<string, string> | undefined;
635
+ oauthClientId?: string | undefined;
636
+ oauthAuthorizationUrl?: string | undefined;
637
+ oauthTokenUrl?: string | undefined;
638
+ oauthRedirectUri?: string | undefined;
639
+ oauthScope?: string | undefined;
640
+ localCommand?: string | undefined;
641
+ localArgs?: string[] | undefined;
642
+ localWorkingDir?: string | undefined;
643
+ }[];
644
+ playbooks: {
645
+ id: string;
646
+ title: string;
647
+ body: string;
648
+ triggers: string[];
649
+ dependsOnServiceIds: string[];
650
+ exec?: string | undefined;
651
+ skill?: string | undefined;
652
+ }[];
653
+ format: "agent-deck-bundle";
654
+ version: 1;
655
+ exportedAt: string;
656
+ exportedFrom: {
657
+ agentDeckVersion: string;
658
+ };
659
+ scope: "collection" | "deck";
660
+ decks: {
661
+ id: string;
662
+ name: string;
663
+ serviceIds: string[];
664
+ playbookIds: string[];
665
+ }[];
666
+ }, {
667
+ format: "agent-deck-bundle";
668
+ version: 1;
669
+ exportedAt: string;
670
+ exportedFrom: {
671
+ agentDeckVersion: string;
672
+ };
673
+ scope: "collection" | "deck";
674
+ services?: {
675
+ id: string;
676
+ name: string;
677
+ type: "mcp" | "a2a" | "local-mcp";
678
+ url: string;
679
+ description?: string | undefined;
680
+ cardColor?: string | undefined;
681
+ iconUrl?: string | undefined;
682
+ disabledToolNames?: string[] | undefined;
683
+ headers?: Record<string, string> | undefined;
684
+ oauthClientId?: string | undefined;
685
+ oauthAuthorizationUrl?: string | undefined;
686
+ oauthTokenUrl?: string | undefined;
687
+ oauthRedirectUri?: string | undefined;
688
+ oauthScope?: string | undefined;
689
+ localCommand?: string | undefined;
690
+ localArgs?: string[] | undefined;
691
+ localWorkingDir?: string | undefined;
692
+ }[] | undefined;
693
+ playbooks?: {
694
+ id: string;
695
+ title: string;
696
+ body?: string | undefined;
697
+ triggers?: string[] | undefined;
698
+ dependsOnServiceIds?: string[] | undefined;
699
+ exec?: string | undefined;
700
+ skill?: string | undefined;
701
+ }[] | undefined;
702
+ decks?: {
703
+ id: string;
704
+ name: string;
705
+ serviceIds?: string[] | undefined;
706
+ playbookIds?: string[] | undefined;
707
+ }[] | undefined;
708
+ }>, z.ZodObject<{
709
+ format: z.ZodLiteral<"agent-deck-bundle">;
710
+ version: z.ZodLiteral<2>;
711
+ exportedAt: z.ZodString;
712
+ exportedFrom: z.ZodObject<{
713
+ agentDeckVersion: z.ZodString;
714
+ }, "strip", z.ZodTypeAny, {
715
+ agentDeckVersion: string;
716
+ }, {
717
+ agentDeckVersion: string;
718
+ }>;
719
+ scope: z.ZodEnum<["collection", "deck"]>;
720
+ services: z.ZodDefault<z.ZodArray<z.ZodObject<{
721
+ id: z.ZodString;
722
+ name: z.ZodString;
723
+ type: z.ZodEnum<["mcp", "a2a", "local-mcp"]>;
724
+ url: z.ZodString;
725
+ description: z.ZodOptional<z.ZodString>;
726
+ cardColor: z.ZodOptional<z.ZodString>;
727
+ iconUrl: z.ZodOptional<z.ZodString>;
728
+ disabledToolNames: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
729
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
730
+ oauthClientId: z.ZodOptional<z.ZodString>;
731
+ oauthAuthorizationUrl: z.ZodOptional<z.ZodString>;
732
+ oauthTokenUrl: z.ZodOptional<z.ZodString>;
733
+ oauthRedirectUri: z.ZodOptional<z.ZodString>;
734
+ oauthScope: z.ZodOptional<z.ZodString>;
735
+ localCommand: z.ZodOptional<z.ZodString>;
736
+ localArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
737
+ localWorkingDir: z.ZodOptional<z.ZodString>;
738
+ }, "strict", z.ZodTypeAny, {
739
+ id: string;
740
+ name: string;
741
+ type: "mcp" | "a2a" | "local-mcp";
742
+ url: string;
743
+ disabledToolNames: string[];
744
+ description?: string | undefined;
745
+ cardColor?: string | undefined;
746
+ iconUrl?: string | undefined;
747
+ headers?: Record<string, string> | undefined;
748
+ oauthClientId?: string | undefined;
749
+ oauthAuthorizationUrl?: string | undefined;
750
+ oauthTokenUrl?: string | undefined;
751
+ oauthRedirectUri?: string | undefined;
752
+ oauthScope?: string | undefined;
753
+ localCommand?: string | undefined;
754
+ localArgs?: string[] | undefined;
755
+ localWorkingDir?: string | undefined;
756
+ }, {
757
+ id: string;
758
+ name: string;
759
+ type: "mcp" | "a2a" | "local-mcp";
760
+ url: string;
761
+ description?: string | undefined;
762
+ cardColor?: string | undefined;
763
+ iconUrl?: string | undefined;
764
+ disabledToolNames?: string[] | undefined;
765
+ headers?: Record<string, string> | undefined;
766
+ oauthClientId?: string | undefined;
767
+ oauthAuthorizationUrl?: string | undefined;
768
+ oauthTokenUrl?: string | undefined;
769
+ oauthRedirectUri?: string | undefined;
770
+ oauthScope?: string | undefined;
771
+ localCommand?: string | undefined;
772
+ localArgs?: string[] | undefined;
773
+ localWorkingDir?: string | undefined;
774
+ }>, "many">>;
775
+ playbooks: z.ZodDefault<z.ZodArray<z.ZodObject<{
776
+ id: z.ZodString;
777
+ title: z.ZodString;
778
+ body: z.ZodDefault<z.ZodString>;
779
+ triggers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
780
+ dependsOnServiceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
781
+ exec: z.ZodOptional<z.ZodString>;
782
+ skill: z.ZodOptional<z.ZodString>;
783
+ }, "strict", z.ZodTypeAny, {
784
+ id: string;
785
+ title: string;
786
+ body: string;
787
+ triggers: string[];
788
+ dependsOnServiceIds: string[];
789
+ exec?: string | undefined;
790
+ skill?: string | undefined;
791
+ }, {
792
+ id: string;
793
+ title: string;
794
+ body?: string | undefined;
795
+ triggers?: string[] | undefined;
796
+ dependsOnServiceIds?: string[] | undefined;
797
+ exec?: string | undefined;
798
+ skill?: string | undefined;
799
+ }>, "many">>;
800
+ decks: z.ZodDefault<z.ZodArray<z.ZodObject<{
801
+ id: z.ZodString;
802
+ name: z.ZodString;
803
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
804
+ serviceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
805
+ playbookIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
806
+ }, "strip", z.ZodTypeAny, {
807
+ id: string;
808
+ name: string;
809
+ operatingInstructions: string;
810
+ serviceIds: string[];
811
+ playbookIds: string[];
812
+ }, {
813
+ id: string;
814
+ name: string;
815
+ operatingInstructions?: string | undefined;
816
+ serviceIds?: string[] | undefined;
817
+ playbookIds?: string[] | undefined;
818
+ }>, "many">>;
819
+ }, "strict", z.ZodTypeAny, {
820
+ services: {
821
+ id: string;
822
+ name: string;
823
+ type: "mcp" | "a2a" | "local-mcp";
824
+ url: string;
825
+ disabledToolNames: string[];
826
+ description?: string | undefined;
827
+ cardColor?: string | undefined;
828
+ iconUrl?: string | undefined;
829
+ headers?: Record<string, string> | undefined;
830
+ oauthClientId?: string | undefined;
831
+ oauthAuthorizationUrl?: string | undefined;
832
+ oauthTokenUrl?: string | undefined;
833
+ oauthRedirectUri?: string | undefined;
834
+ oauthScope?: string | undefined;
835
+ localCommand?: string | undefined;
836
+ localArgs?: string[] | undefined;
837
+ localWorkingDir?: string | undefined;
838
+ }[];
839
+ playbooks: {
840
+ id: string;
841
+ title: string;
842
+ body: string;
843
+ triggers: string[];
844
+ dependsOnServiceIds: string[];
845
+ exec?: string | undefined;
846
+ skill?: string | undefined;
847
+ }[];
848
+ format: "agent-deck-bundle";
849
+ version: 2;
850
+ exportedAt: string;
851
+ exportedFrom: {
852
+ agentDeckVersion: string;
853
+ };
854
+ scope: "collection" | "deck";
855
+ decks: {
856
+ id: string;
857
+ name: string;
858
+ operatingInstructions: string;
859
+ serviceIds: string[];
860
+ playbookIds: string[];
861
+ }[];
862
+ }, {
863
+ format: "agent-deck-bundle";
864
+ version: 2;
865
+ exportedAt: string;
866
+ exportedFrom: {
867
+ agentDeckVersion: string;
868
+ };
869
+ scope: "collection" | "deck";
870
+ services?: {
871
+ id: string;
872
+ name: string;
873
+ type: "mcp" | "a2a" | "local-mcp";
874
+ url: string;
875
+ description?: string | undefined;
876
+ cardColor?: string | undefined;
877
+ iconUrl?: string | undefined;
878
+ disabledToolNames?: string[] | undefined;
879
+ headers?: Record<string, string> | undefined;
880
+ oauthClientId?: string | undefined;
881
+ oauthAuthorizationUrl?: string | undefined;
882
+ oauthTokenUrl?: string | undefined;
883
+ oauthRedirectUri?: string | undefined;
884
+ oauthScope?: string | undefined;
885
+ localCommand?: string | undefined;
886
+ localArgs?: string[] | undefined;
887
+ localWorkingDir?: string | undefined;
888
+ }[] | undefined;
889
+ playbooks?: {
890
+ id: string;
891
+ title: string;
892
+ body?: string | undefined;
893
+ triggers?: string[] | undefined;
894
+ dependsOnServiceIds?: string[] | undefined;
895
+ exec?: string | undefined;
896
+ skill?: string | undefined;
897
+ }[] | undefined;
898
+ decks?: {
899
+ id: string;
900
+ name: string;
901
+ operatingInstructions?: string | undefined;
902
+ serviceIds?: string[] | undefined;
903
+ playbookIds?: string[] | undefined;
904
+ }[] | undefined;
905
+ }>]>;
294
906
  export declare const ImportEntityCountsSchema: z.ZodObject<{
295
907
  created: z.ZodNumber;
296
908
  reused: z.ZodNumber;
@@ -481,6 +1093,9 @@ export type BundleService = z.infer<typeof BundleServiceSchema>;
481
1093
  export type BundlePlaybook = z.infer<typeof BundlePlaybookSchema>;
482
1094
  export type BundleDeck = z.infer<typeof BundleDeckSchema>;
483
1095
  export type BundleV1 = z.infer<typeof BundleV1Schema>;
1096
+ export type BundleDeckV2 = z.infer<typeof BundleDeckV2Schema>;
1097
+ export type BundleV2 = z.infer<typeof BundleV2Schema>;
1098
+ export type BundleAny = z.infer<typeof BundleAnySchema>;
484
1099
  export type BundleScope = z.infer<typeof BundleScopeSchema>;
485
1100
  export type ImportReport = z.infer<typeof ImportReportSchema>;
486
1101
  export type ExportRequest = z.infer<typeof ExportRequestSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"export-bundle.d.ts","sourceRoot":"","sources":["../../src/schemas/export-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB,mCAAiC,CAAC;AACjE,eAAO,MAAM,mBAAmB,iBAAe,CAAC;AAChD,eAAO,MAAM,iBAAiB,mCAAiC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBrB,CAAC;AAEZ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAUtB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAQnB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahB,CAAC;AAEZ,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAa5B,CAAC;AAEL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"export-bundle.d.ts","sourceRoot":"","sources":["../../src/schemas/export-bundle.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExportRequestSchema = exports.ImportReportSchema = exports.ImportReportCountsSchema = exports.ImportEntityCountsSchema = exports.BundleV1Schema = exports.BundleDeckSchema = exports.BundlePlaybookSchema = exports.BundleServiceSchema = exports.BundleScopeSchema = exports.BundleVersionSchema = exports.BundleFormatSchema = void 0;
3
+ exports.ExportRequestSchema = exports.ImportReportSchema = exports.ImportReportCountsSchema = exports.ImportEntityCountsSchema = exports.BundleAnySchema = exports.BundleV2Schema = exports.BundleDeckV2Schema = exports.BundleV1Schema = exports.BundleDeckSchema = exports.BundlePlaybookSchema = exports.BundleServiceSchema = exports.BundleScopeSchema = exports.BundleV2VersionSchema = exports.BundleVersionSchema = exports.BundleFormatSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const deck_1 = require("./deck");
5
6
  const playbook_1 = require("./playbook");
6
7
  exports.BundleFormatSchema = zod_1.z.literal('agent-deck-bundle');
7
8
  exports.BundleVersionSchema = zod_1.z.literal(1);
9
+ exports.BundleV2VersionSchema = zod_1.z.literal(2);
8
10
  exports.BundleScopeSchema = zod_1.z.enum(['collection', 'deck']);
9
11
  exports.BundleServiceSchema = zod_1.z
10
12
  .object({
@@ -61,6 +63,38 @@ exports.BundleV1Schema = zod_1.z
61
63
  decks: zod_1.z.array(exports.BundleDeckSchema).default([]),
62
64
  })
63
65
  .strict();
66
+ exports.BundleDeckV2Schema = zod_1.z
67
+ .object({
68
+ id: zod_1.z.string().min(1),
69
+ name: zod_1.z.string().min(1),
70
+ operatingInstructions: deck_1.OperatingInstructionsSchema.default(''),
71
+ serviceIds: zod_1.z.array(zod_1.z.string()).default([]),
72
+ playbookIds: zod_1.z.array(zod_1.z.string()).default([]),
73
+ })
74
+ // Ignore legacy `description` on older bundles.
75
+ .strip();
76
+ exports.BundleV2Schema = zod_1.z
77
+ .object({
78
+ format: exports.BundleFormatSchema,
79
+ version: exports.BundleV2VersionSchema,
80
+ exportedAt: zod_1.z.string().datetime(),
81
+ exportedFrom: zod_1.z.object({
82
+ agentDeckVersion: zod_1.z.string().min(1),
83
+ }),
84
+ scope: exports.BundleScopeSchema,
85
+ services: zod_1.z.array(exports.BundleServiceSchema).default([]),
86
+ playbooks: zod_1.z.array(exports.BundlePlaybookSchema).default([]),
87
+ decks: zod_1.z.array(exports.BundleDeckV2Schema).default([]),
88
+ })
89
+ .strict();
90
+ /**
91
+ * Import-side parser: exports always emit v2, but v1 bundles stay readable.
92
+ * Imported v1 decks receive empty instructions (see import-bundle.ts).
93
+ */
94
+ exports.BundleAnySchema = zod_1.z.discriminatedUnion('version', [
95
+ exports.BundleV1Schema,
96
+ exports.BundleV2Schema,
97
+ ]);
64
98
  exports.ImportEntityCountsSchema = zod_1.z.object({
65
99
  created: zod_1.z.number().int().min(0),
66
100
  reused: zod_1.z.number().int().min(0),
@@ -1 +1 @@
1
- {"version":3,"file":"export-bundle.js","sourceRoot":"","sources":["../../src/schemas/export-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-bundle.js","sourceRoot":"","sources":["../../src/schemas/export-bundle.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,21 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Current store generation is 2 (`decks/<id>.md` with operating instructions
4
+ * in the Markdown body). Version 1 is still accepted so startup and reindex
5
+ * can detect a legacy tree and run the automatic v1→v2 migration; anything
6
+ * else fails closed.
7
+ */
2
8
  export declare const StoreManifestSchema: z.ZodObject<{
3
9
  format: z.ZodLiteral<"agent-deck-store">;
4
- version: z.ZodLiteral<1>;
10
+ version: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
5
11
  migratedFrom: z.ZodOptional<z.ZodLiteral<"sqlite">>;
6
12
  }, "strict", z.ZodTypeAny, {
7
13
  format: "agent-deck-store";
8
- version: 1;
14
+ version: 1 | 2;
9
15
  migratedFrom?: "sqlite" | undefined;
10
16
  }, {
11
17
  format: "agent-deck-store";
12
- version: 1;
18
+ version: 1 | 2;
13
19
  migratedFrom?: "sqlite" | undefined;
14
20
  }>;
15
21
  /**
@@ -117,6 +123,7 @@ export declare const StoreDeckSchema: z.ZodObject<{
117
123
  serviceIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
118
124
  credentialIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
119
125
  playbookIds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
126
+ operatingInstructions: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>>;
120
127
  createdAt: z.ZodString;
121
128
  updatedAt: z.ZodString;
122
129
  }, "strict", z.ZodTypeAny, {
@@ -125,6 +132,7 @@ export declare const StoreDeckSchema: z.ZodObject<{
125
132
  updatedAt: string;
126
133
  createdAt: string;
127
134
  credentialIds: string[];
135
+ operatingInstructions: string;
128
136
  serviceIds: string[];
129
137
  playbookIds: string[];
130
138
  }, {
@@ -133,6 +141,7 @@ export declare const StoreDeckSchema: z.ZodObject<{
133
141
  updatedAt: string;
134
142
  createdAt: string;
135
143
  credentialIds?: string[] | undefined;
144
+ operatingInstructions?: string | undefined;
136
145
  serviceIds?: string[] | undefined;
137
146
  playbookIds?: string[] | undefined;
138
147
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/schemas/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAMrB,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,2BAA2B,iFAa1B,CAAC;AAEf,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAazB,CAAC;AAEZ,mGAAmG;AACnG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;EAUjB,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/schemas/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAMrB,CAAC;AAEZ;;;GAGG;AACH,eAAO,MAAM,2BAA2B,iFAa1B,CAAC;AAEf,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAazB,CAAC;AAEZ,mGAAmG;AACnG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajB,CAAC;AAEZ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -4,11 +4,18 @@ exports.StoreCredentialMetaSchema = exports.StoreDeckSchema = exports.StoreServi
4
4
  const zod_1 = require("zod");
5
5
  const playbook_1 = require("./playbook");
6
6
  const export_bundle_1 = require("./export-bundle");
7
+ const deck_1 = require("./deck");
7
8
  const trigger_hygiene_1 = require("../utils/trigger-hygiene");
9
+ /**
10
+ * Current store generation is 2 (`decks/<id>.md` with operating instructions
11
+ * in the Markdown body). Version 1 is still accepted so startup and reindex
12
+ * can detect a legacy tree and run the automatic v1→v2 migration; anything
13
+ * else fails closed.
14
+ */
8
15
  exports.StoreManifestSchema = zod_1.z
9
16
  .object({
10
17
  format: zod_1.z.literal('agent-deck-store'),
11
- version: zod_1.z.literal(1),
18
+ version: zod_1.z.union([zod_1.z.literal(1), zod_1.z.literal(2)]),
12
19
  migratedFrom: zod_1.z.literal('sqlite').optional(),
13
20
  })
14
21
  .strict();
@@ -56,6 +63,9 @@ exports.StoreDeckSchema = zod_1.z
56
63
  serviceIds: zod_1.z.array(zod_1.z.string()).default([]),
57
64
  credentialIds: zod_1.z.array(zod_1.z.string()).default([]),
58
65
  playbookIds: zod_1.z.array(zod_1.z.string()).default([]),
66
+ // Serialized as the Markdown body of `decks/<id>.md`, not frontmatter.
67
+ // Defaulted so legacy v1 JSON (which has no instructions) still parses.
68
+ operatingInstructions: deck_1.OperatingInstructionsSchema.default(''),
59
69
  createdAt: zod_1.z.string().datetime(),
60
70
  updatedAt: zod_1.z.string().datetime(),
61
71
  })
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/schemas/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/schemas/store.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.11.8",
3
+ "version": "2.0.0",
4
4
  "description": "Shared types, schemas, and utilities for Agent Deck",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",