@cleocode/contracts 2026.5.96 → 2026.5.97

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.
Files changed (113) hide show
  1. package/dist/__tests__/enums.test.d.ts +14 -0
  2. package/dist/__tests__/enums.test.d.ts.map +1 -0
  3. package/dist/__tests__/enums.test.js +75 -0
  4. package/dist/__tests__/enums.test.js.map +1 -0
  5. package/dist/__tests__/jobs.test.d.ts +11 -0
  6. package/dist/__tests__/jobs.test.d.ts.map +1 -0
  7. package/dist/__tests__/jobs.test.js +48 -0
  8. package/dist/__tests__/jobs.test.js.map +1 -0
  9. package/dist/__tests__/memory-wire-shapes.test.d.ts +19 -0
  10. package/dist/__tests__/memory-wire-shapes.test.d.ts.map +1 -0
  11. package/dist/__tests__/memory-wire-shapes.test.js +119 -0
  12. package/dist/__tests__/memory-wire-shapes.test.js.map +1 -0
  13. package/dist/__tests__/operation-def.test.d.ts +20 -0
  14. package/dist/__tests__/operation-def.test.d.ts.map +1 -0
  15. package/dist/__tests__/operation-def.test.js +111 -0
  16. package/dist/__tests__/operation-def.test.js.map +1 -0
  17. package/dist/__tests__/provenance.test.d.ts +18 -0
  18. package/dist/__tests__/provenance.test.d.ts.map +1 -0
  19. package/dist/__tests__/provenance.test.js +142 -0
  20. package/dist/__tests__/provenance.test.js.map +1 -0
  21. package/dist/__tests__/scaffold-diagnostics.test.d.ts +19 -0
  22. package/dist/__tests__/scaffold-diagnostics.test.d.ts.map +1 -0
  23. package/dist/__tests__/scaffold-diagnostics.test.js +70 -0
  24. package/dist/__tests__/scaffold-diagnostics.test.js.map +1 -0
  25. package/dist/dispatch/identity.d.ts +72 -0
  26. package/dist/dispatch/identity.d.ts.map +1 -0
  27. package/dist/dispatch/identity.js +72 -0
  28. package/dist/dispatch/identity.js.map +1 -0
  29. package/dist/dispatch/operation-def.d.ts +92 -0
  30. package/dist/dispatch/operation-def.d.ts.map +1 -0
  31. package/dist/dispatch/operation-def.js +31 -0
  32. package/dist/dispatch/operation-def.js.map +1 -0
  33. package/dist/enums.d.ts +123 -0
  34. package/dist/enums.d.ts.map +1 -0
  35. package/dist/enums.js +139 -0
  36. package/dist/enums.js.map +1 -0
  37. package/dist/index.d.ts +14 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/jobs.d.ts +39 -0
  42. package/dist/jobs.d.ts.map +1 -0
  43. package/dist/jobs.js +19 -0
  44. package/dist/jobs.js.map +1 -0
  45. package/dist/memory/budgeted.d.ts +67 -0
  46. package/dist/memory/budgeted.d.ts.map +1 -0
  47. package/dist/memory/budgeted.js +17 -0
  48. package/dist/memory/budgeted.js.map +1 -0
  49. package/dist/memory/fetch.d.ts +58 -0
  50. package/dist/memory/fetch.d.ts.map +1 -0
  51. package/dist/memory/fetch.js +19 -0
  52. package/dist/memory/fetch.js.map +1 -0
  53. package/dist/memory/observe.d.ts +158 -0
  54. package/dist/memory/observe.d.ts.map +1 -0
  55. package/dist/memory/observe.js +46 -0
  56. package/dist/memory/observe.js.map +1 -0
  57. package/dist/memory/search.d.ts +137 -0
  58. package/dist/memory/search.d.ts.map +1 -0
  59. package/dist/memory/search.js +22 -0
  60. package/dist/memory/search.js.map +1 -0
  61. package/dist/memory/timeline.d.ts +89 -0
  62. package/dist/memory/timeline.d.ts.map +1 -0
  63. package/dist/memory/timeline.js +22 -0
  64. package/dist/memory/timeline.js.map +1 -0
  65. package/dist/operations/focus.d.ts +199 -0
  66. package/dist/operations/focus.d.ts.map +1 -0
  67. package/dist/operations/focus.js +15 -0
  68. package/dist/operations/focus.js.map +1 -0
  69. package/dist/operations/index.d.ts +1 -0
  70. package/dist/operations/index.d.ts.map +1 -1
  71. package/dist/operations/index.js +1 -0
  72. package/dist/operations/index.js.map +1 -1
  73. package/dist/operations/session.d.ts +54 -0
  74. package/dist/operations/session.d.ts.map +1 -1
  75. package/dist/operations/tasks.d.ts +38 -0
  76. package/dist/operations/tasks.d.ts.map +1 -1
  77. package/dist/provenance.d.ts +257 -0
  78. package/dist/provenance.d.ts.map +1 -0
  79. package/dist/provenance.js +42 -0
  80. package/dist/provenance.js.map +1 -0
  81. package/dist/release/plan.d.ts +7 -7
  82. package/dist/scaffold-diagnostics.d.ts +110 -0
  83. package/dist/scaffold-diagnostics.d.ts.map +1 -0
  84. package/dist/scaffold-diagnostics.js +28 -0
  85. package/dist/scaffold-diagnostics.js.map +1 -0
  86. package/dist/session.d.ts +37 -0
  87. package/dist/session.d.ts.map +1 -1
  88. package/dist/session.js.map +1 -1
  89. package/dist/tasks/archive.d.ts +3 -3
  90. package/package.json +42 -2
  91. package/src/__tests__/enums.test.ts +114 -0
  92. package/src/__tests__/jobs.test.ts +76 -0
  93. package/src/__tests__/memory-wire-shapes.test.ts +371 -0
  94. package/src/__tests__/operation-def.test.ts +185 -0
  95. package/src/__tests__/provenance.test.ts +259 -0
  96. package/src/__tests__/scaffold-diagnostics.test.ts +137 -0
  97. package/src/dispatch/identity.ts +109 -0
  98. package/src/dispatch/operation-def.ts +102 -0
  99. package/src/enums.ts +144 -0
  100. package/src/index.ts +77 -0
  101. package/src/jobs.ts +45 -0
  102. package/src/memory/budgeted.ts +75 -0
  103. package/src/memory/fetch.ts +66 -0
  104. package/src/memory/observe.ts +176 -0
  105. package/src/memory/search.ts +145 -0
  106. package/src/memory/timeline.ts +100 -0
  107. package/src/operations/focus.ts +226 -0
  108. package/src/operations/index.ts +1 -0
  109. package/src/operations/session.ts +56 -0
  110. package/src/operations/tasks.ts +40 -0
  111. package/src/provenance.ts +335 -0
  112. package/src/scaffold-diagnostics.ts +119 -0
  113. package/src/session.ts +37 -0
@@ -110,8 +110,8 @@ export declare const ReleaseSchemeSchema: z.ZodEnum<{
110
110
  }>;
111
111
  /** Zod schema for {@link RELEASE_KIND}. */
112
112
  export declare const ReleaseKindSchema: z.ZodEnum<{
113
- regular: "regular";
114
113
  hotfix: "hotfix";
114
+ regular: "regular";
115
115
  prerelease: "prerelease";
116
116
  }>;
117
117
  /** Zod schema for {@link RELEASE_STATUS}. */
@@ -119,10 +119,10 @@ export declare const ReleaseStatusSchema: z.ZodEnum<{
119
119
  failed: "failed";
120
120
  cancelled: "cancelled";
121
121
  planned: "planned";
122
+ reconciled: "reconciled";
122
123
  "pr-opened": "pr-opened";
123
124
  "pr-merged": "pr-merged";
124
125
  published: "published";
125
- reconciled: "reconciled";
126
126
  rolled_back: "rolled_back";
127
127
  }>;
128
128
  /** Zod schema for {@link GATE_STATUS}. */
@@ -169,8 +169,8 @@ export declare const TaskKindSchema: z.ZodEnum<{
169
169
  refactor: "refactor";
170
170
  chore: "chore";
171
171
  breaking: "breaking";
172
- hotfix: "hotfix";
173
172
  revert: "revert";
173
+ hotfix: "hotfix";
174
174
  }>;
175
175
  /** Zod schema for {@link IMPACT}. */
176
176
  export declare const ImpactSchema: z.ZodEnum<{
@@ -207,8 +207,8 @@ export declare const ReleasePlanTaskSchema: z.ZodObject<{
207
207
  refactor: "refactor";
208
208
  chore: "chore";
209
209
  breaking: "breaking";
210
- hotfix: "hotfix";
211
210
  revert: "revert";
211
+ hotfix: "hotfix";
212
212
  }>;
213
213
  impact: z.ZodEnum<{
214
214
  major: "major";
@@ -352,8 +352,8 @@ export declare const ReleasePlanSchema: z.ZodObject<{
352
352
  }>;
353
353
  epicId: z.ZodString;
354
354
  releaseKind: z.ZodEnum<{
355
- regular: "regular";
356
355
  hotfix: "hotfix";
356
+ regular: "regular";
357
357
  prerelease: "prerelease";
358
358
  }>;
359
359
  createdAt: z.ZodISODateTime;
@@ -372,8 +372,8 @@ export declare const ReleasePlanSchema: z.ZodObject<{
372
372
  refactor: "refactor";
373
373
  chore: "chore";
374
374
  breaking: "breaking";
375
- hotfix: "hotfix";
376
375
  revert: "revert";
376
+ hotfix: "hotfix";
377
377
  }>;
378
378
  impact: z.ZodEnum<{
379
379
  major: "major";
@@ -449,10 +449,10 @@ export declare const ReleasePlanSchema: z.ZodObject<{
449
449
  failed: "failed";
450
450
  cancelled: "cancelled";
451
451
  planned: "planned";
452
+ reconciled: "reconciled";
452
453
  "pr-opened": "pr-opened";
453
454
  "pr-merged": "pr-merged";
454
455
  published: "published";
455
- reconciled: "reconciled";
456
456
  rolled_back: "rolled_back";
457
457
  }>;
458
458
  meta: z.ZodOptional<z.ZodObject<{
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Scaffold + diagnostic result contracts.
3
+ *
4
+ * Canonical home for the result shapes produced by CLEO's directory/file
5
+ * scaffolding utilities (`ensure*`) and read-only health-check utilities
6
+ * (`check*`). Promoted to `@cleocode/contracts` in Phase 0a of the
7
+ * SG-ARCH-SOLID Saga to eliminate duplicate definitions that previously
8
+ * lived in `packages/core/src/scaffold.ts`, `injection.ts`, `hooks.ts`,
9
+ * `schema-management.ts`, and `validation/doctor/checks.ts`.
10
+ *
11
+ * Consolidated types:
12
+ * - {@link ScaffoldResult} — was defined 3× in core (scaffold/injection/hooks)
13
+ * - {@link CheckStatus} — was defined 2× in core (scaffold/doctor checks)
14
+ * - {@link CheckResult} — was defined 2× in core (scaffold/doctor checks)
15
+ * - {@link HookCheckResult} — single canonical definition (no prior duplication;
16
+ * promoted here to keep all scaffold-diagnostic shapes co-located)
17
+ *
18
+ * NOT consolidated (intentional — different domain shape):
19
+ * - `CheckResult` in `packages/core/src/schema-management.ts` is a
20
+ * `{ ok, installed, bundled, missing, stale }` schema-install report,
21
+ * unrelated to diagnostic checks. It retains its local definition and
22
+ * will be renamed in a follow-up slice if/when its naming collision
23
+ * warrants a separate cleanup task.
24
+ *
25
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
26
+ */
27
+ /**
28
+ * Result of an `ensure*` scaffolding operation.
29
+ *
30
+ * All ensure functions in `@cleocode/core` are idempotent — they may
31
+ * create, repair, or skip the requested resource and report which
32
+ * action they took.
33
+ *
34
+ * Originally defined in:
35
+ * - `packages/core/src/scaffold.ts`
36
+ * - `packages/core/src/injection.ts`
37
+ * - `packages/core/src/hooks.ts`
38
+ *
39
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
40
+ */
41
+ export interface ScaffoldResult {
42
+ /** What action was taken: created, repaired, or skipped. */
43
+ action: 'created' | 'repaired' | 'skipped';
44
+ /** Filesystem path that was operated on. */
45
+ path: string;
46
+ /** Human-readable explanation of the result. */
47
+ details?: string;
48
+ }
49
+ /**
50
+ * Status of a `check*` diagnostic.
51
+ *
52
+ * Originally defined in:
53
+ * - `packages/core/src/scaffold.ts`
54
+ * - `packages/core/src/validation/doctor/checks.ts`
55
+ *
56
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
57
+ */
58
+ export type CheckStatus = 'passed' | 'failed' | 'warning' | 'info';
59
+ /**
60
+ * Result of a `check*` diagnostic (used by `cleo doctor` and scaffold
61
+ * health checks).
62
+ *
63
+ * Originally defined in:
64
+ * - `packages/core/src/scaffold.ts`
65
+ * - `packages/core/src/validation/doctor/checks.ts`
66
+ *
67
+ * The scaffold.ts and doctor/checks.ts definitions were structurally
68
+ * identical; this is the consolidated shape with TSDoc preserved.
69
+ *
70
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
71
+ */
72
+ export interface CheckResult {
73
+ /** Unique check identifier (e.g. "cleo_structure", "sqlite_db"). */
74
+ id: string;
75
+ /** Category grouping (e.g. "scaffold", "global"). */
76
+ category: string;
77
+ /** Diagnostic outcome: passed, failed, warning, or info. */
78
+ status: CheckStatus;
79
+ /** Human-readable description of the check result. */
80
+ message: string;
81
+ /** Structured metadata about the check (paths, sizes, missing items). */
82
+ details: Record<string, unknown>;
83
+ /** Suggested CLI command to fix the issue, or null if passed. */
84
+ fix: string | null;
85
+ }
86
+ /**
87
+ * Result of a git-hook installation check.
88
+ *
89
+ * Reports whether a managed hook (commit-msg, pre-commit, pre-push) is
90
+ * installed in `.git/hooks/` and whether the installed copy matches the
91
+ * source template under `packages/core/templates/git-hooks/`.
92
+ *
93
+ * Originally defined in `packages/core/src/hooks.ts`. Promoted here to
94
+ * co-locate all scaffold-diagnostic shapes.
95
+ *
96
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
97
+ */
98
+ export interface HookCheckResult {
99
+ /** Hook name (commit-msg, pre-commit, pre-push). */
100
+ hook: string;
101
+ /** Whether the hook is installed at `.git/hooks/<hook>`. */
102
+ installed: boolean;
103
+ /** Whether the installed hook bytes match the source template. */
104
+ current: boolean;
105
+ /** Absolute path of the source template that should be installed. */
106
+ sourcePath: string;
107
+ /** Absolute path where the hook is (or would be) installed. */
108
+ installedPath: string;
109
+ }
110
+ //# sourceMappingURL=scaffold-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-diagnostics.d.ts","sourceRoot":"","sources":["../src/scaffold-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,EAAE,WAAW,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,iEAAiE;IACjE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Scaffold + diagnostic result contracts.
3
+ *
4
+ * Canonical home for the result shapes produced by CLEO's directory/file
5
+ * scaffolding utilities (`ensure*`) and read-only health-check utilities
6
+ * (`check*`). Promoted to `@cleocode/contracts` in Phase 0a of the
7
+ * SG-ARCH-SOLID Saga to eliminate duplicate definitions that previously
8
+ * lived in `packages/core/src/scaffold.ts`, `injection.ts`, `hooks.ts`,
9
+ * `schema-management.ts`, and `validation/doctor/checks.ts`.
10
+ *
11
+ * Consolidated types:
12
+ * - {@link ScaffoldResult} — was defined 3× in core (scaffold/injection/hooks)
13
+ * - {@link CheckStatus} — was defined 2× in core (scaffold/doctor checks)
14
+ * - {@link CheckResult} — was defined 2× in core (scaffold/doctor checks)
15
+ * - {@link HookCheckResult} — single canonical definition (no prior duplication;
16
+ * promoted here to keep all scaffold-diagnostic shapes co-located)
17
+ *
18
+ * NOT consolidated (intentional — different domain shape):
19
+ * - `CheckResult` in `packages/core/src/schema-management.ts` is a
20
+ * `{ ok, installed, bundled, missing, stale }` schema-install report,
21
+ * unrelated to diagnostic checks. It retains its local definition and
22
+ * will be renamed in a follow-up slice if/when its naming collision
23
+ * warrants a separate cleanup task.
24
+ *
25
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 (Phase 0a)
26
+ */
27
+ export {};
28
+ //# sourceMappingURL=scaffold-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-diagnostics.js","sourceRoot":"","sources":["../src/scaffold-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
package/dist/session.d.ts CHANGED
@@ -131,6 +131,43 @@ export interface Session {
131
131
  gradeMode?: boolean;
132
132
  /** ID of the provider adapter used for this session. @defaultValue undefined */
133
133
  providerId?: string | null;
134
+ /**
135
+ * Human-readable agent handle for multi-agent isolation (T9975).
136
+ *
137
+ * Set via `cleo session start --agent <handle>`. Allows concurrent agent
138
+ * sessions to be distinguished in `cleo session list --all` and enables
139
+ * `cleo briefing` env-precedence detection when `CLEO_SESSION_ID` is set.
140
+ *
141
+ * @defaultValue undefined
142
+ */
143
+ agentHandle?: string | null;
144
+ /**
145
+ * Denormalised scope type ("global" | "epic") for fast index queries (T9975).
146
+ *
147
+ * Derived from `scope.type` at session creation; cached in the DB column
148
+ * `scope_kind` to avoid JSON parsing in hot paths.
149
+ *
150
+ * @defaultValue undefined
151
+ */
152
+ scopeKind?: string | null;
153
+ /**
154
+ * Denormalised scope target ID (e.g. "T9964") for epic sessions (T9975).
155
+ *
156
+ * Derived from `scope.epicId` / `scope.rootTaskId` at session creation.
157
+ * NULL for global sessions.
158
+ *
159
+ * @defaultValue undefined
160
+ */
161
+ scopeId?: string | null;
162
+ /**
163
+ * ISO 8601 timestamp of the last mutation on this session (T9975).
164
+ *
165
+ * Updated on session start, task focus change, and task completion.
166
+ * Used by the idle auto-end lifecycle hook and `cleo session list --all`.
167
+ *
168
+ * @defaultValue undefined
169
+ */
170
+ lastActivity?: string | null;
134
171
  }
135
172
  /**
136
173
  * Result of a session start operation.
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,WAAW,OAAO;IACtB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,4DAA4D;IAC5D,KAAK,EAAE,YAAY,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,eAAe,CAAC;IAC1B,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,QAAQ,EAAE,OAAO,EAAE;IAI/B,iDAAiD;IACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW;IAI7C,2CAA2C;IAC3C,IAAI,GAAG,IAAI,SAAS,OAAO,EAAE,CAE5B;IAED,0BAA0B;IAC1B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,kDAAkD;IAClD,UAAU,IAAI,OAAO,GAAG,SAAS;IAIjC,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIzC,+CAA+C;IAC/C,cAAc,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE;IAIvD,mEAAmE;IACnE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAQzD,4EAA4E;IAC5E,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,UAAO,GAAG,OAAO,EAAE;IAQxE,6CAA6C;IAC7C,UAAU,IAAI,OAAO,GAAG,SAAS;IAKjC,4DAA4D;IAC5D,OAAO,IAAI,OAAO,EAAE;IAIpB,gCAAgC;IAChC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;CAGvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmJH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACL,SAAS,CAAY;IAEtC,YAAY,QAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,IAAI,CAAC,QAAmB;QAC7B,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,2CAA2C;IAC3C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,kDAAkD;IAClD,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,4BAA4B;IAC5B,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,+CAA+C;IAC/C,cAAc,CAAC,GAAG,QAAyB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,QAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,IAAY,EAAE,UAAmB;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,UAAU,CAAC,KAA8B,EAAE,UAAU,GAAG,IAAI;QAC1D,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,UAAU;QACR,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,4DAA4D;IAC5D,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,gCAAgC;IAChC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwLH;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACL,SAAS,CAAY;IAEtC,YAAY,QAAmB;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,IAAI,CAAC,QAAmB;QAC7B,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,2CAA2C;IAC3C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,kDAAkD;IAClD,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,4BAA4B;IAC5B,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,+CAA+C;IAC/C,cAAc,CAAC,GAAG,QAAyB;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,QAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,IAAY,EAAE,UAAmB;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACzC,IAAI,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,UAAU,CAAC,KAA8B,EAAE,UAAU,GAAG,IAAI;QAC1D,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,UAAU;QACR,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,4DAA4D;IAC5D,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,gCAAgC;IAChC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -51,8 +51,8 @@ import { z } from 'zod';
51
51
  export declare const ArchiveReason: z.ZodEnum<{
52
52
  cancelled: "cancelled";
53
53
  superseded: "superseded";
54
- reconciled: "reconciled";
55
54
  verified: "verified";
55
+ reconciled: "reconciled";
56
56
  shadowed: "shadowed";
57
57
  "completed-unverified": "completed-unverified";
58
58
  }>;
@@ -67,8 +67,8 @@ export declare const ArchiveReason: z.ZodEnum<{
67
67
  export declare const ArchiveReasonSchema: z.ZodEnum<{
68
68
  cancelled: "cancelled";
69
69
  superseded: "superseded";
70
- reconciled: "reconciled";
71
70
  verified: "verified";
71
+ reconciled: "reconciled";
72
72
  shadowed: "shadowed";
73
73
  "completed-unverified": "completed-unverified";
74
74
  }>;
@@ -93,7 +93,7 @@ export type ArchiveReasonValue = z.infer<typeof ArchiveReason>;
93
93
  * Useful when a Drizzle column or a discriminated union needs the raw
94
94
  * tuple form (e.g. `text('archive_reason', { enum: ARCHIVE_REASON_VALUES })`).
95
95
  */
96
- export declare const ARCHIVE_REASON_VALUES: ("cancelled" | "superseded" | "reconciled" | "verified" | "shadowed" | "completed-unverified")[];
96
+ export declare const ARCHIVE_REASON_VALUES: ("cancelled" | "superseded" | "verified" | "reconciled" | "shadowed" | "completed-unverified")[];
97
97
  /**
98
98
  * The single tombstone value within {@link ArchiveReason}.
99
99
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/contracts",
3
- "version": "2026.5.96",
3
+ "version": "2026.5.97",
4
4
  "description": "Domain types, interfaces, and contracts for the CLEO ecosystem",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,6 +10,30 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
12
  },
13
+ "./provenance": {
14
+ "types": "./dist/provenance.d.ts",
15
+ "import": "./dist/provenance.js"
16
+ },
17
+ "./provenance.js": {
18
+ "types": "./dist/provenance.d.ts",
19
+ "import": "./dist/provenance.js"
20
+ },
21
+ "./jobs": {
22
+ "types": "./dist/jobs.d.ts",
23
+ "import": "./dist/jobs.js"
24
+ },
25
+ "./jobs.js": {
26
+ "types": "./dist/jobs.d.ts",
27
+ "import": "./dist/jobs.js"
28
+ },
29
+ "./enums": {
30
+ "types": "./dist/enums.d.ts",
31
+ "import": "./dist/enums.js"
32
+ },
33
+ "./enums.js": {
34
+ "types": "./dist/enums.d.ts",
35
+ "import": "./dist/enums.js"
36
+ },
13
37
  "./nexus-contract-ops": {
14
38
  "types": "./dist/nexus-contract-ops.d.ts",
15
39
  "import": "./dist/nexus-contract-ops.js"
@@ -50,6 +74,14 @@
50
74
  "types": "./dist/nexus-tasks-bridge-ops.d.ts",
51
75
  "import": "./dist/nexus-tasks-bridge-ops.js"
52
76
  },
77
+ "./dispatch/*": {
78
+ "types": "./dist/dispatch/*.d.ts",
79
+ "import": "./dist/dispatch/*.js"
80
+ },
81
+ "./dispatch/*.js": {
82
+ "types": "./dist/dispatch/*.d.ts",
83
+ "import": "./dist/dispatch/*.js"
84
+ },
53
85
  "./operations/*": {
54
86
  "types": "./dist/operations/*.d.ts",
55
87
  "import": "./dist/operations/*.js"
@@ -73,6 +105,14 @@
73
105
  "./memory/*.js": {
74
106
  "types": "./dist/memory/*.d.ts",
75
107
  "import": "./dist/memory/*.js"
108
+ },
109
+ "./*": {
110
+ "types": "./dist/*.d.ts",
111
+ "import": "./dist/*.js"
112
+ },
113
+ "./*.js": {
114
+ "types": "./dist/*.d.ts",
115
+ "import": "./dist/*.js"
76
116
  }
77
117
  },
78
118
  "engines": {
@@ -98,7 +138,7 @@
98
138
  "dependencies": {
99
139
  "zod": "^4.3.6",
100
140
  "zod-to-json-schema": "^3.25.2",
101
- "@cleocode/lafs": "2026.5.96"
141
+ "@cleocode/lafs": "2026.5.97"
102
142
  },
103
143
  "scripts": {
104
144
  "build": "tsc -b --force && node scripts/emit-schemas.mjs",
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Structural-equivalence + value-set tests for the task-axis enum
3
+ * constants promoted in Phase 0c (T9955).
4
+ *
5
+ * These tests pin the runtime value sets of the 6 `as const` arrays
6
+ * (`TASK_KINDS`, `TASK_SCOPES`, `TASK_SEVERITIES`, `TASK_SIZES`,
7
+ * `ARCHIVE_REASONS`, `TASK_RELATION_TYPES`) so that:
8
+ * - The Drizzle row-type narrowing in `tasks-schema.ts` stays byte-identical.
9
+ * - The DB CHECK constraints they back keep their canonical value list.
10
+ *
11
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 · T9955 (Phase 0c)
12
+ */
13
+
14
+ import { describe, expect, it } from 'vitest';
15
+ import {
16
+ ARCHIVE_REASONS,
17
+ TASK_KINDS,
18
+ TASK_RELATION_TYPES,
19
+ TASK_SCOPES,
20
+ TASK_SEVERITIES,
21
+ TASK_SIZES,
22
+ } from '../enums.js';
23
+
24
+ // ─── Compile-time readonly-tuple guarantees ─────────────────────────
25
+
26
+ /**
27
+ * Compile-time assertion that `T` is a readonly tuple (not a mutable
28
+ * `string[]`). Drizzle's `text({ enum })` narrowing depends on the
29
+ * literal tuple shape, so accidental widening MUST fail at build time.
30
+ */
31
+ type _AssertReadonlyTuple<T extends readonly string[]> = T;
32
+
33
+ type _PinTaskKinds = _AssertReadonlyTuple<typeof TASK_KINDS>;
34
+ type _PinTaskScopes = _AssertReadonlyTuple<typeof TASK_SCOPES>;
35
+ type _PinTaskSeverities = _AssertReadonlyTuple<typeof TASK_SEVERITIES>;
36
+ type _PinTaskSizes = _AssertReadonlyTuple<typeof TASK_SIZES>;
37
+ type _PinArchiveReasons = _AssertReadonlyTuple<typeof ARCHIVE_REASONS>;
38
+ type _PinTaskRelationTypes = _AssertReadonlyTuple<typeof TASK_RELATION_TYPES>;
39
+
40
+ // ─── Runtime value-set assertions ───────────────────────────────────
41
+
42
+ describe('task-axis enum constants', () => {
43
+ it('TASK_KINDS holds the 6 canonical task kinds', () => {
44
+ expect(TASK_KINDS).toEqual(['work', 'research', 'experiment', 'bug', 'spike', 'release']);
45
+ });
46
+
47
+ it('TASK_SCOPES holds project / feature / unit (in canonical order)', () => {
48
+ expect(TASK_SCOPES).toEqual(['project', 'feature', 'unit']);
49
+ });
50
+
51
+ it('TASK_SEVERITIES holds P0 through P3 in increasing severity order', () => {
52
+ expect(TASK_SEVERITIES).toEqual(['P0', 'P1', 'P2', 'P3']);
53
+ });
54
+
55
+ it('TASK_SIZES holds small / medium / large (CLEO avoids time estimates)', () => {
56
+ expect(TASK_SIZES).toEqual(['small', 'medium', 'large']);
57
+ });
58
+
59
+ it('ARCHIVE_REASONS holds exactly the 6 truth-grade closure reasons', () => {
60
+ expect(ARCHIVE_REASONS).toEqual([
61
+ 'verified',
62
+ 'reconciled',
63
+ 'superseded',
64
+ 'shadowed',
65
+ 'cancelled',
66
+ 'completed-unverified',
67
+ ]);
68
+ });
69
+
70
+ it('TASK_RELATION_TYPES includes "groups" (ADR-073 Saga membership)', () => {
71
+ expect(TASK_RELATION_TYPES).toContain('groups');
72
+ expect(TASK_RELATION_TYPES).toEqual([
73
+ 'related',
74
+ 'blocks',
75
+ 'duplicates',
76
+ 'absorbs',
77
+ 'fixes',
78
+ 'extends',
79
+ 'supersedes',
80
+ 'groups',
81
+ ]);
82
+ });
83
+
84
+ it('All enum arrays are non-empty readonly tuples', () => {
85
+ expect(TASK_KINDS.length).toBeGreaterThan(0);
86
+ expect(TASK_SCOPES.length).toBeGreaterThan(0);
87
+ expect(TASK_SEVERITIES.length).toBeGreaterThan(0);
88
+ expect(TASK_SIZES.length).toBeGreaterThan(0);
89
+ expect(ARCHIVE_REASONS.length).toBeGreaterThan(0);
90
+ expect(TASK_RELATION_TYPES.length).toBeGreaterThan(0);
91
+ });
92
+
93
+ // The six `_Pin…` aliases above will fail compilation if any const
94
+ // array is accidentally widened to `string[]`. The reference below
95
+ // prevents unused-locals diagnostics from removing them.
96
+ it('compile-time readonly-tuple pins are wired (no-op at runtime)', () => {
97
+ const pinned: [
98
+ _PinTaskKinds,
99
+ _PinTaskScopes,
100
+ _PinTaskSeverities,
101
+ _PinTaskSizes,
102
+ _PinArchiveReasons,
103
+ _PinTaskRelationTypes,
104
+ ] = [
105
+ TASK_KINDS,
106
+ TASK_SCOPES,
107
+ TASK_SEVERITIES,
108
+ TASK_SIZES,
109
+ ARCHIVE_REASONS,
110
+ TASK_RELATION_TYPES,
111
+ ];
112
+ expect(pinned).toHaveLength(6);
113
+ });
114
+ });
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Structural-equivalence tests for the background-job contracts.
3
+ *
4
+ * Pins the literal shape of {@link BackgroundJobStatus} promoted in
5
+ * Phase 0c (T9955) so accidental narrowing or widening triggers a
6
+ * compile-time failure during `tsc -b` in the CI gate.
7
+ *
8
+ * @since SG-ARCH-SOLID Saga T9831 · E-CONTRACTS-FOUNDATION T9832 · T9955 (Phase 0c)
9
+ */
10
+
11
+ import { describe, expect, it } from 'vitest';
12
+ import type { BackgroundJobStatus } from '../jobs.js';
13
+
14
+ // ─── Compile-time structural-equality helpers ───────────────────────
15
+
16
+ /** Resolve to `1` IFF `A` and `B` are mutually assignable; `2` otherwise. */
17
+ type Equals<A, B> = (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2 ? 1 : 2;
18
+
19
+ /** Compile-time assert that `T` resolves to `1`. */
20
+ type AssertEquals1<T extends 1> = T;
21
+
22
+ // ─── BackgroundJobStatus shape pin ──────────────────────────────────
23
+
24
+ type _BackgroundJobStatusShape =
25
+ | 'pending'
26
+ | 'running'
27
+ | 'complete'
28
+ | 'failed'
29
+ | 'cancelled'
30
+ | 'orphaned';
31
+
32
+ type _AssertBackgroundJobStatusPinned = AssertEquals1<
33
+ Equals<BackgroundJobStatus, _BackgroundJobStatusShape>
34
+ >;
35
+
36
+ // ─── Runtime constructibility smoke ─────────────────────────────────
37
+
38
+ describe('jobs contracts', () => {
39
+ it('BackgroundJobStatus enumerates the 6 documented lifecycle states', () => {
40
+ const all: BackgroundJobStatus[] = [
41
+ 'pending',
42
+ 'running',
43
+ 'complete',
44
+ 'failed',
45
+ 'cancelled',
46
+ 'orphaned',
47
+ ];
48
+ expect(all).toHaveLength(6);
49
+ });
50
+
51
+ it('BackgroundJobStatus distinguishes terminal from in-flight states', () => {
52
+ const terminal: BackgroundJobStatus[] = ['complete', 'failed', 'cancelled', 'orphaned'];
53
+ const inFlight: BackgroundJobStatus[] = ['pending', 'running'];
54
+ expect(terminal).toHaveLength(4);
55
+ expect(inFlight).toHaveLength(2);
56
+ });
57
+
58
+ it('Every BackgroundJobStatus is a non-empty string literal', () => {
59
+ const statuses: BackgroundJobStatus[] = [
60
+ 'pending',
61
+ 'running',
62
+ 'complete',
63
+ 'failed',
64
+ 'cancelled',
65
+ 'orphaned',
66
+ ];
67
+ for (const s of statuses) {
68
+ expect(s.length).toBeGreaterThan(0);
69
+ }
70
+ });
71
+
72
+ it('compile-time pin is wired (no-op at runtime)', () => {
73
+ const pinned: _AssertBackgroundJobStatusPinned = 1;
74
+ expect(pinned).toBe(1);
75
+ });
76
+ });