@ornexus/neocortex 4.60.16

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 (235) hide show
  1. package/LICENSE +56 -0
  2. package/LICENSE-COMMERCIAL.md +70 -0
  3. package/README.md +58 -0
  4. package/dist/sbom.cdx.json +11159 -0
  5. package/docs/install/coderabbit-manual-setup.md +86 -0
  6. package/docs/install/installer-diagnostics.md +107 -0
  7. package/docs/install/linux-global-install.md +97 -0
  8. package/install.js +572 -0
  9. package/install.ps1 +2214 -0
  10. package/install.sh +2013 -0
  11. package/package.json +132 -0
  12. package/packages/client/dist/adapters/adapter-registry.d.ts +61 -0
  13. package/packages/client/dist/adapters/adapter-registry.js +1 -0
  14. package/packages/client/dist/adapters/antigravity-adapter.d.ts +18 -0
  15. package/packages/client/dist/adapters/antigravity-adapter.js +2 -0
  16. package/packages/client/dist/adapters/claude-code-adapter.d.ts +19 -0
  17. package/packages/client/dist/adapters/claude-code-adapter.js +3 -0
  18. package/packages/client/dist/adapters/codex-adapter.d.ts +19 -0
  19. package/packages/client/dist/adapters/codex-adapter.js +2 -0
  20. package/packages/client/dist/adapters/cursor-adapter.d.ts +19 -0
  21. package/packages/client/dist/adapters/cursor-adapter.js +4 -0
  22. package/packages/client/dist/adapters/gemini-adapter.d.ts +18 -0
  23. package/packages/client/dist/adapters/gemini-adapter.js +2 -0
  24. package/packages/client/dist/adapters/index.d.ts +19 -0
  25. package/packages/client/dist/adapters/index.js +1 -0
  26. package/packages/client/dist/adapters/platform-detector.d.ts +48 -0
  27. package/packages/client/dist/adapters/platform-detector.js +1 -0
  28. package/packages/client/dist/adapters/target-adapter.d.ts +70 -0
  29. package/packages/client/dist/adapters/target-adapter.js +0 -0
  30. package/packages/client/dist/adapters/vscode-adapter.d.ts +19 -0
  31. package/packages/client/dist/adapters/vscode-adapter.js +2 -0
  32. package/packages/client/dist/agent/refresh-stubs.d.ts +90 -0
  33. package/packages/client/dist/agent/refresh-stubs.js +2 -0
  34. package/packages/client/dist/agent/update-agent-yaml.d.ts +26 -0
  35. package/packages/client/dist/agent/update-agent-yaml.js +1 -0
  36. package/packages/client/dist/agent/update-description.d.ts +45 -0
  37. package/packages/client/dist/agent/update-description.js +1 -0
  38. package/packages/client/dist/cache/crypto-utils.d.ts +30 -0
  39. package/packages/client/dist/cache/crypto-utils.js +1 -0
  40. package/packages/client/dist/cache/encrypted-cache.d.ts +30 -0
  41. package/packages/client/dist/cache/encrypted-cache.js +1 -0
  42. package/packages/client/dist/cache/in-memory-asset-cache.d.ts +62 -0
  43. package/packages/client/dist/cache/in-memory-asset-cache.js +1 -0
  44. package/packages/client/dist/cache/index.d.ts +13 -0
  45. package/packages/client/dist/cache/index.js +1 -0
  46. package/packages/client/dist/cache/protected-pi-boundary.d.ts +19 -0
  47. package/packages/client/dist/cache/protected-pi-boundary.js +1 -0
  48. package/packages/client/dist/checkpoint/checkpoint-client-reader.d.ts +45 -0
  49. package/packages/client/dist/checkpoint/checkpoint-client-reader.js +2 -0
  50. package/packages/client/dist/checkpoint/index.d.ts +12 -0
  51. package/packages/client/dist/checkpoint/index.js +1 -0
  52. package/packages/client/dist/checkpoint/shared-checkpoint-types.d.ts +85 -0
  53. package/packages/client/dist/checkpoint/shared-checkpoint-types.js +1 -0
  54. package/packages/client/dist/cli.d.ts +14 -0
  55. package/packages/client/dist/cli.js +81 -0
  56. package/packages/client/dist/commands/activate.d.ts +55 -0
  57. package/packages/client/dist/commands/activate.js +8 -0
  58. package/packages/client/dist/commands/cache-status.d.ts +39 -0
  59. package/packages/client/dist/commands/cache-status.js +2 -0
  60. package/packages/client/dist/commands/invoke.d.ts +546 -0
  61. package/packages/client/dist/commands/invoke.js +140 -0
  62. package/packages/client/dist/commands/refresh-memory.d.ts +11 -0
  63. package/packages/client/dist/commands/refresh-memory.js +1 -0
  64. package/packages/client/dist/config/resolver-selection.d.ts +40 -0
  65. package/packages/client/dist/config/resolver-selection.js +1 -0
  66. package/packages/client/dist/config/secure-config.d.ts +78 -0
  67. package/packages/client/dist/config/secure-config.js +12 -0
  68. package/packages/client/dist/constants.d.ts +25 -0
  69. package/packages/client/dist/constants.js +1 -0
  70. package/packages/client/dist/context/context-collector.d.ts +28 -0
  71. package/packages/client/dist/context/context-collector.js +2 -0
  72. package/packages/client/dist/context/context-sanitizer.d.ts +28 -0
  73. package/packages/client/dist/context/context-sanitizer.js +1 -0
  74. package/packages/client/dist/continuity/autonomous-governance.d.ts +84 -0
  75. package/packages/client/dist/continuity/autonomous-governance.js +1 -0
  76. package/packages/client/dist/continuity/continuity-client-state-store.d.ts +302 -0
  77. package/packages/client/dist/continuity/continuity-client-state-store.js +1 -0
  78. package/packages/client/dist/continuity/invoke-hooks.d.ts +19 -0
  79. package/packages/client/dist/continuity/invoke-hooks.js +1 -0
  80. package/packages/client/dist/continuity/migrations/001-initial-schema.d.ts +11 -0
  81. package/packages/client/dist/continuity/migrations/001-initial-schema.js +263 -0
  82. package/packages/client/dist/continuity/migrations/002-processing-output-summary-indexes.d.ts +11 -0
  83. package/packages/client/dist/continuity/migrations/002-processing-output-summary-indexes.js +7 -0
  84. package/packages/client/dist/continuity/migrations/003-headless-execution-attempts.d.ts +11 -0
  85. package/packages/client/dist/continuity/migrations/003-headless-execution-attempts.js +62 -0
  86. package/packages/client/dist/continuity/migrations/004-outbox-delivery-state.d.ts +11 -0
  87. package/packages/client/dist/continuity/migrations/004-outbox-delivery-state.js +19 -0
  88. package/packages/client/dist/continuity/migrations/005-bounded-headless-queue.d.ts +11 -0
  89. package/packages/client/dist/continuity/migrations/005-bounded-headless-queue.js +35 -0
  90. package/packages/client/dist/continuity/outbox.d.ts +83 -0
  91. package/packages/client/dist/continuity/outbox.js +1 -0
  92. package/packages/client/dist/continuity/runner-bootstrap-policy.d.ts +50 -0
  93. package/packages/client/dist/continuity/runner-bootstrap-policy.js +1 -0
  94. package/packages/client/dist/continuity/sqlite-store.d.ts +926 -0
  95. package/packages/client/dist/continuity/sqlite-store.js +619 -0
  96. package/packages/client/dist/errors/error-messages.d.ts +40 -0
  97. package/packages/client/dist/errors/error-messages.js +2 -0
  98. package/packages/client/dist/graph-retrieval/pre-command-hook.d.ts +34 -0
  99. package/packages/client/dist/graph-retrieval/pre-command-hook.js +1 -0
  100. package/packages/client/dist/graph-retrieval/shared-graph-retrieval-contract.d.ts +99 -0
  101. package/packages/client/dist/graph-retrieval/shared-graph-retrieval-contract.js +1 -0
  102. package/packages/client/dist/i18n/first-run.d.ts +23 -0
  103. package/packages/client/dist/i18n/first-run.js +2 -0
  104. package/packages/client/dist/index.d.ts +56 -0
  105. package/packages/client/dist/index.js +1 -0
  106. package/packages/client/dist/license/index.d.ts +5 -0
  107. package/packages/client/dist/license/index.js +1 -0
  108. package/packages/client/dist/license/license-client.d.ts +79 -0
  109. package/packages/client/dist/license/license-client.js +1 -0
  110. package/packages/client/dist/machine/fingerprint.d.ts +34 -0
  111. package/packages/client/dist/machine/fingerprint.js +2 -0
  112. package/packages/client/dist/machine/index.d.ts +5 -0
  113. package/packages/client/dist/machine/index.js +1 -0
  114. package/packages/client/dist/memory/project-memory-writer.d.ts +74 -0
  115. package/packages/client/dist/memory/project-memory-writer.js +36 -0
  116. package/packages/client/dist/memory/shared-project-memory-types.d.ts +370 -0
  117. package/packages/client/dist/memory/shared-project-memory-types.js +2 -0
  118. package/packages/client/dist/policy/architecture-policy.d.ts +40 -0
  119. package/packages/client/dist/policy/architecture-policy.js +2 -0
  120. package/packages/client/dist/policy/index.d.ts +8 -0
  121. package/packages/client/dist/policy/index.js +1 -0
  122. package/packages/client/dist/policy/shared-policy-types.d.ts +89 -0
  123. package/packages/client/dist/policy/shared-policy-types.js +0 -0
  124. package/packages/client/dist/resilience/circuit-breaker.d.ts +70 -0
  125. package/packages/client/dist/resilience/circuit-breaker.js +1 -0
  126. package/packages/client/dist/resilience/degradation-manager.d.ts +67 -0
  127. package/packages/client/dist/resilience/degradation-manager.js +1 -0
  128. package/packages/client/dist/resilience/freshness-indicator.d.ts +59 -0
  129. package/packages/client/dist/resilience/freshness-indicator.js +1 -0
  130. package/packages/client/dist/resilience/index.d.ts +8 -0
  131. package/packages/client/dist/resilience/index.js +1 -0
  132. package/packages/client/dist/resilience/recovery-detector.d.ts +59 -0
  133. package/packages/client/dist/resilience/recovery-detector.js +1 -0
  134. package/packages/client/dist/resolvers/asset-resolver.d.ts +79 -0
  135. package/packages/client/dist/resolvers/asset-resolver.js +0 -0
  136. package/packages/client/dist/resolvers/local-resolver.d.ts +26 -0
  137. package/packages/client/dist/resolvers/local-resolver.js +8 -0
  138. package/packages/client/dist/resolvers/remote-resolver.d.ts +91 -0
  139. package/packages/client/dist/resolvers/remote-resolver.js +1 -0
  140. package/packages/client/dist/runner/binary.d.ts +115 -0
  141. package/packages/client/dist/runner/binary.js +1 -0
  142. package/packages/client/dist/runner/cli.d.ts +168 -0
  143. package/packages/client/dist/runner/cli.js +70 -0
  144. package/packages/client/dist/runner/headless/adapters.d.ts +20 -0
  145. package/packages/client/dist/runner/headless/adapters.js +1 -0
  146. package/packages/client/dist/runner/headless/claude-code-adapter.d.ts +8 -0
  147. package/packages/client/dist/runner/headless/claude-code-adapter.js +1 -0
  148. package/packages/client/dist/runner/headless/fake-adapter.d.ts +8 -0
  149. package/packages/client/dist/runner/headless/fake-adapter.js +1 -0
  150. package/packages/client/dist/runner/headless/opencode-adapter.d.ts +15 -0
  151. package/packages/client/dist/runner/headless/opencode-adapter.js +2 -0
  152. package/packages/client/dist/runner/headless/resolver.d.ts +68 -0
  153. package/packages/client/dist/runner/headless/resolver.js +1 -0
  154. package/packages/client/dist/runner/headless/run-yolo.d.ts +59 -0
  155. package/packages/client/dist/runner/headless/run-yolo.js +1 -0
  156. package/packages/client/dist/runner/headless/run-yoloop.d.ts +113 -0
  157. package/packages/client/dist/runner/headless/run-yoloop.js +1 -0
  158. package/packages/client/dist/runner/headless/types.d.ts +194 -0
  159. package/packages/client/dist/runner/headless/types.js +2 -0
  160. package/packages/client/dist/runner/local-console.d.ts +83 -0
  161. package/packages/client/dist/runner/local-console.js +13 -0
  162. package/packages/client/dist/runner/portal-sync-worker.d.ts +184 -0
  163. package/packages/client/dist/runner/portal-sync-worker.js +1 -0
  164. package/packages/client/dist/runner/project-identity.d.ts +19 -0
  165. package/packages/client/dist/runner/project-identity.js +1 -0
  166. package/packages/client/dist/runner/scheduler.d.ts +186 -0
  167. package/packages/client/dist/runner/scheduler.js +7 -0
  168. package/packages/client/dist/runner-cli.d.ts +9 -0
  169. package/packages/client/dist/runner-cli.js +3 -0
  170. package/packages/client/dist/state/project-state-snapshot.d.ts +24 -0
  171. package/packages/client/dist/state/project-state-snapshot.js +1 -0
  172. package/packages/client/dist/state/state-json-repair.d.ts +74 -0
  173. package/packages/client/dist/state/state-json-repair.js +3 -0
  174. package/packages/client/dist/telemetry/index.d.ts +5 -0
  175. package/packages/client/dist/telemetry/index.js +1 -0
  176. package/packages/client/dist/telemetry/offline-queue.d.ts +57 -0
  177. package/packages/client/dist/telemetry/offline-queue.js +1 -0
  178. package/packages/client/dist/tier/index.d.ts +5 -0
  179. package/packages/client/dist/tier/index.js +1 -0
  180. package/packages/client/dist/tier/tier-aware-client.d.ts +105 -0
  181. package/packages/client/dist/tier/tier-aware-client.js +1 -0
  182. package/packages/client/dist/types/index.d.ts +140 -0
  183. package/packages/client/dist/types/index.js +1 -0
  184. package/packages/client/dist/yoloop/discovery-hook.d.ts +85 -0
  185. package/packages/client/dist/yoloop/discovery-hook.js +2 -0
  186. package/packages/client/dist/yoloop/index.d.ts +10 -0
  187. package/packages/client/dist/yoloop/index.js +1 -0
  188. package/packages/client/dist/yoloop/invoke-hooks.d.ts +127 -0
  189. package/packages/client/dist/yoloop/invoke-hooks.js +5 -0
  190. package/packages/client/dist/yoloop/shared-discover-epics.d.ts +289 -0
  191. package/packages/client/dist/yoloop/shared-discover-epics.js +1 -0
  192. package/packages/client/dist/yoloop/shared-yoloop-types.d.ts +172 -0
  193. package/packages/client/dist/yoloop/shared-yoloop-types.js +1 -0
  194. package/packages/client/dist/yoloop/yoloop-client-state-store.d.ts +124 -0
  195. package/packages/client/dist/yoloop/yoloop-client-state-store.js +1 -0
  196. package/postinstall.js +754 -0
  197. package/targets-stubs/antigravity/README.md +36 -0
  198. package/targets-stubs/antigravity/gemini.md +29 -0
  199. package/targets-stubs/antigravity/install-antigravity.sh +153 -0
  200. package/targets-stubs/antigravity/mcp-config.json +30 -0
  201. package/targets-stubs/antigravity/skill/SKILL.md +166 -0
  202. package/targets-stubs/claude-code/.mcp.json +32 -0
  203. package/targets-stubs/claude-code/README.md +20 -0
  204. package/targets-stubs/claude-code/neocortex-root.agent.yaml +42 -0
  205. package/targets-stubs/claude-code/neocortex-root.md +317 -0
  206. package/targets-stubs/claude-code/neocortex.agent.yaml +42 -0
  207. package/targets-stubs/claude-code/neocortex.md +385 -0
  208. package/targets-stubs/codex/AGENTS.md +250 -0
  209. package/targets-stubs/codex/README.md +47 -0
  210. package/targets-stubs/codex/config-mcp.toml +22 -0
  211. package/targets-stubs/codex/install-codex.sh +63 -0
  212. package/targets-stubs/codex/neocortex.toml +33 -0
  213. package/targets-stubs/cursor/README.md +33 -0
  214. package/targets-stubs/cursor/agent.md +211 -0
  215. package/targets-stubs/cursor/install-cursor.sh +50 -0
  216. package/targets-stubs/cursor/mcp.json +30 -0
  217. package/targets-stubs/gemini-cli/README.md +34 -0
  218. package/targets-stubs/gemini-cli/agent.md +241 -0
  219. package/targets-stubs/gemini-cli/agents/neocortex.md +60 -0
  220. package/targets-stubs/gemini-cli/gemini.md +46 -0
  221. package/targets-stubs/gemini-cli/install-gemini.sh +70 -0
  222. package/targets-stubs/gemini-cli/settings-mcp.json +30 -0
  223. package/targets-stubs/kimi/mcp.json +33 -0
  224. package/targets-stubs/kimi/neocortex.md +60 -0
  225. package/targets-stubs/lib/mcp-merge.js +189 -0
  226. package/targets-stubs/openclaw/README.md +12 -0
  227. package/targets-stubs/openclaw/SKILL.md +92 -0
  228. package/targets-stubs/opencode/neocortex-root.md +267 -0
  229. package/targets-stubs/opencode/neocortex.md +65 -0
  230. package/targets-stubs/opencode/opencode-mcp.json +35 -0
  231. package/targets-stubs/vscode/README.md +34 -0
  232. package/targets-stubs/vscode/copilot-instructions.md +47 -0
  233. package/targets-stubs/vscode/install-vscode.sh +72 -0
  234. package/targets-stubs/vscode/mcp.json +36 -0
  235. package/targets-stubs/vscode/neocortex.agent.md +252 -0
@@ -0,0 +1,926 @@
1
+ /**
2
+ * @license FSL-1.1
3
+ * Copyright (c) 2026 OrNexus AI
4
+ *
5
+ * P180.04 -- Local SQLite continuity store, migrations and integrity checks.
6
+ */
7
+ import { CONTINUITY_RECEIPT_COMPACTION_EVENT_TYPE, CONTINUITY_RECEIPT_RETENTION_REASON_CODES, type ContinuityQueuePolicy, type ContinuityQueueScope, type ContinuityOutboxRetryPolicy, type ContinuityOutboxStatus, type ContinuityRetentionPolicyInput } from './outbox.js';
8
+ export declare const CONTINUITY_SQLITE_RELATIVE_DIR: ".neocortex/continuity";
9
+ export declare const CONTINUITY_SQLITE_FILENAME: "continuity.sqlite";
10
+ export declare const CONTINUITY_SQLITE_SCHEMA_VERSION: 5;
11
+ export declare const DEFAULT_CONTINUITY_SQLITE_BUSY_TIMEOUT_MS = 5000;
12
+ export declare const CONTINUITY_PROCESSING_OUTPUT_SUMMARY_EVENT_TYPE: "processing_output_summary";
13
+ export declare const CONTINUITY_PROCESSING_OUTPUT_SUMMARY_MAX_CHARS: 2000;
14
+ export declare const DEFAULT_CONTINUITY_PROCESSING_SUMMARY_LIMIT: 20;
15
+ export declare const MAX_CONTINUITY_PROCESSING_SUMMARY_LIMIT: 100;
16
+ export declare const SQLITE_ADAPTER_INSTALL_GUIDANCE = "Install the optional Enterprise continuity SQLite adapter with `npm install --workspace packages/client better-sqlite3 --include=optional` or reinstall Neocortex with optional dependencies enabled.";
17
+ /**
18
+ * P195.04: Client-local mirror of the shared continuity process-stage contract
19
+ * (SSoT: `packages/shared/src/continuity/runner-state.ts` ->
20
+ * `CONTINUITY_PUBLIC_STAGES` / `CONTINUITY_STAGE_HISTORY_MAX`). The client keeps a
21
+ * local copy so continuity SQLite persistence has no runtime `@neocortex/shared`
22
+ * import; a drift test in `continuity-sqlite.test.ts` asserts parity with the
23
+ * shared SSoT. Values are an allow-list only -- unknown/arbitrary strings never
24
+ * persist or project as a stage.
25
+ */
26
+ export declare const CONTINUITY_PUBLIC_STAGES: readonly ["discover_more", "create_epic", "run_yoloop", "run_yolo", "run_verifier", "run_review_gate", "compact_context", "wait_external", "backoff", "waiting_human", "complete", "abort", "scheduled", "running", "overlap_skipped", "missed_run_catchup", "completed", "aborted", "cancelled", "blocked", "draft", "planned"];
27
+ export type ContinuityPublicStageName = (typeof CONTINUITY_PUBLIC_STAGES)[number];
28
+ /** P195.04: Maximum retained `stageHistory` entries (newest kept). ADR-P195-03. */
29
+ export declare const CONTINUITY_STAGE_HISTORY_MAX: 20;
30
+ /**
31
+ * P195.04: A single bounded, public-safe process-stage history entry. `at` is a
32
+ * sanitized ISO timestamp string; no raw logs, prompts, paths, URLs, PII or
33
+ * secrets ever appear here.
34
+ */
35
+ export interface ContinuityStageHistoryEntry {
36
+ readonly stage: ContinuityPublicStageName;
37
+ readonly at: string;
38
+ }
39
+ export declare function isContinuityPublicStage(value: unknown): value is ContinuityPublicStageName;
40
+ export declare function sanitizeContinuityStageTimestamp(value: unknown): string | undefined;
41
+ /**
42
+ * P195.04: Validate an unknown value into a bounded, allow-listed stage history.
43
+ * Unknown stages and unsafe timestamps are dropped, and the newest
44
+ * `CONTINUITY_STAGE_HISTORY_MAX` entries are kept.
45
+ */
46
+ export declare function sanitizeContinuityStageHistory(value: unknown): ContinuityStageHistoryEntry[];
47
+ export declare function normalizeContinuityStageIteration(value: unknown): number | undefined;
48
+ export type ContinuitySqliteStoreErrorCode = 'sqlite-adapter-unavailable' | 'sqlite-integrity-failed' | 'sqlite-migration-failed' | 'sqlite-migration-conflict' | 'sqlite-mutation-failed' | 'sqlite-foreign-key-failed' | 'sqlite-public-safety-rejected' | 'sqlite-mutation-blocked';
49
+ export declare class ContinuitySqliteStoreError extends Error {
50
+ readonly code: ContinuitySqliteStoreErrorCode;
51
+ readonly reasonCode: ContinuitySqliteStoreErrorCode;
52
+ readonly guidance?: string;
53
+ readonly mutationBlocked: boolean;
54
+ readonly cause?: unknown;
55
+ constructor(code: ContinuitySqliteStoreErrorCode, message: string, options?: {
56
+ readonly guidance?: string;
57
+ readonly cause?: unknown;
58
+ readonly mutationBlocked?: boolean;
59
+ });
60
+ }
61
+ export interface ContinuitySqliteStatementRunResult {
62
+ readonly changes: number;
63
+ readonly lastInsertRowid?: number | bigint;
64
+ }
65
+ export interface ContinuitySqliteStatement {
66
+ run(...params: readonly unknown[]): ContinuitySqliteStatementRunResult;
67
+ get(...params: readonly unknown[]): unknown;
68
+ all(...params: readonly unknown[]): readonly unknown[];
69
+ }
70
+ export type ContinuitySqliteTransaction<T extends (...args: never[]) => unknown> = T & {
71
+ readonly immediate?: T;
72
+ };
73
+ export interface ContinuitySqliteDatabase {
74
+ pragma(source: string, options?: {
75
+ readonly simple?: boolean;
76
+ }): unknown;
77
+ exec(source: string): void;
78
+ prepare(source: string): ContinuitySqliteStatement;
79
+ transaction<T extends (...args: never[]) => unknown>(fn: T): ContinuitySqliteTransaction<T>;
80
+ close(): void;
81
+ }
82
+ export interface ContinuitySqliteAdapter {
83
+ readonly adapterName: 'better-sqlite3' | 'test-adapter' | string;
84
+ open(filePath: string, options?: {
85
+ readonly fileMustExist?: boolean;
86
+ }): ContinuitySqliteDatabase;
87
+ }
88
+ export type ContinuitySqliteAdapterLoadResult = {
89
+ readonly ok: true;
90
+ readonly adapter: ContinuitySqliteAdapter;
91
+ } | {
92
+ readonly ok: false;
93
+ readonly error: ContinuitySqliteStoreError;
94
+ };
95
+ export type ContinuitySqliteDynamicImporter = (specifier: string) => Promise<unknown>;
96
+ export interface OpenContinuitySqliteStoreOptions {
97
+ readonly projectRoot: string;
98
+ readonly adapter?: ContinuitySqliteAdapter;
99
+ readonly adapterLoader?: () => Promise<ContinuitySqliteAdapterLoadResult>;
100
+ readonly busyTimeoutMs?: number;
101
+ readonly integrityCheck?: boolean;
102
+ readonly now?: () => string;
103
+ }
104
+ export interface ContinuityJobWriteInput {
105
+ readonly jobId: string;
106
+ readonly kind: 'goal' | 'loop' | 'runner' | 'jobs';
107
+ readonly status: string;
108
+ readonly createdAt: string;
109
+ readonly updatedAt: string;
110
+ readonly summary?: string;
111
+ readonly reasonCode?: string;
112
+ readonly nextRunAt?: string;
113
+ readonly goalId?: string;
114
+ readonly loopId?: string;
115
+ readonly campaignId?: string;
116
+ readonly operationId?: string;
117
+ readonly idempotencyKey?: string;
118
+ readonly metadata?: Readonly<Record<string, unknown>>;
119
+ }
120
+ export interface ContinuityEventWriteInput {
121
+ readonly eventId: string;
122
+ readonly jobId: string;
123
+ readonly operationId: string;
124
+ readonly idempotencyKey?: string;
125
+ readonly sequence?: number;
126
+ readonly type: string;
127
+ readonly summary: string;
128
+ readonly reasonCode?: string;
129
+ readonly createdAt: string;
130
+ readonly metadata?: Readonly<Record<string, unknown>>;
131
+ }
132
+ export interface ContinuityProcessingOutputSummaryWriteInput {
133
+ readonly executionId: string;
134
+ readonly jobId: string;
135
+ readonly eventId?: string;
136
+ readonly idempotencyKey?: string;
137
+ readonly goalId?: string;
138
+ readonly loopId?: string;
139
+ readonly publicSummary: string;
140
+ readonly reasonCode?: string;
141
+ readonly createdAt: string;
142
+ readonly source?: string;
143
+ readonly metadata?: Readonly<Record<string, unknown>>;
144
+ }
145
+ export type ContinuityHeadlessExecutionAttemptStatus = 'queued' | 'running' | 'completed' | 'failed' | 'timed_out' | 'backoff' | 'skipped';
146
+ export type ContinuityHeadlessExecutionDirectiveKind = 'run_yolo' | 'run_yoloop';
147
+ export type ContinuityHeadlessExecutionCommandClass = 'goal-tick' | 'loop-tick';
148
+ export type ContinuityHeadlessExecutionTargetKind = 'story' | 'epic';
149
+ export type ContinuityHeadlessExecutionRuntimeSource = 'explicit' | 'origin' | 'default' | 'fallback' | 'unspecified';
150
+ export interface ContinuityHeadlessExecutionAttemptEnqueueInput {
151
+ readonly attemptId: string;
152
+ readonly executionId: string;
153
+ readonly jobId: string;
154
+ readonly directiveHash: string;
155
+ readonly directiveKind: ContinuityHeadlessExecutionDirectiveKind;
156
+ readonly commandClass: ContinuityHeadlessExecutionCommandClass;
157
+ readonly targetKind: ContinuityHeadlessExecutionTargetKind;
158
+ readonly targetRef: string;
159
+ readonly storyId?: string;
160
+ readonly epicId?: string;
161
+ readonly runtimeId?: string;
162
+ readonly modelId?: string;
163
+ readonly runtimeSource?: ContinuityHeadlessExecutionRuntimeSource;
164
+ readonly status?: Extract<ContinuityHeadlessExecutionAttemptStatus, 'queued' | 'backoff'>;
165
+ readonly reasonCode?: string;
166
+ readonly publicSummary?: string;
167
+ readonly enqueuedAt: string;
168
+ readonly notBeforeAt?: string;
169
+ readonly retryCount?: number;
170
+ readonly maxAttempts?: number;
171
+ readonly queuePriority?: number;
172
+ readonly queueScope?: ContinuityQueueScope;
173
+ readonly operationId?: string;
174
+ readonly idempotencyKey?: string;
175
+ readonly counts?: Readonly<Record<string, unknown>>;
176
+ readonly hashes?: Readonly<Record<string, unknown>>;
177
+ readonly redactionSummary?: readonly unknown[];
178
+ readonly relativePaths?: readonly string[];
179
+ readonly metadata?: Readonly<Record<string, unknown>>;
180
+ readonly queueCap?: number;
181
+ }
182
+ export interface ContinuityHeadlessExecutionEnqueueResult extends ContinuitySqliteWriteResult {
183
+ readonly accepted: boolean;
184
+ readonly backpressure: boolean;
185
+ readonly queueDepth: number;
186
+ readonly queueCap: number;
187
+ readonly reasonCode?: string;
188
+ readonly publicSafe: true;
189
+ }
190
+ export interface ContinuityHeadlessExecutionAttemptClaimInput {
191
+ readonly attemptId: string;
192
+ readonly leaseId: string;
193
+ readonly runnerId: string;
194
+ readonly claimedAt: string;
195
+ readonly leaseExpiresAt: string;
196
+ readonly reasonCode?: string;
197
+ }
198
+ export interface ContinuityHeadlessExecutionAcquireNextInput {
199
+ readonly leaseId: string;
200
+ readonly runnerId: string;
201
+ readonly claimedAt: string;
202
+ readonly leaseExpiresAt: string;
203
+ readonly directiveKind?: ContinuityHeadlessExecutionDirectiveKind;
204
+ readonly reasonCode?: string;
205
+ }
206
+ export interface ContinuityHeadlessExecutionAcquireNextResult {
207
+ readonly acquired: boolean;
208
+ readonly attempt?: ContinuityHeadlessExecutionAttemptRow;
209
+ readonly reasonCode: string;
210
+ readonly publicSafe: true;
211
+ }
212
+ export interface ContinuityHeadlessExecutionAttemptHeartbeatInput {
213
+ readonly attemptId: string;
214
+ readonly leaseId: string;
215
+ readonly runnerId: string;
216
+ readonly heartbeatAt: string;
217
+ readonly leaseExpiresAt?: string;
218
+ }
219
+ export interface ContinuityHeadlessExecutionAttemptReleaseInput {
220
+ readonly attemptId: string;
221
+ readonly leaseId: string;
222
+ readonly releasedAt: string;
223
+ readonly status?: Extract<ContinuityHeadlessExecutionAttemptStatus, 'queued' | 'backoff' | 'skipped'>;
224
+ readonly reasonCode?: string;
225
+ readonly notBeforeAt?: string;
226
+ readonly retryCount?: number;
227
+ }
228
+ export interface ContinuityHeadlessExecutionAttemptCompletionInput {
229
+ readonly attemptId: string;
230
+ readonly executionId?: string;
231
+ readonly jobId?: string;
232
+ readonly leaseId?: string;
233
+ readonly runnerId?: string;
234
+ readonly status: Exclude<ContinuityHeadlessExecutionAttemptStatus, 'queued' | 'running'>;
235
+ readonly completedAt: string;
236
+ readonly durationMs?: number;
237
+ readonly reasonCode?: string;
238
+ readonly publicSummary?: string;
239
+ readonly notBeforeAt?: string;
240
+ readonly retryCount?: number;
241
+ readonly counts?: Readonly<Record<string, unknown>>;
242
+ readonly hashes?: Readonly<Record<string, unknown>>;
243
+ readonly redactionSummary?: readonly unknown[];
244
+ readonly relativePaths?: readonly string[];
245
+ readonly metadata?: Readonly<Record<string, unknown>>;
246
+ }
247
+ export interface ContinuityHeadlessExecutionReceiptWriteInput {
248
+ readonly receiptId: string;
249
+ readonly attemptId: string;
250
+ readonly executionId: string;
251
+ readonly jobId: string;
252
+ readonly status: 'accepted' | 'applied' | 'ignored' | 'failed' | 'deferred';
253
+ readonly reasonCode?: string;
254
+ readonly createdAt: string;
255
+ readonly operationId?: string;
256
+ readonly idempotencyKey?: string;
257
+ readonly counts?: Readonly<Record<string, unknown>>;
258
+ readonly hashes?: Readonly<Record<string, unknown>>;
259
+ readonly redactionSummary?: readonly unknown[];
260
+ readonly relativePaths?: readonly string[];
261
+ readonly metadata?: Readonly<Record<string, unknown>>;
262
+ }
263
+ export interface ContinuityHeadlessExecutionSummaryWriteInput {
264
+ readonly eventId?: string;
265
+ readonly attemptId: string;
266
+ readonly executionId: string;
267
+ readonly jobId: string;
268
+ readonly status?: ContinuityHeadlessExecutionAttemptStatus;
269
+ readonly publicSummary: string;
270
+ readonly reasonCode?: string;
271
+ readonly createdAt: string;
272
+ readonly runtimeId?: string;
273
+ readonly modelId?: string;
274
+ readonly durationMs?: number;
275
+ readonly counts?: Readonly<Record<string, unknown>>;
276
+ readonly hashes?: Readonly<Record<string, unknown>>;
277
+ readonly redactionSummary?: readonly unknown[];
278
+ readonly relativePaths?: readonly string[];
279
+ readonly metadata?: Readonly<Record<string, unknown>>;
280
+ }
281
+ export interface ContinuityReceiptWriteInput {
282
+ readonly receiptId: string;
283
+ readonly jobId: string;
284
+ readonly operationId?: string;
285
+ readonly idempotencyKey?: string;
286
+ readonly status: 'accepted' | 'applied' | 'ignored' | 'failed' | 'deferred';
287
+ readonly reasonCode?: string;
288
+ readonly appliedOperationIds?: readonly string[];
289
+ readonly ignoredOperationIds?: readonly string[];
290
+ readonly createdAt: string;
291
+ readonly metadata?: Readonly<Record<string, unknown>>;
292
+ }
293
+ export interface ContinuityReceiptCompactionCounts {
294
+ readonly receiptsRemoved: number;
295
+ readonly receiptsRetained: number;
296
+ readonly outputsRemoved: number;
297
+ readonly outputsRetained: number;
298
+ readonly bytesRemoved: number;
299
+ readonly bytesRetained: number;
300
+ readonly redactions: number;
301
+ }
302
+ export interface ContinuityReceiptCompactionHashes {
303
+ readonly receipts: string;
304
+ readonly outputs: string;
305
+ readonly aggregate: string;
306
+ }
307
+ export interface ContinuityReceiptCompactionSummary {
308
+ readonly schemaVersion: 1;
309
+ readonly contractVersion: 'continuity-v1';
310
+ readonly policyVersion: 1;
311
+ readonly type: typeof CONTINUITY_RECEIPT_COMPACTION_EVENT_TYPE;
312
+ readonly summaryId: string;
313
+ readonly jobId: string;
314
+ readonly scope: 'local_sqlite';
315
+ readonly status: 'compacted';
316
+ readonly createdAt: string;
317
+ readonly reasonCodes: readonly [typeof CONTINUITY_RECEIPT_RETENTION_REASON_CODES.COMPACTED];
318
+ readonly counts: ContinuityReceiptCompactionCounts;
319
+ readonly hashes: ContinuityReceiptCompactionHashes;
320
+ readonly publicSummary: string;
321
+ readonly publicSafe: true;
322
+ }
323
+ export interface ContinuityReceiptCompactionInput {
324
+ readonly nowIso: string;
325
+ readonly policy?: ContinuityRetentionPolicyInput;
326
+ }
327
+ export interface ContinuityReceiptCompactionResult {
328
+ readonly status: 'compacted' | 'noop';
329
+ readonly summaries: readonly ContinuityReceiptCompactionSummary[];
330
+ readonly counts: {
331
+ readonly receiptsRemoved: number;
332
+ readonly outputsRemoved: number;
333
+ readonly bytesRemoved: number;
334
+ readonly summariesCreated: number;
335
+ };
336
+ readonly reasonCode: typeof CONTINUITY_RECEIPT_RETENTION_REASON_CODES.COMPACTED | typeof CONTINUITY_RECEIPT_RETENTION_REASON_CODES.NOOP;
337
+ readonly publicSafe: true;
338
+ }
339
+ export interface ContinuitySqliteWriteResult {
340
+ readonly inserted: boolean;
341
+ readonly replay: boolean;
342
+ readonly changes: number;
343
+ }
344
+ export interface ContinuityJobStatusUpdateInput {
345
+ readonly jobId: string;
346
+ readonly status: string;
347
+ readonly updatedAt: string;
348
+ readonly reasonCode?: string;
349
+ readonly nextRunAt?: string | null;
350
+ }
351
+ /**
352
+ * P195.04: Additive process-stage progress persisted into the existing
353
+ * `jobs.metadata_json` column (no schema migration). Applied once per applied
354
+ * tick; unknown stages and unsafe timestamps are ignored.
355
+ */
356
+ export interface ContinuityJobStageProgressInput {
357
+ readonly jobId: string;
358
+ readonly currentStage?: unknown;
359
+ readonly iteration?: unknown;
360
+ readonly at: string;
361
+ /** Defaults to true. When false, `currentStage`/`iteration` update without a history append. */
362
+ readonly appendHistory?: boolean;
363
+ }
364
+ export type ContinuityJobCampaignStatusParityUpdateInput = ContinuityJobStatusUpdateInput;
365
+ export interface ContinuityScheduleWriteInput {
366
+ readonly jobId: string;
367
+ readonly scheduledAt: string;
368
+ readonly updatedAt: string;
369
+ readonly reasonCode?: string;
370
+ }
371
+ export interface ContinuityLeaseWriteInput {
372
+ readonly leaseId: string;
373
+ readonly jobId: string;
374
+ readonly runnerId: string;
375
+ readonly acquiredAt: string;
376
+ readonly expiresAt: string;
377
+ readonly operationId?: string;
378
+ readonly idempotencyKey?: string;
379
+ readonly metadata?: Readonly<Record<string, unknown>>;
380
+ }
381
+ export interface ContinuityLeaseReleaseInput {
382
+ readonly leaseId: string;
383
+ readonly releasedAt: string;
384
+ readonly reasonCode?: string;
385
+ }
386
+ export interface ContinuityStateSnapshotWriteInput {
387
+ readonly snapshotId: string;
388
+ readonly jobId?: string;
389
+ readonly kind: string;
390
+ readonly relativePath?: string;
391
+ readonly sha256?: string;
392
+ readonly summary?: string;
393
+ readonly capturedAt: string;
394
+ readonly operationId?: string;
395
+ readonly idempotencyKey?: string;
396
+ readonly metadata?: Readonly<Record<string, unknown>>;
397
+ }
398
+ export interface ContinuityArtifactWriteInput {
399
+ readonly artifactId: string;
400
+ readonly jobId?: string;
401
+ readonly kind: string;
402
+ readonly relativePath: string;
403
+ readonly sha256?: string;
404
+ readonly summary?: string;
405
+ readonly operationId?: string;
406
+ readonly idempotencyKey?: string;
407
+ readonly createdAt: string;
408
+ readonly metadata?: Readonly<Record<string, unknown>>;
409
+ }
410
+ export interface ContinuityOutboxWriteInput {
411
+ readonly outboxId: string;
412
+ readonly jobId?: string;
413
+ readonly operationId: string;
414
+ readonly idempotencyKey?: string;
415
+ readonly type: string;
416
+ readonly status?: ContinuityOutboxStatus;
417
+ readonly payload: Readonly<Record<string, unknown>>;
418
+ readonly retryCount?: number;
419
+ readonly attemptCount?: number;
420
+ readonly deliveryCursor?: string;
421
+ readonly nextAttemptAt?: string;
422
+ readonly lastAttemptAt?: string;
423
+ readonly sentAt?: string;
424
+ readonly ackedAt?: string;
425
+ readonly lastErrorCode?: string;
426
+ readonly lastErrorReason?: string;
427
+ readonly lastErrorSummary?: string;
428
+ readonly deadLetterSummary?: string;
429
+ readonly deadLetteredAt?: string;
430
+ readonly createdAt: string;
431
+ readonly updatedAt: string;
432
+ }
433
+ export interface ContinuityOutboxDeliveryRow {
434
+ readonly outboxId: string;
435
+ readonly jobId?: string;
436
+ readonly operationId: string;
437
+ readonly idempotencyKey?: string;
438
+ readonly type: string;
439
+ readonly status: ContinuityOutboxStatus;
440
+ readonly payload: Readonly<Record<string, unknown>>;
441
+ readonly retryCount: number;
442
+ readonly attemptCount: number;
443
+ readonly deliveryCursor?: string;
444
+ readonly nextAttemptAt?: string;
445
+ readonly lastAttemptAt?: string;
446
+ readonly sentAt?: string;
447
+ readonly ackedAt?: string;
448
+ readonly lastErrorCode?: string;
449
+ readonly lastErrorReason?: string;
450
+ readonly lastErrorSummary?: string;
451
+ readonly deadLetterSummary?: string;
452
+ readonly deadLetteredAt?: string;
453
+ readonly createdAt: string;
454
+ readonly updatedAt: string;
455
+ readonly publicSafe: true;
456
+ }
457
+ export interface ContinuityOutboxBatchQueryOptions {
458
+ readonly nowIso: string;
459
+ readonly limit: number;
460
+ readonly statuses?: readonly ContinuityOutboxStatus[];
461
+ }
462
+ export interface ContinuityOutboxMarkSentInput {
463
+ readonly outboxId: string;
464
+ readonly deliveryCursor: string;
465
+ readonly sentAt: string;
466
+ readonly reasonCode?: string;
467
+ }
468
+ export interface ContinuityOutboxAckInput {
469
+ readonly outboxId: string;
470
+ readonly deliveryCursor?: string;
471
+ readonly ackedAt: string;
472
+ readonly reasonCode?: string;
473
+ }
474
+ export interface ContinuityOutboxFailInput {
475
+ readonly outboxId: string;
476
+ readonly deliveryCursor?: string;
477
+ readonly failedAt: string;
478
+ readonly reasonCode: string;
479
+ readonly summary?: string;
480
+ readonly nextRetryAt?: string;
481
+ readonly policy?: Partial<ContinuityOutboxRetryPolicy>;
482
+ }
483
+ export interface ContinuityOutboxDeadLetterInput {
484
+ readonly outboxId: string;
485
+ readonly deadLetteredAt: string;
486
+ readonly reasonCode: string;
487
+ readonly summary: string;
488
+ }
489
+ export interface ContinuityOutboxTransitionResult {
490
+ readonly outboxId: string;
491
+ readonly status: ContinuityOutboxStatus | 'missing' | 'conflict';
492
+ readonly changes: number;
493
+ readonly replay: boolean;
494
+ readonly deliveryCursor?: string;
495
+ readonly reasonCode?: string;
496
+ readonly nextRetryAt?: string;
497
+ readonly deadLetteredAt?: string;
498
+ readonly publicSafe: true;
499
+ }
500
+ export interface ContinuityGoalCampaignWriteInput {
501
+ readonly campaignId: string;
502
+ readonly jobId: string;
503
+ readonly status: string;
504
+ readonly title?: string;
505
+ readonly publicSummary?: string;
506
+ readonly reasonCode?: string;
507
+ readonly createdAt: string;
508
+ readonly updatedAt: string;
509
+ readonly operationId?: string;
510
+ readonly idempotencyKey?: string;
511
+ readonly metadata?: Readonly<Record<string, unknown>>;
512
+ }
513
+ export interface ContinuityGoalLedgerItemWriteInput {
514
+ readonly itemId: string;
515
+ readonly campaignId: string;
516
+ readonly jobId: string;
517
+ readonly itemType: string;
518
+ readonly status: string;
519
+ readonly summary: string;
520
+ readonly reasonCode?: string;
521
+ readonly createdAt: string;
522
+ readonly updatedAt: string;
523
+ readonly operationId?: string;
524
+ readonly idempotencyKey?: string;
525
+ readonly metadata?: Readonly<Record<string, unknown>>;
526
+ }
527
+ export interface ContinuityGoalVerifierWriteInput {
528
+ readonly verifierId: string;
529
+ readonly campaignId: string;
530
+ readonly jobId: string;
531
+ readonly kind: string;
532
+ readonly status: string;
533
+ readonly summary?: string;
534
+ readonly reasonCode?: string;
535
+ readonly lastCheckedAt?: string;
536
+ readonly operationId?: string;
537
+ readonly idempotencyKey?: string;
538
+ readonly metadata?: Readonly<Record<string, unknown>>;
539
+ }
540
+ export interface ContinuityGoalReviewGateWriteInput {
541
+ readonly gateId: string;
542
+ readonly campaignId: string;
543
+ readonly jobId: string;
544
+ readonly status: string;
545
+ readonly summary?: string;
546
+ readonly required: boolean;
547
+ readonly reasonCode?: string;
548
+ readonly operationId?: string;
549
+ readonly idempotencyKey?: string;
550
+ readonly metadata?: Readonly<Record<string, unknown>>;
551
+ }
552
+ export interface ContinuityOperationAuditInput {
553
+ readonly receiptId: string;
554
+ readonly jobId: string;
555
+ readonly operationId: string;
556
+ readonly idempotencyKey?: string;
557
+ readonly status: 'accepted' | 'applied' | 'ignored' | 'failed' | 'deferred';
558
+ readonly reasonCode?: string;
559
+ readonly appliedOperationIds?: readonly string[];
560
+ readonly ignoredOperationIds?: readonly string[];
561
+ readonly createdAt: string;
562
+ readonly metadata?: Readonly<Record<string, unknown>>;
563
+ }
564
+ export interface ContinuitySnapshotQueryOptions {
565
+ readonly nowIso: string;
566
+ readonly jobLimit: number;
567
+ readonly staleLeaseLimit: number;
568
+ readonly receiptLimit: number;
569
+ readonly eventLimit: number;
570
+ readonly snapshotLimit: number;
571
+ }
572
+ export interface ContinuitySnapshotJobRow {
573
+ readonly job_id: string;
574
+ readonly kind: string;
575
+ readonly status: string;
576
+ readonly summary: string | null;
577
+ readonly reason_code: string | null;
578
+ readonly created_at: string;
579
+ readonly updated_at: string;
580
+ readonly next_run_at: string | null;
581
+ readonly metadata_json: string | null;
582
+ readonly iteration?: number;
583
+ readonly goal_ledger_item_count?: number;
584
+ readonly blocked_goal_ledger_item_count?: number;
585
+ readonly security_issue_blocked_count?: number;
586
+ readonly goal_verifier_count?: number;
587
+ readonly failed_verifier_count?: number;
588
+ readonly unavailable_verifier_count?: number;
589
+ readonly goal_review_gate_count?: number;
590
+ readonly failed_required_review_gate_count?: number;
591
+ }
592
+ export interface ContinuitySnapshotLeaseRow {
593
+ readonly lease_id: string;
594
+ readonly job_id: string;
595
+ readonly runner_id: string;
596
+ readonly expires_at: string;
597
+ }
598
+ export interface ContinuitySnapshotReceiptRow {
599
+ readonly receipt_id: string;
600
+ readonly job_id: string;
601
+ readonly operation_id: string | null;
602
+ readonly status: string;
603
+ readonly reason_code: string | null;
604
+ readonly created_at: string;
605
+ readonly metadata_json: string | null;
606
+ }
607
+ export interface ContinuitySnapshotEventRow {
608
+ readonly event_id: string;
609
+ readonly job_id: string;
610
+ readonly operation_id: string;
611
+ readonly type: string;
612
+ readonly summary: string;
613
+ readonly reason_code: string | null;
614
+ readonly created_at: string;
615
+ readonly metadata_json: string | null;
616
+ }
617
+ export interface ContinuityProcessingOutputSummaryRow {
618
+ readonly event_id: string;
619
+ readonly job_id: string;
620
+ readonly execution_id: string;
621
+ readonly public_summary: string;
622
+ readonly reason_code: string | null;
623
+ readonly created_at: string;
624
+ readonly metadata_json: string | null;
625
+ readonly cursor: string;
626
+ }
627
+ export type ContinuityProcessingOutputSummaryCursorTargetKind = 'job' | 'goal' | 'loop';
628
+ export interface ContinuityProcessingOutputSummaryCursorTarget {
629
+ readonly selectorKind: ContinuityProcessingOutputSummaryCursorTargetKind;
630
+ readonly targetId: string;
631
+ readonly jobId?: string;
632
+ readonly goalId?: string;
633
+ readonly loopId?: string;
634
+ readonly relatedJobIds?: readonly string[];
635
+ readonly publicSafe?: true;
636
+ }
637
+ export interface ContinuitySnapshotStateSnapshotRow {
638
+ readonly snapshot_id: string;
639
+ readonly job_id: string | null;
640
+ readonly kind: string;
641
+ readonly relative_path: string | null;
642
+ readonly sha256: string | null;
643
+ readonly summary: string | null;
644
+ readonly captured_at: string;
645
+ readonly operation_id: string | null;
646
+ readonly metadata_json: string | null;
647
+ }
648
+ export interface ContinuitySnapshotHeadlessExecutionAttemptRow {
649
+ readonly attempt_id: string;
650
+ readonly execution_id: string;
651
+ readonly job_id: string;
652
+ readonly status: string;
653
+ readonly reason_code: string | null;
654
+ readonly runtime_id: string | null;
655
+ readonly model_id: string | null;
656
+ readonly retry_count: number;
657
+ readonly max_attempts: number;
658
+ readonly lease_id: string | null;
659
+ readonly runner_id: string | null;
660
+ readonly lease_expires_at: string | null;
661
+ readonly heartbeat_at: string | null;
662
+ readonly public_summary: string | null;
663
+ readonly enqueued_at: string;
664
+ readonly not_before_at: string | null;
665
+ readonly duration_ms: number | null;
666
+ readonly counts_json: string | null;
667
+ readonly hashes_json: string | null;
668
+ readonly redaction_summary_json: string | null;
669
+ readonly queue_priority: number;
670
+ readonly queue_scope: ContinuityQueueScope;
671
+ readonly attempt_count: number;
672
+ readonly next_retry_at: string | null;
673
+ readonly dead_lettered_at: string | null;
674
+ readonly dead_letter_reason_code: string | null;
675
+ }
676
+ export interface ContinuityQueueSummaryRow {
677
+ readonly depth: number;
678
+ readonly queued: number;
679
+ readonly running: number;
680
+ readonly retrying: number;
681
+ readonly deadLetter: number;
682
+ readonly capacity: number;
683
+ readonly available: number;
684
+ readonly backpressure: boolean;
685
+ readonly generatedAt: string;
686
+ readonly nextRetryAt?: string;
687
+ readonly reasonCode?: string;
688
+ readonly publicSafe: true;
689
+ }
690
+ export interface ContinuitySnapshotQueryResult {
691
+ readonly schemaVersion: number;
692
+ readonly jobs: readonly ContinuitySnapshotJobRow[];
693
+ readonly staleLeases: readonly ContinuitySnapshotLeaseRow[];
694
+ readonly receipts: readonly ContinuitySnapshotReceiptRow[];
695
+ readonly events: readonly ContinuitySnapshotEventRow[];
696
+ readonly stateSnapshots: readonly ContinuitySnapshotStateSnapshotRow[];
697
+ readonly headlessExecutionAttempts: readonly ContinuitySnapshotHeadlessExecutionAttemptRow[];
698
+ readonly counts: Readonly<Record<string, number>>;
699
+ readonly outboxCounts: Readonly<Record<string, number>>;
700
+ readonly queue: ContinuityQueueSummaryRow;
701
+ }
702
+ export interface ContinuityDueJobRow {
703
+ readonly job_id: string;
704
+ readonly kind: string;
705
+ readonly status: string;
706
+ readonly summary: string | null;
707
+ readonly reason_code: string | null;
708
+ readonly created_at: string;
709
+ readonly updated_at: string;
710
+ readonly next_run_at: string | null;
711
+ readonly metadata_json: string | null;
712
+ readonly iteration?: number;
713
+ readonly active_lease_count?: number;
714
+ }
715
+ export interface ContinuityHeadlessExecutionAttemptRow {
716
+ readonly attempt_id: string;
717
+ readonly execution_id: string;
718
+ readonly job_id: string;
719
+ readonly directive_hash: string;
720
+ readonly directive_kind: string;
721
+ readonly command_class: string;
722
+ readonly target_kind: string;
723
+ readonly target_ref: string;
724
+ readonly story_id: string | null;
725
+ readonly epic_id: string | null;
726
+ readonly runtime_id: string | null;
727
+ readonly model_id: string | null;
728
+ readonly runtime_source: string | null;
729
+ readonly status: ContinuityHeadlessExecutionAttemptStatus;
730
+ readonly reason_code: string | null;
731
+ readonly public_summary: string | null;
732
+ readonly enqueued_at: string;
733
+ readonly not_before_at: string | null;
734
+ readonly started_at: string | null;
735
+ readonly heartbeat_at: string | null;
736
+ readonly completed_at: string | null;
737
+ readonly duration_ms: number | null;
738
+ readonly retry_count: number;
739
+ readonly max_attempts: number;
740
+ readonly lease_id: string | null;
741
+ readonly runner_id: string | null;
742
+ readonly lease_expires_at: string | null;
743
+ readonly lease_released_at: string | null;
744
+ readonly counts_json: string | null;
745
+ readonly hashes_json: string | null;
746
+ readonly redaction_summary_json: string | null;
747
+ readonly relative_paths_json: string | null;
748
+ readonly metadata_json: string | null;
749
+ readonly queue_priority: number;
750
+ readonly queue_scope: ContinuityQueueScope;
751
+ readonly attempt_count: number;
752
+ readonly next_retry_at: string | null;
753
+ readonly dead_lettered_at: string | null;
754
+ readonly dead_letter_reason_code: string | null;
755
+ }
756
+ export interface ContinuityHeadlessExecutionDueQueryOptions {
757
+ readonly nowIso: string;
758
+ readonly limit: number;
759
+ }
760
+ export interface ContinuityHeadlessExecutionStaleRecoveryOptions {
761
+ readonly nowIso: string;
762
+ readonly staleAfterMs: number;
763
+ readonly limit: number;
764
+ readonly policy?: Partial<ContinuityQueuePolicy>;
765
+ }
766
+ export interface ContinuityHeadlessExecutionStaleRecoveryResult {
767
+ readonly recoveredAttemptIds: readonly string[];
768
+ readonly failedAttemptIds: readonly string[];
769
+ readonly retryingAttemptIds: readonly string[];
770
+ readonly deadLetteredAttemptIds: readonly string[];
771
+ readonly safeExpiredAtOrBefore: string;
772
+ readonly changes: number;
773
+ readonly publicSafe: true;
774
+ }
775
+ export interface ContinuityDueJobQueryOptions {
776
+ readonly nowIso: string;
777
+ readonly limit: number;
778
+ }
779
+ export interface ContinuityProcessingOutputSummaryQueryOptions {
780
+ readonly limit?: number;
781
+ readonly jobId?: string;
782
+ readonly target?: ContinuityProcessingOutputSummaryCursorTarget;
783
+ }
784
+ export interface ContinuityProcessingOutputSummaryCursorQueryOptions {
785
+ readonly cursor?: string;
786
+ readonly limit?: number;
787
+ readonly jobId?: string;
788
+ readonly target?: ContinuityProcessingOutputSummaryCursorTarget;
789
+ }
790
+ export interface ContinuityProcessingOutputSummaryCursorQueryResult {
791
+ readonly summaries: readonly ContinuityProcessingOutputSummaryRow[];
792
+ readonly nextCursor?: string;
793
+ readonly hasMore: boolean;
794
+ readonly publicSafe: true;
795
+ }
796
+ export interface ContinuityLocalConsoleAttachmentState {
797
+ readonly jobId: string;
798
+ readonly kind: string;
799
+ readonly status: string;
800
+ readonly activeLeaseCount: number;
801
+ readonly runningHeadlessAttemptCount: number;
802
+ readonly publicSafe: true;
803
+ }
804
+ export interface ContinuityStaleLeaseRecoveryOptions {
805
+ readonly nowIso: string;
806
+ readonly staleAfterMs: number;
807
+ readonly limit: number;
808
+ }
809
+ export interface ContinuityStaleLeaseRecoveryResult {
810
+ readonly recoveredLeaseIds: readonly string[];
811
+ readonly safeExpiredAtOrBefore: string;
812
+ readonly changes: number;
813
+ }
814
+ export interface ContinuityOutboxRetryOptions {
815
+ readonly nowIso: string;
816
+ readonly limit: number;
817
+ readonly statuses?: readonly ('failed' | 'dead_letter')[];
818
+ readonly nextAttemptAt?: string;
819
+ readonly reasonCode?: string;
820
+ }
821
+ export interface ContinuityOutboxRetryResult {
822
+ readonly retriedOutboxIds: readonly string[];
823
+ readonly changes: number;
824
+ readonly reasonCode: string;
825
+ readonly publicSafe: true;
826
+ }
827
+ declare const CONTINUITY_TABLES: readonly ["continuity_migrations", "jobs", "job_leases", "job_events", "job_receipts", "goal_campaigns", "goal_ledger_items", "goal_verifiers", "goal_review_gates", "loop_jobs", "artifacts", "state_snapshots", "headless_execution_attempts", "runner_config", "outbox"];
828
+ export type ContinuitySqliteTable = (typeof CONTINUITY_TABLES)[number];
829
+ export declare function loadBetterSqlite3Adapter(importer?: ContinuitySqliteDynamicImporter): Promise<ContinuitySqliteAdapterLoadResult>;
830
+ export declare function continuitySqliteStorePath(projectRoot: string): string;
831
+ export declare function openContinuitySqliteStore(options: OpenContinuitySqliteStoreOptions): Promise<ContinuitySqliteStore>;
832
+ export declare class ContinuitySqliteStore {
833
+ readonly filePath: string;
834
+ readonly adapterName: string;
835
+ private readonly db;
836
+ private readonly busyTimeoutMs;
837
+ private readonly integrityCheck;
838
+ private readonly now;
839
+ private mutationBlocked;
840
+ constructor(options: {
841
+ readonly db: ContinuitySqliteDatabase;
842
+ readonly filePath: string;
843
+ readonly adapterName: string;
844
+ readonly busyTimeoutMs: number;
845
+ readonly integrityCheck: boolean;
846
+ readonly now: () => string;
847
+ });
848
+ initialize(): void;
849
+ close(): void;
850
+ pragmaValue(source: string): unknown;
851
+ runIntegrityCheck(): void;
852
+ getSchemaVersion(): number;
853
+ countRows(table: ContinuitySqliteTable): number;
854
+ getLocalConsoleAttachmentState(jobId: string): ContinuityLocalConsoleAttachmentState | null;
855
+ recordJob(input: ContinuityJobWriteInput): ContinuitySqliteWriteResult;
856
+ appendEvent(input: ContinuityEventWriteInput): ContinuitySqliteWriteResult;
857
+ recordProcessingOutputSummary(input: ContinuityProcessingOutputSummaryWriteInput): ContinuitySqliteWriteResult;
858
+ enqueueHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAttemptEnqueueInput): ContinuityHeadlessExecutionEnqueueResult;
859
+ listDueHeadlessExecutionAttempts(options: ContinuityHeadlessExecutionDueQueryOptions): readonly ContinuityHeadlessExecutionAttemptRow[];
860
+ hasCompletedHeadlessExecutionDirectiveHash(directiveHash: string, excludeAttemptId?: string): boolean;
861
+ claimHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAttemptClaimInput): ContinuitySqliteWriteResult;
862
+ acquireNextHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAcquireNextInput): ContinuityHeadlessExecutionAcquireNextResult;
863
+ heartbeatHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAttemptHeartbeatInput): ContinuitySqliteWriteResult;
864
+ releaseHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAttemptReleaseInput): ContinuitySqliteWriteResult;
865
+ completeHeadlessExecutionAttempt(input: ContinuityHeadlessExecutionAttemptCompletionInput): ContinuitySqliteWriteResult;
866
+ recordHeadlessExecutionReceipt(input: ContinuityHeadlessExecutionReceiptWriteInput): ContinuitySqliteWriteResult;
867
+ recordHeadlessExecutionSummary(input: ContinuityHeadlessExecutionSummaryWriteInput): ContinuitySqliteWriteResult;
868
+ appendReceipt(input: ContinuityReceiptWriteInput): ContinuitySqliteWriteResult;
869
+ /**
870
+ * P199.06: Apply TTL/count/byte retention to public receipts and persisted
871
+ * processing summaries. Deleted content is replaced with bounded audit evidence
872
+ * that hashes only public identifiers/status/reason codes, never summaries.
873
+ */
874
+ compactPublicReceiptsAndOutputs(input: ContinuityReceiptCompactionInput): ContinuityReceiptCompactionResult;
875
+ updateJobStatus(input: ContinuityJobStatusUpdateInput): ContinuitySqliteWriteResult;
876
+ /**
877
+ * P195.04: Additively persist producer-emitted process stage/iteration into the
878
+ * existing `jobs.metadata_json` column and append a bounded `stageHistory`
879
+ * (newest `CONTINUITY_STAGE_HISTORY_MAX` kept). No schema migration is required.
880
+ * Unknown stages, unsafe timestamps and missing jobs are no-ops so older DBs and
881
+ * non-tick summaries never throw.
882
+ */
883
+ recordJobStageProgress(input: ContinuityJobStageProgressInput): ContinuitySqliteWriteResult;
884
+ updateJobAndExistingGoalCampaignStatus(input: ContinuityJobCampaignStatusParityUpdateInput): ContinuitySqliteWriteResult;
885
+ scheduleNextTick(input: ContinuityScheduleWriteInput): ContinuitySqliteWriteResult;
886
+ acquireLease(input: ContinuityLeaseWriteInput): ContinuitySqliteWriteResult;
887
+ releaseLease(input: ContinuityLeaseReleaseInput): ContinuitySqliteWriteResult;
888
+ recordStateSnapshot(input: ContinuityStateSnapshotWriteInput): ContinuitySqliteWriteResult;
889
+ recordArtifact(input: ContinuityArtifactWriteInput): ContinuitySqliteWriteResult;
890
+ enqueueOutbox(input: ContinuityOutboxWriteInput): ContinuitySqliteWriteResult;
891
+ selectOutboxBatch(options: ContinuityOutboxBatchQueryOptions): readonly ContinuityOutboxDeliveryRow[];
892
+ markOutboxSent(input: ContinuityOutboxMarkSentInput): ContinuityOutboxTransitionResult;
893
+ ackOutbox(input: ContinuityOutboxAckInput): ContinuityOutboxTransitionResult;
894
+ failOutboxDelivery(input: ContinuityOutboxFailInput): ContinuityOutboxTransitionResult;
895
+ deadLetterOutbox(input: ContinuityOutboxDeadLetterInput): ContinuityOutboxTransitionResult;
896
+ retryOutboxEntries(options: ContinuityOutboxRetryOptions): ContinuityOutboxRetryResult;
897
+ upsertGoalCampaign(input: ContinuityGoalCampaignWriteInput): ContinuitySqliteWriteResult;
898
+ upsertGoalLedgerItem(input: ContinuityGoalLedgerItemWriteInput): ContinuitySqliteWriteResult;
899
+ upsertGoalVerifier(input: ContinuityGoalVerifierWriteInput): ContinuitySqliteWriteResult;
900
+ upsertGoalReviewGate(input: ContinuityGoalReviewGateWriteInput): ContinuitySqliteWriteResult;
901
+ recordOperationAudit(input: ContinuityOperationAuditInput): ContinuitySqliteWriteResult;
902
+ hasOperationRef(operationId: string, idempotencyKey?: string): boolean;
903
+ jobExists(jobId: string): boolean;
904
+ private getHeadlessExecutionAttempt;
905
+ private getOutboxTransitionRow;
906
+ private selectReceiptRetentionCandidates;
907
+ private selectOutputRetentionCandidates;
908
+ private deleteRetentionCandidates;
909
+ private preserveReceiptDerivedIteration;
910
+ private retainedReceiptOutputCounts;
911
+ private pruneReceiptCompactionSummaries;
912
+ runInTransaction<T>(fn: () => T): T;
913
+ collectSnapshotRows(options: ContinuitySnapshotQueryOptions): ContinuitySnapshotQueryResult;
914
+ listProcessingOutputSummaries(options?: ContinuityProcessingOutputSummaryQueryOptions): readonly ContinuityProcessingOutputSummaryRow[];
915
+ pollProcessingOutputSummaries(options?: ContinuityProcessingOutputSummaryCursorQueryOptions): ContinuityProcessingOutputSummaryCursorQueryResult;
916
+ listDueJobs(options: ContinuityDueJobQueryOptions): readonly ContinuityDueJobRow[];
917
+ recoverStaleLeases(options: ContinuityStaleLeaseRecoveryOptions): ContinuityStaleLeaseRecoveryResult;
918
+ recoverStaleHeadlessExecutionAttempts(options: ContinuityHeadlessExecutionStaleRecoveryOptions): ContinuityHeadlessExecutionStaleRecoveryResult;
919
+ private ensureGoalCampaign;
920
+ private configureConnection;
921
+ private ensureMigrationTable;
922
+ private applyMigrations;
923
+ private assertCanMutate;
924
+ private toWriteResult;
925
+ }
926
+ export {};