@cleocode/core 2026.4.11 → 2026.4.12

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 (169) hide show
  1. package/dist/codebase-map/analyzers/architecture.d.ts.map +1 -1
  2. package/dist/codebase-map/analyzers/architecture.js +0 -1
  3. package/dist/codebase-map/analyzers/architecture.js.map +1 -1
  4. package/dist/conduit/local-transport.d.ts +18 -8
  5. package/dist/conduit/local-transport.d.ts.map +1 -1
  6. package/dist/conduit/local-transport.js +23 -13
  7. package/dist/conduit/local-transport.js.map +1 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +0 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/errors.d.ts +19 -0
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js +6 -0
  14. package/dist/errors.js.map +1 -1
  15. package/dist/index.js +175 -68950
  16. package/dist/index.js.map +1 -7
  17. package/dist/init.d.ts +1 -2
  18. package/dist/init.d.ts.map +1 -1
  19. package/dist/init.js +1 -2
  20. package/dist/init.js.map +1 -1
  21. package/dist/internal.d.ts +8 -3
  22. package/dist/internal.d.ts.map +1 -1
  23. package/dist/internal.js +13 -6
  24. package/dist/internal.js.map +1 -1
  25. package/dist/memory/learnings.d.ts +2 -2
  26. package/dist/memory/patterns.d.ts +6 -6
  27. package/dist/output.d.ts +32 -11
  28. package/dist/output.d.ts.map +1 -1
  29. package/dist/output.js +67 -67
  30. package/dist/output.js.map +1 -1
  31. package/dist/paths.js +80 -14
  32. package/dist/paths.js.map +1 -1
  33. package/dist/skills/dynamic-skill-generator.d.ts +0 -2
  34. package/dist/skills/dynamic-skill-generator.d.ts.map +1 -1
  35. package/dist/skills/dynamic-skill-generator.js.map +1 -1
  36. package/dist/store/agent-registry-accessor.d.ts +203 -12
  37. package/dist/store/agent-registry-accessor.d.ts.map +1 -1
  38. package/dist/store/agent-registry-accessor.js +618 -100
  39. package/dist/store/agent-registry-accessor.js.map +1 -1
  40. package/dist/store/api-key-kdf.d.ts +73 -0
  41. package/dist/store/api-key-kdf.d.ts.map +1 -0
  42. package/dist/store/api-key-kdf.js +84 -0
  43. package/dist/store/api-key-kdf.js.map +1 -0
  44. package/dist/store/cleanup-legacy.js +171 -0
  45. package/dist/store/cleanup-legacy.js.map +1 -0
  46. package/dist/store/conduit-sqlite.d.ts +184 -0
  47. package/dist/store/conduit-sqlite.d.ts.map +1 -0
  48. package/dist/store/conduit-sqlite.js +570 -0
  49. package/dist/store/conduit-sqlite.js.map +1 -0
  50. package/dist/store/global-salt.d.ts +78 -0
  51. package/dist/store/global-salt.d.ts.map +1 -0
  52. package/dist/store/global-salt.js +147 -0
  53. package/dist/store/global-salt.js.map +1 -0
  54. package/dist/store/migrate-signaldock-to-conduit.d.ts +81 -0
  55. package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -0
  56. package/dist/store/migrate-signaldock-to-conduit.js +555 -0
  57. package/dist/store/migrate-signaldock-to-conduit.js.map +1 -0
  58. package/dist/store/nexus-sqlite.js +28 -3
  59. package/dist/store/nexus-sqlite.js.map +1 -1
  60. package/dist/store/signaldock-sqlite.d.ts +122 -19
  61. package/dist/store/signaldock-sqlite.d.ts.map +1 -1
  62. package/dist/store/signaldock-sqlite.js +401 -251
  63. package/dist/store/signaldock-sqlite.js.map +1 -1
  64. package/dist/store/sqlite-backup.js +122 -4
  65. package/dist/store/sqlite-backup.js.map +1 -1
  66. package/dist/system/backup.d.ts +0 -26
  67. package/dist/system/backup.d.ts.map +1 -1
  68. package/dist/system/runtime.d.ts +0 -2
  69. package/dist/system/runtime.d.ts.map +1 -1
  70. package/dist/system/runtime.js +3 -3
  71. package/dist/system/runtime.js.map +1 -1
  72. package/dist/tasks/add.d.ts +1 -1
  73. package/dist/tasks/add.d.ts.map +1 -1
  74. package/dist/tasks/add.js +98 -23
  75. package/dist/tasks/add.js.map +1 -1
  76. package/dist/tasks/complete.d.ts.map +1 -1
  77. package/dist/tasks/complete.js +4 -1
  78. package/dist/tasks/complete.js.map +1 -1
  79. package/dist/tasks/find.d.ts.map +1 -1
  80. package/dist/tasks/find.js +4 -1
  81. package/dist/tasks/find.js.map +1 -1
  82. package/dist/tasks/labels.d.ts.map +1 -1
  83. package/dist/tasks/labels.js +4 -1
  84. package/dist/tasks/labels.js.map +1 -1
  85. package/dist/tasks/relates.d.ts.map +1 -1
  86. package/dist/tasks/relates.js +16 -4
  87. package/dist/tasks/relates.js.map +1 -1
  88. package/dist/tasks/show.d.ts.map +1 -1
  89. package/dist/tasks/show.js +4 -1
  90. package/dist/tasks/show.js.map +1 -1
  91. package/dist/tasks/update.d.ts.map +1 -1
  92. package/dist/tasks/update.js +32 -6
  93. package/dist/tasks/update.js.map +1 -1
  94. package/dist/validation/engine.d.ts.map +1 -1
  95. package/dist/validation/engine.js +16 -4
  96. package/dist/validation/engine.js.map +1 -1
  97. package/dist/validation/param-utils.d.ts +5 -3
  98. package/dist/validation/param-utils.d.ts.map +1 -1
  99. package/dist/validation/param-utils.js +8 -6
  100. package/dist/validation/param-utils.js.map +1 -1
  101. package/dist/validation/protocols/_shared.d.ts.map +1 -1
  102. package/dist/validation/protocols/_shared.js +13 -6
  103. package/dist/validation/protocols/_shared.js.map +1 -1
  104. package/package.json +7 -7
  105. package/src/adapters/__tests__/manager.test.ts +0 -1
  106. package/src/codebase-map/analyzers/architecture.ts +0 -1
  107. package/src/conduit/__tests__/local-credential-flow.test.ts +20 -18
  108. package/src/conduit/__tests__/local-transport.test.ts +14 -12
  109. package/src/conduit/local-transport.ts +23 -13
  110. package/src/config.ts +0 -1
  111. package/src/errors.ts +24 -0
  112. package/src/hooks/handlers/__tests__/hook-automation-e2e.test.ts +2 -5
  113. package/src/init.ts +1 -2
  114. package/src/internal.ts +49 -2
  115. package/src/lifecycle/cant/lifecycle-rcasd.cant +133 -0
  116. package/src/memory/__tests__/engine-compat.test.ts +2 -2
  117. package/src/memory/__tests__/pipeline-manifest-sqlite.test.ts +4 -4
  118. package/src/observability/__tests__/index.test.ts +4 -4
  119. package/src/observability/__tests__/log-filter.test.ts +4 -4
  120. package/src/output.ts +73 -75
  121. package/src/sessions/__tests__/session-grade.integration.test.ts +1 -1
  122. package/src/sessions/__tests__/session-grade.test.ts +2 -2
  123. package/src/skills/__tests__/dynamic-skill-generator.test.ts +0 -2
  124. package/src/skills/dynamic-skill-generator.ts +0 -2
  125. package/src/store/__tests__/agent-registry-accessor.test.ts +807 -0
  126. package/src/store/__tests__/api-key-kdf.test.ts +113 -0
  127. package/src/store/__tests__/conduit-sqlite.test.ts +413 -0
  128. package/src/store/__tests__/global-salt.test.ts +195 -0
  129. package/src/store/__tests__/migrate-signaldock-to-conduit.test.ts +715 -0
  130. package/src/store/__tests__/signaldock-sqlite.test.ts +652 -0
  131. package/src/store/__tests__/sqlite-backup-global.test.ts +307 -3
  132. package/src/store/__tests__/sqlite-backup.test.ts +5 -1
  133. package/src/store/__tests__/t310-integration.test.ts +1150 -0
  134. package/src/store/agent-registry-accessor.ts +847 -140
  135. package/src/store/api-key-kdf.ts +104 -0
  136. package/src/store/conduit-sqlite.ts +655 -0
  137. package/src/store/global-salt.ts +175 -0
  138. package/src/store/migrate-signaldock-to-conduit.ts +669 -0
  139. package/src/store/signaldock-sqlite.ts +431 -254
  140. package/src/store/sqlite-backup.ts +185 -10
  141. package/src/system/backup.ts +2 -62
  142. package/src/system/runtime.ts +4 -6
  143. package/src/tasks/__tests__/error-hints.test.ts +256 -0
  144. package/src/tasks/add.ts +99 -9
  145. package/src/tasks/complete.ts +4 -1
  146. package/src/tasks/find.ts +4 -1
  147. package/src/tasks/labels.ts +4 -1
  148. package/src/tasks/relates.ts +16 -4
  149. package/src/tasks/show.ts +4 -1
  150. package/src/tasks/update.ts +32 -3
  151. package/src/validation/__tests__/error-hints.test.ts +97 -0
  152. package/src/validation/engine.ts +16 -1
  153. package/src/validation/param-utils.ts +10 -7
  154. package/src/validation/protocols/_shared.ts +14 -6
  155. package/src/validation/protocols/cant/architecture-decision.cant +80 -0
  156. package/src/validation/protocols/cant/artifact-publish.cant +95 -0
  157. package/src/validation/protocols/cant/consensus.cant +74 -0
  158. package/src/validation/protocols/cant/contribution.cant +82 -0
  159. package/src/validation/protocols/cant/decomposition.cant +92 -0
  160. package/src/validation/protocols/cant/implementation.cant +67 -0
  161. package/src/validation/protocols/cant/provenance.cant +88 -0
  162. package/src/validation/protocols/cant/release.cant +96 -0
  163. package/src/validation/protocols/cant/research.cant +66 -0
  164. package/src/validation/protocols/cant/specification.cant +67 -0
  165. package/src/validation/protocols/cant/testing.cant +88 -0
  166. package/src/validation/protocols/cant/validation.cant +65 -0
  167. package/src/validation/protocols/protocols-markdown/decomposition.md +0 -4
  168. package/templates/config.template.json +0 -1
  169. package/templates/global-config.template.json +0 -1
@@ -1,41 +1,124 @@
1
1
  /**
2
- * SQLite store for signaldock.db — local agent messaging database.
2
+ * SQLite store for global-tier signaldock.db — canonical agent identity database.
3
3
  *
4
- * Creates and manages .cleo/signaldock.db using node:sqlite directly.
5
- * Runs the consolidated Diesel migration SQL (from signaldock-storage crate)
6
- * to bootstrap all 22 tables for local agent infrastructure.
4
+ * Post-T310 (ADR-037), signaldock.db lives at `$XDG_DATA_HOME/cleo/signaldock.db`
5
+ * (resolved via getCleoHome()). It holds cross-project agent identity, capabilities
6
+ * catalog, and cloud-sync tables. Project-local messaging state has moved to
7
+ * conduit.db (managed by conduit-sqlite.ts, T344).
7
8
  *
8
- * This is the Node.js bootstrap path. In production cloud, the Rust
9
- * signaldock-storage crate manages this DB via Diesel ORM directly.
10
- * Locally, we create the DB here so that cleo init scaffolds the full
11
- * .cleo/ directory with all databases ready.
9
+ * GLOBAL-TIER ONLY. This module MUST NOT resolve paths under any project's .cleo/
10
+ * directory. The path guard in getGlobalSignaldockDbPath() enforces this invariant.
12
11
  *
13
- * @task T223
12
+ * @task T346
13
+ * @epic T310
14
+ * @related ADR-037
14
15
  */
15
- /** Schema version for signaldock databases. */
16
- export declare const SIGNALDOCK_SCHEMA_VERSION = "2026.3.76";
16
+ import type { DatabaseSync } from 'node:sqlite';
17
17
  /**
18
- * Get the path to the signaldock.db SQLite database file.
18
+ * Database file name within the global cleo home directory.
19
+ *
20
+ * @task T346
21
+ * @epic T310
22
+ */
23
+ export declare const GLOBAL_SIGNALDOCK_DB_FILENAME = "signaldock.db";
24
+ /**
25
+ * Schema version for global signaldock databases.
26
+ *
27
+ * @task T346
28
+ * @epic T310
29
+ */
30
+ export declare const GLOBAL_SIGNALDOCK_SCHEMA_VERSION = "2026.4.12";
31
+ /**
32
+ * @deprecated Use GLOBAL_SIGNALDOCK_SCHEMA_VERSION. Retained during T310
33
+ * migration window. Will be removed after all callers migrate (T355).
34
+ */
35
+ export declare const SIGNALDOCK_SCHEMA_VERSION = "2026.4.12";
36
+ /**
37
+ * Returns the GLOBAL-tier signaldock.db path. Post-T310, signaldock.db
38
+ * holds canonical agent identity + cloud-sync tables. Project-local
39
+ * messaging state lives in conduit.db (T344).
40
+ *
41
+ * Resolves to `getCleoHome() + '/signaldock.db'`.
42
+ * Guard: asserts the resolved path starts with getCleoHome() (defense in depth,
43
+ * mirrors the ADR-036 pattern used by getNexusDbPath in nexus-sqlite.ts).
44
+ *
45
+ * @task T346
46
+ * @epic T310
47
+ * @why ADR-037 split single signaldock.db into project conduit + global signaldock
48
+ * @throws {Error} If resolved path is not under getCleoHome() — indicates a code
49
+ * path that bypasses canonical path resolution. Fix the caller, do not suppress.
50
+ */
51
+ export declare function getGlobalSignaldockDbPath(): string;
52
+ /**
53
+ * @deprecated Use getGlobalSignaldockDbPath() directly. Retained during T310
54
+ * migration window so the TypeScript build does not break until all callers
55
+ * are updated (tracked in T355 accessor refactor).
56
+ *
57
+ * When called WITHOUT arguments: returns the global-tier path (forwards to
58
+ * getGlobalSignaldockDbPath()).
59
+ *
60
+ * When called WITH a non-undefined `cwd` argument: throws a migration error
61
+ * immediately. The project-tier path is now owned by conduit-sqlite.ts (T344).
62
+ *
63
+ * @param cwd - Must be undefined. Any other value throws a migration error.
64
+ * @task T346
65
+ * @epic T310
19
66
  */
20
67
  export declare function getSignaldockDbPath(cwd?: string): string;
21
68
  /**
22
- * Ensure signaldock.db exists and has the full schema applied.
69
+ * Ensure global signaldock.db exists with the full global schema applied.
70
+ * Creates the global cleo home directory if it doesn't exist.
71
+ * Idempotent — safe to call multiple times.
72
+ *
73
+ * @returns Object with action ('created' | 'exists') and the database path
74
+ * @task T346
75
+ * @epic T310
76
+ */
77
+ export declare function ensureGlobalSignaldockDb(): Promise<{
78
+ action: 'created' | 'exists';
79
+ path: string;
80
+ }>;
81
+ /**
82
+ * @deprecated Use ensureGlobalSignaldockDb(). Retained during T310 migration
83
+ * window for callers in init.ts and agent-registry-accessor.ts.
23
84
  *
24
- * Idempotent safe to call multiple times. Uses `CREATE TABLE IF NOT EXISTS`
25
- * and `CREATE INDEX IF NOT EXISTS` throughout.
85
+ * When called WITHOUT arguments: forwards to ensureGlobalSignaldockDb().
86
+ * When called WITH a non-undefined `cwd` argument: throws a migration error.
26
87
  *
27
- * @returns Object with action ('created' | 'exists') and the database path.
88
+ * @param cwd - Must be undefined. Any other value throws a migration error.
89
+ * @task T346
90
+ * @epic T310
28
91
  */
29
92
  export declare function ensureSignaldockDb(cwd?: string): Promise<{
30
93
  action: 'created' | 'exists';
31
94
  path: string;
32
95
  }>;
33
96
  /**
34
- * Check signaldock.db health table count, WAL mode, schema version.
97
+ * Check global signaldock.db health: table count, WAL mode, schema version.
98
+ * Used by `cleo doctor` to verify global signaldock.db integrity.
35
99
  *
36
- * Used by `cleo doctor` to verify signaldock.db integrity.
100
+ * @returns Health report object, or object with exists=false if the DB does not exist.
101
+ * @task T346
102
+ * @epic T310
103
+ */
104
+ export declare function checkGlobalSignaldockDbHealth(): Promise<{
105
+ exists: boolean;
106
+ path: string;
107
+ tableCount: number;
108
+ walMode: boolean;
109
+ schemaVersion: string | null;
110
+ foreignKeysEnabled: boolean;
111
+ } | null>;
112
+ /**
113
+ * @deprecated Use checkGlobalSignaldockDbHealth(). Retained during T310 migration
114
+ * window for callers in `cleo doctor` and other diagnostics.
115
+ *
116
+ * When called WITHOUT arguments: forwards to checkGlobalSignaldockDbHealth().
117
+ * When called WITH a non-undefined `cwd` argument: throws a migration error.
37
118
  *
38
- * @returns Health report object or null if DB doesn't exist.
119
+ * @param cwd - Must be undefined. Any other value throws a migration error.
120
+ * @task T346
121
+ * @epic T310
39
122
  */
40
123
  export declare function checkSignaldockDbHealth(cwd?: string): Promise<{
41
124
  exists: boolean;
@@ -45,4 +128,24 @@ export declare function checkSignaldockDbHealth(cwd?: string): Promise<{
45
128
  schemaVersion: string | null;
46
129
  foreignKeysEnabled: boolean;
47
130
  } | null>;
131
+ /**
132
+ * Get the underlying node:sqlite DatabaseSync instance for global signaldock.db.
133
+ * Returns the handle stored by the most recent ensureGlobalSignaldockDb() call,
134
+ * or null if the database has not yet been initialized in this process.
135
+ *
136
+ * Used by sqlite-backup.ts to activate the signaldock GLOBAL_SNAPSHOT_TARGET
137
+ * (spec §6.2, T310).
138
+ *
139
+ * @task T346
140
+ * @epic T310
141
+ */
142
+ export declare function getGlobalSignaldockNativeDb(): DatabaseSync | null;
143
+ /**
144
+ * Reset the in-process global signaldock.db singleton.
145
+ * ONLY for use in test isolation — never call in production code.
146
+ *
147
+ * @task T346
148
+ * @epic T310
149
+ */
150
+ export declare function _resetGlobalSignaldockDb_TESTING_ONLY(): void;
48
151
  //# sourceMappingURL=signaldock-sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signaldock-sqlite.d.ts","sourceRoot":"","sources":["../../src/store/signaldock-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAErD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGxD;AAkPD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6EzD;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAAC,CA6CR"}
1
+ {"version":3,"file":"signaldock-sqlite.d.ts","sourceRoot":"","sources":["../../src/store/signaldock-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,cAAc,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,cAAmC,CAAC;AAM1E;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAYlD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAUxD;AA+RD;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC;IACxD,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA+CD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUzD;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC;IAC7D,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAAC,CA6CR;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,IAAI,CAAC,CAUR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,IAAI,YAAY,GAAG,IAAI,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,IAAI,IAAI,CAW5D"}