@principles/core 1.203.0 → 1.205.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/runtime-v2/index.d.ts +5 -3
  2. package/dist/runtime-v2/index.d.ts.map +1 -1
  3. package/dist/runtime-v2/index.js +5 -2
  4. package/dist/runtime-v2/index.js.map +1 -1
  5. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +2 -0
  6. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +1 -0
  7. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +88 -0
  8. package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +1 -0
  9. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js +27 -1
  10. package/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +1 -1
  11. package/dist/runtime-v2/intent/index.d.ts +1 -0
  12. package/dist/runtime-v2/intent/index.d.ts.map +1 -1
  13. package/dist/runtime-v2/intent/index.js +1 -0
  14. package/dist/runtime-v2/intent/index.js.map +1 -1
  15. package/dist/runtime-v2/intent/intent-doc-version.d.ts +28 -0
  16. package/dist/runtime-v2/intent/intent-doc-version.d.ts.map +1 -0
  17. package/dist/runtime-v2/intent/intent-doc-version.js +21 -0
  18. package/dist/runtime-v2/intent/intent-doc-version.js.map +1 -0
  19. package/dist/runtime-v2/intent/intent-doc.d.ts +5 -0
  20. package/dist/runtime-v2/intent/intent-doc.d.ts.map +1 -1
  21. package/dist/runtime-v2/intent/intent-doc.js +68 -0
  22. package/dist/runtime-v2/intent/intent-doc.js.map +1 -1
  23. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +2 -0
  24. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +1 -0
  25. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +83 -0
  26. package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +1 -0
  27. package/dist/runtime-v2/store/intent/index.d.ts +2 -1
  28. package/dist/runtime-v2/store/intent/index.d.ts.map +1 -1
  29. package/dist/runtime-v2/store/intent/index.js +2 -1
  30. package/dist/runtime-v2/store/intent/index.js.map +1 -1
  31. package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts +28 -0
  32. package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts.map +1 -0
  33. package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js +88 -0
  34. package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js.map +1 -0
  35. package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  36. package/dist/runtime-v2/store/sqlite-connection.js +14 -0
  37. package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  38. package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +2 -0
  39. package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +1 -0
  40. package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +149 -0
  41. package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +1 -0
  42. package/dist/runtime-v2/thinking-models/index.d.ts +3 -0
  43. package/dist/runtime-v2/thinking-models/index.d.ts.map +1 -0
  44. package/dist/runtime-v2/thinking-models/index.js +3 -0
  45. package/dist/runtime-v2/thinking-models/index.js.map +1 -0
  46. package/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +73 -0
  47. package/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +1 -0
  48. package/dist/runtime-v2/thinking-models/thinking-models-policy.js +227 -0
  49. package/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +1 -0
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"intent-doc.js","sourceRoot":"","sources":["../../../src/runtime-v2/intent/intent-doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent-doc.js","sourceRoot":"","sources":["../../../src/runtime-v2/intent/intent-doc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sqlite-intent-doc-version-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-intent-doc-version-store.test.d.ts","sourceRoot":"","sources":["../../../../../src/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * SqliteIntentDocVersionStore tests (SPEC bilingual+lifecycle).
3
+ *
4
+ * Verifies saveVersion, listVersions (DESC order, lang isolation),
5
+ * getVersion (null for unknown), getLatest, and rc-2 type-guard mapRow.
6
+ *
7
+ * ERR checklist:
8
+ * - EP-01 / ERR-001, ERR-005: DB rows treated as unknown, mapped via guards
9
+ * - EP-03 / ERR-002: write failures throw (fail loud)
10
+ * - rc-2: no `as` bypass — all row fields validated element-wise
11
+ */
12
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
13
+ import * as path from 'node:path';
14
+ import * as os from 'node:os';
15
+ import * as fs from 'node:fs';
16
+ import { SqliteConnection } from '../../sqlite-connection.js';
17
+ import { SqliteIntentDocVersionStore } from '../sqlite-intent-doc-version-store.js';
18
+ import { computeIntentContentHash } from '../../../intent/intent-doc.js';
19
+ function createTestConnection() {
20
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pd-test-intent-doc-version-'));
21
+ return new SqliteConnection(tmpDir);
22
+ }
23
+ describe('SqliteIntentDocVersionStore', () => {
24
+ let connection = null;
25
+ let store = null;
26
+ beforeEach(() => {
27
+ connection = createTestConnection();
28
+ connection.getDb();
29
+ store = new SqliteIntentDocVersionStore(connection);
30
+ });
31
+ afterEach(() => {
32
+ connection?.close();
33
+ });
34
+ it('saveVersion inserts a record and returns it', async () => {
35
+ const content = '## 1. Why\ntest';
36
+ const version = await store.saveVersion({ lang: 'zh-CN', content });
37
+ expect(version.id).toBeTruthy();
38
+ expect(version.contentHash).toBe(computeIntentContentHash(content));
39
+ expect(version.contentSnapshot).toBe(content);
40
+ expect(version.lang).toBe('zh-CN');
41
+ });
42
+ it('saveVersion stores optional reason', async () => {
43
+ const version = await store.saveVersion({ lang: 'en', content: 'x', reason: 'first edit' });
44
+ expect(version.reason).toBe('first edit');
45
+ });
46
+ it('saveVersion stores null reason when not provided', async () => {
47
+ const version = await store.saveVersion({ lang: 'en', content: 'x' });
48
+ expect(version.reason).toBeNull();
49
+ });
50
+ it('listVersions returns versions in DESC order by createdAt', async () => {
51
+ await store.saveVersion({ lang: 'zh-CN', content: 'v1', reason: 'first' });
52
+ await store.saveVersion({ lang: 'zh-CN', content: 'v2', reason: 'second' });
53
+ const versions = await store.listVersions('zh-CN');
54
+ expect(versions).toHaveLength(2);
55
+ expect(versions[0]?.reason).toBe('second');
56
+ expect(versions[1]?.reason).toBe('first');
57
+ });
58
+ it('listVersions isolates by lang', async () => {
59
+ await store.saveVersion({ lang: 'zh-CN', content: 'zh' });
60
+ await store.saveVersion({ lang: 'en', content: 'en' });
61
+ expect(await store.listVersions('zh-CN')).toHaveLength(1);
62
+ expect(await store.listVersions('en')).toHaveLength(1);
63
+ });
64
+ it('getVersion returns null for unknown id', async () => {
65
+ expect(await store.getVersion('nonexistent')).toBeNull();
66
+ });
67
+ it('getLatest returns null on empty', async () => {
68
+ expect(await store.getLatest('zh-CN')).toBeNull();
69
+ });
70
+ it('getLatest returns most recent version', async () => {
71
+ await store.saveVersion({ lang: 'zh-CN', content: 'old' });
72
+ await store.saveVersion({ lang: 'zh-CN', content: 'new' });
73
+ const latest = await store.getLatest('zh-CN');
74
+ expect(latest?.contentSnapshot).toBe('new');
75
+ });
76
+ it('mapRow returns null for malformed row (rc-2 compliance)', async () => {
77
+ const db = connection.getDb();
78
+ db.exec(`INSERT INTO intent_doc_versions (id, lang, content_hash, content_snapshot, created_at) VALUES ('bad', 'not-a-lang', 'hash', 'snap', '2026-01-01')`);
79
+ const result = await store.getVersion('bad');
80
+ expect(result).toBeNull();
81
+ });
82
+ });
83
+ //# sourceMappingURL=sqlite-intent-doc-version-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-intent-doc-version-store.test.js","sourceRoot":"","sources":["../../../../../src/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Barrel for the IntentDecisionRecord SQLite store (PRI-470).
2
+ * Barrel for the IntentDecisionRecord and IntentDocVersion SQLite stores.
3
3
  */
4
4
  export { SqliteIntentDecisionStore } from './sqlite-intent-decision-store.js';
5
5
  export type { IntentDecisionStore } from '../../intent/intent-decision-record.js';
6
+ export { SqliteIntentDocVersionStore } from './sqlite-intent-doc-version-store.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,YAAY,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Barrel for the IntentDecisionRecord SQLite store (PRI-470).
2
+ * Barrel for the IntentDecisionRecord and IntentDocVersion SQLite stores.
3
3
  */
4
4
  export { SqliteIntentDecisionStore } from './sqlite-intent-decision-store.js';
5
+ export { SqliteIntentDocVersionStore } from './sqlite-intent-doc-version-store.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * SqliteIntentDocVersionStore — SQLite implementation of IntentDocVersionStore.
3
+ *
4
+ * SPEC bilingual+lifecycle: stores immutable snapshots of INTENT.md content
5
+ * each time it changes, enabling version history and rollback. Mirrors the
6
+ * intent_decisions audit pattern (immutable snapshots, hash linkage).
7
+ *
8
+ * ERR checklist:
9
+ * - EP-01 / ERR-001, ERR-005: DB rows treated as unknown, mapped via guards
10
+ * - EP-03 / ERR-002: write failures throw (fail loud)
11
+ * - rc-2: no `as` bypass — all row fields validated element-wise via isIntentDocVersionRow
12
+ */
13
+ import type { SqliteConnection } from '../sqlite-connection.js';
14
+ import { type IntentLang } from '../../intent/intent-doc.js';
15
+ import type { IntentDocVersion, IntentDocVersionStore } from '../../intent/intent-doc-version.js';
16
+ export declare class SqliteIntentDocVersionStore implements IntentDocVersionStore {
17
+ private readonly connection;
18
+ constructor(connection: SqliteConnection);
19
+ saveVersion(input: {
20
+ lang: IntentLang;
21
+ content: string;
22
+ reason?: string;
23
+ }): Promise<IntentDocVersion>;
24
+ listVersions(lang: IntentLang, limit?: number): Promise<IntentDocVersion[]>;
25
+ getVersion(id: string): Promise<IntentDocVersion | null>;
26
+ getLatest(lang: IntentLang): Promise<IntentDocVersion | null>;
27
+ }
28
+ //# sourceMappingURL=sqlite-intent-doc-version-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-intent-doc-version-store.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/sqlite-intent-doc-version-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAyClG,qBAAa,2BAA4B,YAAW,qBAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,gBAAgB;IAEnD,WAAW,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBrG,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAUvE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAOxD,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAQpE"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * SqliteIntentDocVersionStore — SQLite implementation of IntentDocVersionStore.
3
+ *
4
+ * SPEC bilingual+lifecycle: stores immutable snapshots of INTENT.md content
5
+ * each time it changes, enabling version history and rollback. Mirrors the
6
+ * intent_decisions audit pattern (immutable snapshots, hash linkage).
7
+ *
8
+ * ERR checklist:
9
+ * - EP-01 / ERR-001, ERR-005: DB rows treated as unknown, mapped via guards
10
+ * - EP-03 / ERR-002: write failures throw (fail loud)
11
+ * - rc-2: no `as` bypass — all row fields validated element-wise via isIntentDocVersionRow
12
+ */
13
+ import { randomUUID } from 'node:crypto';
14
+ import { computeIntentContentHash } from '../../intent/intent-doc.js';
15
+ function isIntentLang(value) {
16
+ return value === 'zh-CN' || value === 'en';
17
+ }
18
+ function isRecord(v) {
19
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
20
+ }
21
+ function isIntentDocVersionRow(v) {
22
+ if (!isRecord(v))
23
+ return false;
24
+ if (typeof v.id !== 'string')
25
+ return false;
26
+ if (!isIntentLang(v.lang))
27
+ return false;
28
+ if (typeof v.content_hash !== 'string')
29
+ return false;
30
+ if (typeof v.content_snapshot !== 'string')
31
+ return false;
32
+ if (v.reason !== null && typeof v.reason !== 'string')
33
+ return false;
34
+ if (typeof v.created_at !== 'string')
35
+ return false;
36
+ return true;
37
+ }
38
+ function mapRow(r) {
39
+ return {
40
+ id: r.id,
41
+ lang: r.lang,
42
+ contentHash: r.content_hash,
43
+ contentSnapshot: r.content_snapshot,
44
+ reason: r.reason,
45
+ createdAt: r.created_at,
46
+ };
47
+ }
48
+ export class SqliteIntentDocVersionStore {
49
+ connection;
50
+ constructor(connection) {
51
+ this.connection = connection;
52
+ }
53
+ async saveVersion(input) {
54
+ const db = this.connection.getDb();
55
+ const id = randomUUID();
56
+ const contentHash = computeIntentContentHash(input.content);
57
+ const createdAt = new Date().toISOString();
58
+ const reason = input.reason ?? null;
59
+ db.prepare(`INSERT INTO intent_doc_versions (id, lang, content_hash, content_snapshot, reason, created_at) VALUES (?, ?, ?, ?, ?, ?)`).run(id, input.lang, contentHash, input.content, reason, createdAt);
60
+ const row = db.prepare(`SELECT * FROM intent_doc_versions WHERE id = ?`).get(id);
61
+ if (!isIntentDocVersionRow(row)) {
62
+ throw new Error(`saveVersion: failed to read back inserted record ${id}`);
63
+ }
64
+ return mapRow(row);
65
+ }
66
+ async listVersions(lang, limit = 50) {
67
+ const db = this.connection.getDb();
68
+ const rows = db.prepare(`SELECT * FROM intent_doc_versions WHERE lang = ? ORDER BY created_at DESC, rowid DESC LIMIT ?`).all(lang, limit);
69
+ return rows
70
+ .filter(isIntentDocVersionRow)
71
+ .map(mapRow);
72
+ }
73
+ async getVersion(id) {
74
+ const db = this.connection.getDb();
75
+ const row = db.prepare(`SELECT * FROM intent_doc_versions WHERE id = ?`).get(id);
76
+ if (!isIntentDocVersionRow(row))
77
+ return null;
78
+ return mapRow(row);
79
+ }
80
+ async getLatest(lang) {
81
+ const db = this.connection.getDb();
82
+ const row = db.prepare(`SELECT * FROM intent_doc_versions WHERE lang = ? ORDER BY created_at DESC, rowid DESC LIMIT 1`).get(lang);
83
+ if (!isIntentDocVersionRow(row))
84
+ return null;
85
+ return mapRow(row);
86
+ }
87
+ }
88
+ //# sourceMappingURL=sqlite-intent-doc-version-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-intent-doc-version-store.js","sourceRoot":"","sources":["../../../../src/runtime-v2/store/intent/sqlite-intent-doc-version-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAStC,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;gBAEvC,kBAAkB,EAAE,MAAM,GAAG,uBAAuB;IAYhE;;;OAGG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC,KAAK,IAAI,QAAQ,CAAC,QAAQ;IAsF1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAK9B,eAAe,IAAI,kBAAkB;IA6BrC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAO1B;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKvC,OAAO,CAAC,UAAU;IAiSlB,OAAO,CAAC,aAAa;IA+BrB,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAWd"}
1
+ {"version":3,"file":"sqlite-connection.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAStC,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;gBAEvC,kBAAkB,EAAE,MAAM,GAAG,uBAAuB;IAYhE;;;OAGG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC,KAAK,IAAI,QAAQ,CAAC,QAAQ;IAsF1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAK9B,eAAe,IAAI,kBAAkB;IA6BrC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAO1B;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKvC,OAAO,CAAC,UAAU;IAgTlB,OAAO,CAAC,aAAa;IA+BrB,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAWd"}
@@ -436,6 +436,20 @@ export class SqliteConnection {
436
436
  CREATE UNIQUE INDEX IF NOT EXISTS idx_intent_decisions_pain_hash_action
437
437
  ON intent_decisions(pain_id, intent_doc_hash, owner_action)
438
438
  WHERE pain_id IS NOT NULL;
439
+ `);
440
+ // INTENT.md doc version snapshots (SPEC bilingual+lifecycle).
441
+ // Mirrors the intent_decisions audit pattern: immutable snapshots, hash linkage.
442
+ db.exec(`
443
+ CREATE TABLE IF NOT EXISTS intent_doc_versions (
444
+ id TEXT PRIMARY KEY,
445
+ lang TEXT NOT NULL,
446
+ content_hash TEXT NOT NULL,
447
+ content_snapshot TEXT NOT NULL,
448
+ reason TEXT,
449
+ created_at TEXT NOT NULL
450
+ );
451
+ CREATE INDEX IF NOT EXISTS idx_intent_doc_versions_lang
452
+ ON intent_doc_versions(lang, created_at DESC);
439
453
  `);
440
454
  // P2-10: Minimal schema_version table for state.db migration tracking.
441
455
  // core cannot import plugin's MigrationRunner (dependency direction),
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-connection.js","sourceRoot":"","sources":["../../../src/runtime-v2/store/sqlite-connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAgBD,MAAM,OAAO,gBAAgB;IACnB,EAAE,GAA6B,IAAI,CAAC;IAC3B,MAAM,CAAS;IACf,YAAY,CAAU;IACvC;;;;OAIG;IACc,kBAAkB,GAAa,EAAE,CAAC;IAEnD,YAAY,kBAAoD;QAC9D,MAAM,IAAI,GAAG,OAAO,kBAAkB,KAAK,QAAQ;YACjD,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE;YACtC,CAAC,CAAC,kBAAkB,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAE5B,gFAAgF;QAChF,+EAA+E;QAC/E,gFAAgF;QAChF,4DAA4D;QAC5D,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC;gBACH,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,sCAAsC;YAC9D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wEAAwE;gBACxE,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,qDAAqD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACvG,EAAE,UAAU,EAAE,wFAAwF,EAAE,CACzG,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC;oBAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY;YACzB,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/C,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,kBAAkB;gBAClB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBAEpC,qCAAqC;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;oBAChD,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,wCAAwC,WAAW,GAAG,CACvD,CAAC;gBACJ,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,IAAI,cAAc,CACtB,qBAAqB,EACrB,uCAAuC,WAAW,GAAG,CACtD,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,cAAc;oBACzC,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,cAAc,CAChB,qBAAqB,EACrB,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACpF,EAAE,aAAa,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpE,CAAC;gBACN,IAAI,CAAC;oBAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;gBAC7D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,0EAA0E;gBAC1E,yEAAyE;gBACzE,iEAAiE;gBACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,sBAAsB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACzE,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,2DAA2D;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC5B,kFAAkF;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO;gBACL,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC,qBAAqB,CAAC;aAChC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAE9E,IAAI,WAAW,KAAK,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,WAAW,gBAAgB,CAAC,CAAC;YACvF,IAAI,WAAW,GAAG,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,WAAW,oBAAoB,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW;gBAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAClE,IAAI,WAAW,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,WAAW,mBAAmB,CAAC,CAAC;YAEvF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACtG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,gDAAgD,CAAC,EAAE,CAAC;QACxK,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,EAAE,CAAC;QACjG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACpE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,OAAe;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAuB,CAAC;QACxC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;KAoBP,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAwB,CAAC;QACvF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;YAC3D,EAAE,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAC/D,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;QAC7H,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBP,CAAC,CAAC;QAEH,oDAAoD;QACpD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAgF,CAAC;QACtJ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;YAC1E,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;OAqBP,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;KAaP,CAAC,CAAC;QAEH,oBAAoB;QACpB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;KAeP,CAAC,CAAC;QAEH,iCAAiC;QACjC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BP,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCP,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAwB,CAAC;QAC5F,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG;YACrB,SAAS,EAAE,gBAAgB;YAC3B,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB;SACnE,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,IAAI,CAAC,mCAAmC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,WAAW,GAAG;YAClB,WAAW;YACX,WAAW;YACX,aAAa;YACb,sBAAsB;SACvB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,EAAE,CAAC,IAAI,CAAC,mCAAmC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;KAYP,CAAC,CAAC;QAEH,uEAAuE;QACvE,CAAC;YACC,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,GAAG,EAAwB,CAAC;YAChG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,CAAC;gBAC3D,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,+FAA+F;QAC/F,2DAA2D;QAC3D,EAAE,CAAC,IAAI,CAAC;;;KAGP,CAAC,CAAC;QAEH,4DAA4D;QAC5D,4DAA4D;QAC5D,uEAAuE;QACvE,qDAAqD;QACrD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BP,CAAC,CAAC;QAEH,8DAA8D;QAC9D,iFAAiF;QACjF,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWP,CAAC,CAAC;QAEH,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,EAAE,CAAC,IAAI,CAAC;;;;;KAKP,CAAC,CAAC;QACH,iEAAiE;QACjE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,EAAE,CAAC;QAChF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YAClF,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAuB,CAAC;QAExC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,mFAAmF,CACpF,CAAC,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,EAAwB,CAAC;QAClG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1D,MAAM,mBAAmB,GAAG;YAC1B,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,mGAAmG,EAAE;YACzI,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,kEAAkE,EAAE;YACpG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,yDAAyD,EAAE;YAClF,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,uEAAuE,EAAE;SAC/G,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAC;QACxH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=thinking-models-policy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-models-policy.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, getBuiltinBaselineScenarios, deriveThinkingScenarios, } from '../thinking-models-policy.js';
3
+ import { CORE_PRINCIPLES, CORE_PRINCIPLE_IDS } from '../../core-principles/index.js';
4
+ describe('thinking-models-policy', () => {
5
+ describe('BUILTIN_PATTERNS', () => {
6
+ it('has exactly 10 entries (T-01..T-10)', () => {
7
+ expect(BUILTIN_PATTERNS).toHaveLength(10);
8
+ const ids = BUILTIN_PATTERNS.map(p => p.id).sort();
9
+ expect(ids).toEqual([
10
+ 'T-01', 'T-02', 'T-03', 'T-04', 'T-05',
11
+ 'T-06', 'T-07', 'T-08', 'T-09', 'T-10',
12
+ ]);
13
+ });
14
+ it('every entry has at least one pattern and at least one baselineScenario', () => {
15
+ for (const entry of BUILTIN_PATTERNS) {
16
+ expect(entry.patterns.length).toBeGreaterThan(0);
17
+ expect(entry.baselineScenarios.length).toBeGreaterThan(0);
18
+ }
19
+ });
20
+ it('BUILTIN_PATTERN_MAP mirrors BUILTIN_PATTERNS', () => {
21
+ expect(BUILTIN_PATTERN_MAP.size).toBe(BUILTIN_PATTERNS.length);
22
+ for (const entry of BUILTIN_PATTERNS) {
23
+ expect(BUILTIN_PATTERN_MAP.get(entry.id)).toBe(entry);
24
+ }
25
+ });
26
+ });
27
+ describe('getFallbackName / getFallbackDescription', () => {
28
+ it('returns name from CORE_PRINCIPLES for known id', () => {
29
+ for (const principle of CORE_PRINCIPLES) {
30
+ expect(getFallbackName(principle.id)).toBe(principle.name);
31
+ expect(getFallbackDescription(principle.id)).toBe(principle.statement);
32
+ }
33
+ });
34
+ it('returns the id itself for unknown id (no crash)', () => {
35
+ expect(getFallbackName('T-UNKNOWN')).toBe('T-UNKNOWN');
36
+ expect(getFallbackDescription('T-UNKNOWN')).toBe('');
37
+ });
38
+ it('covers every CORE_PRINCIPLE_ID', () => {
39
+ for (const id of CORE_PRINCIPLE_IDS) {
40
+ const name = getFallbackName(id);
41
+ const desc = getFallbackDescription(id);
42
+ expect(name).toBeTruthy();
43
+ expect(desc).not.toBe('');
44
+ }
45
+ });
46
+ });
47
+ describe('getBuiltinBaselineScenarios', () => {
48
+ it('returns baselineScenarios for known id', () => {
49
+ expect(getBuiltinBaselineScenarios('T-01')).toEqual(['exploration', 'discovery']);
50
+ expect(getBuiltinBaselineScenarios('T-08')).toEqual(['reflection', 'pain-response']);
51
+ });
52
+ it('returns empty array for unknown id', () => {
53
+ expect(getBuiltinBaselineScenarios('T-UNKNOWN')).toEqual([]);
54
+ });
55
+ });
56
+ describe('deriveThinkingScenarios', () => {
57
+ it('includes baselineScenarios for the model id', () => {
58
+ const result = deriveThinkingScenarios('T-01', {});
59
+ expect(result).toContain('exploration');
60
+ expect(result).toContain('discovery');
61
+ });
62
+ it('adds after-tool-failure when a tool call failed', () => {
63
+ const result = deriveThinkingScenarios('T-01', {
64
+ recentToolCalls: [
65
+ { toolName: 'edit_file', outcome: 'failure', errorType: 'ENOENT' },
66
+ ],
67
+ });
68
+ expect(result).toContain('after-tool-failure');
69
+ expect(result).toContain('incident-response');
70
+ });
71
+ it('adds after-recovery only when both failure and success present', () => {
72
+ const onlyFailure = deriveThinkingScenarios('T-01', {
73
+ recentToolCalls: [{ toolName: 'x', outcome: 'failure' }],
74
+ });
75
+ const onlySuccess = deriveThinkingScenarios('T-01', {
76
+ recentToolCalls: [{ toolName: 'x', outcome: 'success' }],
77
+ });
78
+ const both = deriveThinkingScenarios('T-01', {
79
+ recentToolCalls: [
80
+ { toolName: 'x', outcome: 'failure' },
81
+ { toolName: 'y', outcome: 'success' },
82
+ ],
83
+ });
84
+ expect(onlyFailure).not.toContain('after-recovery');
85
+ expect(onlySuccess).not.toContain('after-recovery');
86
+ expect(both).toContain('after-recovery');
87
+ });
88
+ it('adds blocked-execution when a tool call was blocked', () => {
89
+ const result = deriveThinkingScenarios('T-01', {
90
+ recentToolCalls: [{ toolName: 'rm', outcome: 'blocked' }],
91
+ });
92
+ expect(result).toContain('blocked-execution');
93
+ });
94
+ it('adds user-friction when pain events present', () => {
95
+ const result = deriveThinkingScenarios('T-01', {
96
+ recentPainEvents: [{ source: 'gate', score: 5 }],
97
+ });
98
+ expect(result).toContain('user-friction');
99
+ });
100
+ it('adds gate-block when gate blocks present', () => {
101
+ const result = deriveThinkingScenarios('T-01', {
102
+ recentGateBlocks: [{ toolName: 'rm', reason: 'unsafe' }],
103
+ });
104
+ expect(result).toContain('gate-block');
105
+ });
106
+ it('adds user-correction when user corrections present', () => {
107
+ const result = deriveThinkingScenarios('T-01', {
108
+ recentUserCorrections: [{ correctionCue: 'no, do X instead' }],
109
+ });
110
+ expect(result).toContain('user-correction');
111
+ });
112
+ it('adds principle-feedback when principle events present', () => {
113
+ const result = deriveThinkingScenarios('T-01', {
114
+ recentPrincipleEvents: [{ eventType: 'admitted', principleId: 'P-001' }],
115
+ });
116
+ expect(result).toContain('principle-feedback');
117
+ });
118
+ it('adds model-specific scenarios for T-03, T-04, T-05, T-08, T-09', () => {
119
+ expect(deriveThinkingScenarios('T-03', {})).toContain('root-cause-analysis');
120
+ expect(deriveThinkingScenarios('T-04', {})).toContain('risk-review');
121
+ expect(deriveThinkingScenarios('T-05', {})).toContain('risk-review');
122
+ expect(deriveThinkingScenarios('T-08', {})).toContain('reflection-loop');
123
+ expect(deriveThinkingScenarios('T-09', {})).toContain('task-planning');
124
+ });
125
+ it('does not add model-specific scenarios for other models', () => {
126
+ const t01 = deriveThinkingScenarios('T-01', {});
127
+ expect(t01).not.toContain('root-cause-analysis');
128
+ expect(t01).not.toContain('risk-review');
129
+ expect(t01).not.toContain('reflection-loop');
130
+ expect(t01).not.toContain('task-planning');
131
+ });
132
+ it('returns empty array for unknown model id with empty context', () => {
133
+ const result = deriveThinkingScenarios('T-UNKNOWN', {});
134
+ expect(result).toEqual([]);
135
+ });
136
+ it('handles null/undefined context fields safely', () => {
137
+ const result = deriveThinkingScenarios('T-01', {
138
+ recentToolCalls: undefined,
139
+ recentPainEvents: undefined,
140
+ recentGateBlocks: undefined,
141
+ recentUserCorrections: undefined,
142
+ recentPrincipleEvents: undefined,
143
+ });
144
+ // Only baselineScenarios should be present
145
+ expect(result).toEqual(['exploration', 'discovery']);
146
+ });
147
+ });
148
+ });
149
+ //# sourceMappingURL=thinking-models-policy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-models-policy.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAErF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBAClB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;gBACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;aACvC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;YAChF,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;gBACxC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,eAAe,EAAE;oBACf,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;iBACnE;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAClD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAClD,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC3C,eAAe,EAAE;oBACf,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;oBACrC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;iBACtC;aACF,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACpD,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;aAC1D,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aACjD,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,gBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,qBAAqB,EAAE,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;aAC/D,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,qBAAqB,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;aACzE,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAC7E,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACrE,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACrE,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACzE,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,MAAM,GAAG,uBAAuB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBAC7C,eAAe,EAAE,SAAS;gBAC1B,gBAAgB,EAAE,SAAS;gBAC3B,gBAAgB,EAAE,SAAS;gBAC3B,qBAAqB,EAAE,SAAS;gBAChC,qBAAqB,EAAE,SAAS;aACjC,CAAC,CAAC;YACH,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, getBuiltinBaselineScenarios, deriveThinkingScenarios, } from './thinking-models-policy.js';
2
+ export type { ThinkingModelDefinition, ThinkingModelMatch, ThinkingScenarioContext, BuiltinPatternEntry, } from './thinking-models-policy.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/thinking-models/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Thinking models — pure policy migrated from plugin (Stage 3)
2
+ export { BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, getBuiltinBaselineScenarios, deriveThinkingScenarios, } from './thinking-models-policy.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/thinking-models/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Thinking Models — Pure Policy (Stage 3 sink from plugin)
3
+ *
4
+ * Holds the pure logic for thinking-model detection:
5
+ * - BUILTIN_PATTERNS: carefully tuned regexes that match AI output text
6
+ * - BUILTIN_PATTERN_MAP: id → entry lookup
7
+ * - getFallbackName / getFallbackDescription: delegate to Core Principle Registry
8
+ * - deriveThinkingScenarios: pure scenario derivation from context
9
+ *
10
+ * I/O (reading THINKING_OS.md from a workspace) stays in the plugin.
11
+ *
12
+ * Flow:
13
+ * Core Principle Registry (authority) → id, name, description
14
+ * BUILTIN_PATTERNS (engine) → detection regexes per model id
15
+ * Plugin listThinkingModels() (I/O) → full definitions with patterns from THINKING_OS.md
16
+ */
17
+ export interface ThinkingModelDefinition {
18
+ id: string;
19
+ name: string;
20
+ description: string;
21
+ antiPattern?: string;
22
+ patterns: RegExp[];
23
+ baselineScenarios: string[];
24
+ }
25
+ export interface ThinkingModelMatch {
26
+ modelId: string;
27
+ matchedPattern: string;
28
+ }
29
+ export interface ThinkingScenarioContext {
30
+ recentToolCalls?: {
31
+ toolName: string;
32
+ outcome: 'success' | 'failure' | 'blocked';
33
+ errorType?: string | null;
34
+ }[];
35
+ recentPainEvents?: {
36
+ source: string;
37
+ score: number;
38
+ }[];
39
+ recentGateBlocks?: {
40
+ toolName: string;
41
+ reason: string;
42
+ }[];
43
+ recentUserCorrections?: {
44
+ correctionCue?: string | null;
45
+ }[];
46
+ recentPrincipleEvents?: {
47
+ eventType: string;
48
+ principleId?: string | null;
49
+ }[];
50
+ }
51
+ export interface BuiltinPatternEntry {
52
+ id: string;
53
+ patterns: RegExp[];
54
+ baselineScenarios: string[];
55
+ }
56
+ export declare const BUILTIN_PATTERNS: readonly BuiltinPatternEntry[];
57
+ export declare const BUILTIN_PATTERN_MAP: ReadonlyMap<string, BuiltinPatternEntry>;
58
+ export declare function getFallbackName(id: string): string;
59
+ export declare function getFallbackDescription(id: string): string;
60
+ /**
61
+ * Look up baselineScenarios for a model id from the builtin pattern map.
62
+ * Returns an empty array if the id is unknown.
63
+ */
64
+ export declare function getBuiltinBaselineScenarios(modelId: string): string[];
65
+ /**
66
+ * Derive thinking scenarios for a model id given a context.
67
+ *
68
+ * baselineScenarios come from BUILTIN_PATTERN_MAP (the source of truth —
69
+ * even when the plugin loads THINKING_OS.md, baselineScenarios are sourced
70
+ * from the builtin map, never from the parsed directives).
71
+ */
72
+ export declare function deriveThinkingScenarios(modelId: string, context: ThinkingScenarioContext): string[];
73
+ //# sourceMappingURL=thinking-models-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-models-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/thinking-models/thinking-models-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,qBAAqB,CAAC,EAAE;QACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,EAAE,CAAC;IACJ,qBAAqB,CAAC,EAAE;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,EAAE,CAAC;CACL;AAOD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,mBAAmB,EAuI1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAExE,CAAC;AAMF,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE;AAMD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,uBAAuB,GAC/B,MAAM,EAAE,CA8CV"}