create-principles-disciple 1.112.3 → 1.113.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 (199) hide show
  1. package/console/dist/server/routes/update.js +43 -0
  2. package/core/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts +2 -0
  3. package/core/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.d.ts.map +1 -0
  4. package/core/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js +148 -0
  5. package/core/dist/runtime-v2/__tests__/activation-compatibility-read-model.test.js.map +1 -0
  6. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +6 -5
  7. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  8. package/core/dist/runtime-v2/__tests__/golden-trace.test.js +2 -2
  9. package/core/dist/runtime-v2/__tests__/golden-trace.test.js.map +1 -1
  10. package/core/dist/runtime-v2/__tests__/internalization-contracts.test.js +4 -6
  11. package/core/dist/runtime-v2/__tests__/internalization-contracts.test.js.map +1 -1
  12. package/core/dist/runtime-v2/__tests__/rule-host-evaluator.test.js +4 -4
  13. package/core/dist/runtime-v2/__tests__/rule-host-evaluator.test.js.map +1 -1
  14. package/core/dist/runtime-v2/__tests__/story-a-demo.test.js +8 -8
  15. package/core/dist/runtime-v2/__tests__/story-a-demo.test.js.map +1 -1
  16. package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +31 -0
  17. package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +1 -1
  18. package/core/dist/runtime-v2/activation-compatibility-read-model.d.ts +24 -0
  19. package/core/dist/runtime-v2/activation-compatibility-read-model.d.ts.map +1 -0
  20. package/core/dist/runtime-v2/activation-compatibility-read-model.js +132 -0
  21. package/core/dist/runtime-v2/activation-compatibility-read-model.js.map +1 -0
  22. package/core/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts +13 -0
  23. package/core/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.d.ts.map +1 -0
  24. package/core/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js +73 -0
  25. package/core/dist/runtime-v2/config/__tests__/pd-validate-profile-legacy-keys.test.js.map +1 -0
  26. package/core/dist/runtime-v2/config/pd-config-types.d.ts +0 -23
  27. package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
  28. package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -1
  29. package/core/dist/runtime-v2/config/pd-profile-constants.d.ts +11 -5
  30. package/core/dist/runtime-v2/config/pd-profile-constants.d.ts.map +1 -1
  31. package/core/dist/runtime-v2/config/pd-profile-constants.js +10 -45
  32. package/core/dist/runtime-v2/config/pd-profile-constants.js.map +1 -1
  33. package/core/dist/runtime-v2/config/pd-validate-profile.d.ts.map +1 -1
  34. package/core/dist/runtime-v2/config/pd-validate-profile.js +27 -135
  35. package/core/dist/runtime-v2/config/pd-validate-profile.js.map +1 -1
  36. package/core/dist/runtime-v2/core-principles/core-principle-registry.d.ts +4 -4
  37. package/core/dist/runtime-v2/core-principles/core-principle-registry.d.ts.map +1 -1
  38. package/core/dist/runtime-v2/core-principles/core-principle-registry.js +2 -2
  39. package/core/dist/runtime-v2/golden-trace-replay-validator.d.ts.map +1 -1
  40. package/core/dist/runtime-v2/golden-trace-replay-validator.js +0 -2
  41. package/core/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
  42. package/core/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  43. package/core/dist/runtime-v2/golden-trace.js +0 -3
  44. package/core/dist/runtime-v2/golden-trace.js.map +1 -1
  45. package/core/dist/runtime-v2/index.d.ts +7 -5
  46. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  47. package/core/dist/runtime-v2/index.js +6 -5
  48. package/core/dist/runtime-v2/index.js.map +1 -1
  49. package/core/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js +2 -2
  50. package/core/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js.map +1 -1
  51. package/core/dist/runtime-v2/internalization/__tests__/internalization-transition-decision.test.js.map +1 -1
  52. package/core/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts +2 -0
  53. package/core/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.d.ts.map +1 -0
  54. package/core/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js +101 -0
  55. package/core/dist/runtime-v2/internalization/__tests__/legacy-rule-contract-scanner.test.js.map +1 -0
  56. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js +28 -28
  57. package/core/dist/runtime-v2/internalization/__tests__/mvp-core-loop-journeys.test.js.map +1 -1
  58. package/core/dist/runtime-v2/internalization/index.d.ts +2 -0
  59. package/core/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  60. package/core/dist/runtime-v2/internalization/index.js +1 -0
  61. package/core/dist/runtime-v2/internalization/index.js.map +1 -1
  62. package/core/dist/runtime-v2/internalization/legacy-rule-contract-scanner.d.ts +51 -0
  63. package/core/dist/runtime-v2/internalization/legacy-rule-contract-scanner.d.ts.map +1 -0
  64. package/core/dist/runtime-v2/internalization/legacy-rule-contract-scanner.js +81 -0
  65. package/core/dist/runtime-v2/internalization/legacy-rule-contract-scanner.js.map +1 -0
  66. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  67. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +0 -2
  68. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  69. package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts +0 -3
  70. package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
  71. package/core/dist/runtime-v2/internalization/rule-host-helpers.d.ts +4 -2
  72. package/core/dist/runtime-v2/internalization/rule-host-helpers.d.ts.map +1 -1
  73. package/core/dist/runtime-v2/internalization/rule-host-helpers.js +4 -2
  74. package/core/dist/runtime-v2/internalization/rule-host-helpers.js.map +1 -1
  75. package/core/dist/runtime-v2/pain-signal-observability.js +3 -3
  76. package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  77. package/core/dist/runtime-v2/story-a-demo.d.ts.map +1 -1
  78. package/core/dist/runtime-v2/story-a-demo.js +2 -0
  79. package/core/dist/runtime-v2/story-a-demo.js.map +1 -1
  80. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
  81. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js +0 -4
  82. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
  83. package/core/dist/runtime-v2/types/event-payload.d.ts +1 -20
  84. package/core/dist/runtime-v2/types/event-payload.d.ts.map +1 -1
  85. package/core/dist/runtime-v2/types/event-payload.js +0 -12
  86. package/core/dist/runtime-v2/types/event-payload.js.map +1 -1
  87. package/core/dist/runtime-v2/types/event-types.d.ts +3 -18
  88. package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
  89. package/core/dist/runtime-v2/types/event-types.js +0 -8
  90. package/core/dist/runtime-v2/types/event-types.js.map +1 -1
  91. package/core/dist/runtime-v2/types/index.d.ts +3 -3
  92. package/core/dist/runtime-v2/types/index.d.ts.map +1 -1
  93. package/core/dist/runtime-v2/types/index.js +2 -2
  94. package/core/dist/runtime-v2/types/index.js.map +1 -1
  95. package/dist/installer.d.ts +49 -0
  96. package/dist/installer.d.ts.map +1 -1
  97. package/dist/installer.js +215 -3
  98. package/dist/installer.js.map +1 -1
  99. package/host-runtime/dist/legacy-rule-contract-symbols.d.ts +20 -0
  100. package/host-runtime/dist/legacy-rule-contract-symbols.js +37 -0
  101. package/host-runtime/dist/production-rulehost-gate.d.ts +0 -1
  102. package/host-runtime/dist/production-rulehost-gate.js +29 -5
  103. package/host-runtime/dist/rule-implementation-runtime.js +0 -2
  104. package/package.json +2 -2
  105. package/pd-cli/dist/commands/demo-story-a.d.ts +2 -0
  106. package/pd-cli/dist/commands/demo-story-a.d.ts.map +1 -1
  107. package/pd-cli/dist/commands/demo-story-a.js +41 -0
  108. package/pd-cli/dist/commands/demo-story-a.js.map +1 -1
  109. package/pd-cli/dist/commands/runtime-compatibility-scan.d.ts +32 -0
  110. package/pd-cli/dist/commands/runtime-compatibility-scan.d.ts.map +1 -0
  111. package/pd-cli/dist/commands/runtime-compatibility-scan.js +94 -0
  112. package/pd-cli/dist/commands/runtime-compatibility-scan.js.map +1 -0
  113. package/pd-cli/dist/index.js +4 -0
  114. package/pd-cli/dist/index.js.map +1 -1
  115. package/plugin/dist/bundle.js +537 -758
  116. package/plugin/dist/core/event-log.d.ts +1 -2
  117. package/plugin/dist/core/paths.d.ts +0 -2
  118. package/plugin/dist/core/profile.d.ts +0 -19
  119. package/plugin/dist/core/rule-host.d.ts +19 -0
  120. package/plugin/dist/core/session-tracker.d.ts +0 -13
  121. package/plugin/dist/core/thinking-os-parser.d.ts +0 -5
  122. package/plugin/dist/core/trajectory-types.d.ts +0 -1
  123. package/plugin/dist/core/trajectory.d.ts +0 -12
  124. package/plugin/dist/hooks/gate.d.ts +0 -1
  125. package/plugin/dist/templates/langs/en/skills/pd-mentor/SKILL.md +3 -4
  126. package/plugin/dist/templates/langs/zh/skills/pd-mentor/SKILL.md +3 -4
  127. package/plugin/dist/templates/workspace/.principles/PROFILE.json +0 -29
  128. package/plugin/dist/templates/workspace/.principles/PROFILE.schema.json +16 -25
  129. package/plugin/dist/templates/workspace/okr/CURRENT_FOCUS.md +0 -1
  130. package/plugin/dist/types/event-types.d.ts +1 -1
  131. package/plugin/openclaw.plugin.json +1 -1
  132. package/plugin/package.json +1 -1
  133. package/plugin/templates/langs/en/skills/pd-mentor/SKILL.md +3 -4
  134. package/plugin/templates/langs/zh/skills/pd-mentor/SKILL.md +3 -4
  135. package/plugin/templates/workspace/.principles/PROFILE.json +0 -29
  136. package/plugin/templates/workspace/.principles/PROFILE.schema.json +16 -25
  137. package/plugin/templates/workspace/okr/CURRENT_FOCUS.md +0 -1
  138. package/templates/workspace/okr/CURRENT_FOCUS.md +0 -1
  139. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +0 -2
  140. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +0 -1
  141. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +0 -149
  142. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +0 -1
  143. package/core/dist/runtime-v2/thinking-models/index.d.ts +0 -3
  144. package/core/dist/runtime-v2/thinking-models/index.d.ts.map +0 -1
  145. package/core/dist/runtime-v2/thinking-models/index.js +0 -3
  146. package/core/dist/runtime-v2/thinking-models/index.js.map +0 -1
  147. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +0 -73
  148. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +0 -1
  149. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js +0 -227
  150. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +0 -1
  151. package/plugin/dist/commands/thinking-os.d.ts +0 -2
  152. package/plugin/dist/core/control-ui-db.d.ts +0 -117
  153. package/plugin/dist/core/thinking-models.d.ts +0 -25
  154. package/plugin/dist/templates/workspace/.principles/THINKING_OS_CANDIDATES.md +0 -9
  155. package/plugin/templates/workspace/.principles/THINKING_OS_CANDIDATES.md +0 -9
  156. package/templates/langs/en/skills/admin/SKILL.md +0 -39
  157. package/templates/langs/en/skills/bootstrap-tools/SKILL.md +0 -53
  158. package/templates/langs/en/skills/deductive-audit/SKILL.md +0 -36
  159. package/templates/langs/en/skills/evolution-framework-update/SKILL.md +0 -31
  160. package/templates/langs/en/skills/evolve-system/SKILL.md +0 -46
  161. package/templates/langs/en/skills/evolve-task/SKILL.md +0 -83
  162. package/templates/langs/en/skills/feedback/SKILL.md +0 -51
  163. package/templates/langs/en/skills/init-strategy/SKILL.md +0 -54
  164. package/templates/langs/en/skills/inject-rule/SKILL.md +0 -19
  165. package/templates/langs/en/skills/manage-okr/SKILL.md +0 -96
  166. package/templates/langs/en/skills/pain/SKILL.md +0 -19
  167. package/templates/langs/en/skills/pd-mentor/SKILL.md +0 -211
  168. package/templates/langs/en/skills/profile/SKILL.md +0 -24
  169. package/templates/langs/en/skills/reflection/SKILL.md +0 -40
  170. package/templates/langs/en/skills/reflection-log/SKILL.md +0 -37
  171. package/templates/langs/en/skills/report/SKILL.md +0 -13
  172. package/templates/langs/en/skills/root-cause/SKILL.md +0 -33
  173. package/templates/langs/en/skills/triage/SKILL.md +0 -29
  174. package/templates/langs/en/skills/watch-evolution/SKILL.md +0 -33
  175. package/templates/langs/zh/skills/admin/SKILL.md +0 -41
  176. package/templates/langs/zh/skills/bootstrap-tools/SKILL.md +0 -52
  177. package/templates/langs/zh/skills/deductive-audit/SKILL.md +0 -36
  178. package/templates/langs/zh/skills/evolution-framework-update/SKILL.md +0 -31
  179. package/templates/langs/zh/skills/evolve-system/SKILL.md +0 -46
  180. package/templates/langs/zh/skills/evolve-task/SKILL.md +0 -83
  181. package/templates/langs/zh/skills/feedback/SKILL.md +0 -53
  182. package/templates/langs/zh/skills/init-strategy/SKILL.md +0 -54
  183. package/templates/langs/zh/skills/inject-rule/SKILL.md +0 -19
  184. package/templates/langs/zh/skills/manage-okr/SKILL.md +0 -109
  185. package/templates/langs/zh/skills/pain/SKILL.md +0 -30
  186. package/templates/langs/zh/skills/pd-auditor/SKILL.md +0 -61
  187. package/templates/langs/zh/skills/pd-explorer/SKILL.md +0 -65
  188. package/templates/langs/zh/skills/pd-implementer/SKILL.md +0 -68
  189. package/templates/langs/zh/skills/pd-mentor/SKILL.md +0 -211
  190. package/templates/langs/zh/skills/pd-planner/SKILL.md +0 -65
  191. package/templates/langs/zh/skills/pd-reporter/SKILL.md +0 -78
  192. package/templates/langs/zh/skills/pd-reviewer/SKILL.md +0 -66
  193. package/templates/langs/zh/skills/profile/SKILL.md +0 -24
  194. package/templates/langs/zh/skills/reflection/SKILL.md +0 -40
  195. package/templates/langs/zh/skills/reflection-log/SKILL.md +0 -37
  196. package/templates/langs/zh/skills/report/SKILL.md +0 -13
  197. package/templates/langs/zh/skills/root-cause/SKILL.md +0 -33
  198. package/templates/langs/zh/skills/triage/SKILL.md +0 -29
  199. package/templates/langs/zh/skills/watch-evolution/SKILL.md +0 -33
@@ -1,149 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"thinking-models-policy.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,73 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,227 +0,0 @@
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
- import { CORE_PRINCIPLES } from '../core-principles/core-principle-registry.js';
18
- export const BUILTIN_PATTERNS = [
19
- {
20
- id: 'T-01',
21
- patterns: [
22
- // Thinking process language (AI reasoning output)
23
- /let me (first )?(understand|map|outline|survey|review the (structure|architecture|dependencies))/i,
24
- /before (changing|editing|touching) anything/i,
25
- /让我先(梳理|理解|看看|盘点).*(结构|架构|依赖|全貌)/i,
26
- /在执行任何.*/i,
27
- // Decision directive language (nocturnal artifact betterDecision)
28
- /review (the |)(docs|architecture|structure|requirements|constraints|dependencies|authorization)/i,
29
- /read (the |)(docs|architecture|requirements|constraints|logs?|error|stack)/i,
30
- /check (the |)(docs|architecture|source|authorization|requirements|error)/i,
31
- /understand (the |)(structure|architecture|requirements|constraints|full (context|picture))/i,
32
- /first (to|and|,) (verify|check|review|read|understand|confirm|diagnose)/i,
33
- /(verify|check|review|read|confirm) .+ first/i,
34
- ],
35
- baselineScenarios: ['exploration', 'discovery'],
36
- },
37
- {
38
- id: 'T-02',
39
- patterns: [
40
- // Thinking process language
41
- /(type|test|contract|schema|interface) (constraint|requirement|check|validation)/i,
42
- /(必须|需要).*(遵守|符合|满足).*(类型|测试|契约|接口|规范)/i,
43
- // Decision directive language
44
- /(trust|follow|respect|adhere to|meet) (the |)(constraint|requirement|contract|interface|specification|schema|type)/i,
45
- /(check|verify|validate|ensure) (the |)(constraint|requirement|contract|interface|specification|type|schema)/i,
46
- ],
47
- baselineScenarios: ['constraint-check', 'contract-verification'],
48
- },
49
- {
50
- id: 'T-03',
51
- patterns: [
52
- // Thinking process language
53
- /based on (the |this )?(evidence|logs?|output|error|stack trace|test result)/i,
54
- /let me (check|verify|confirm|read|look at) (the |)(actual|source|code|file|log)/i,
55
- /根据(日志|证据|输出|报错|堆栈|测试结果)/i,
56
- // Decision directive language (evidence-based decision)
57
- /(verify|check|confirm) (the |)(error|error code|error message|actual|evidence|logs?|output|stack)/i,
58
- /(error|failure) (logs?|output|stack trace|message|code) (before|then)/i,
59
- /(look at|read) (the |)(error|logs?|output|stack|actual|evidence|file|code)/i,
60
- ],
61
- baselineScenarios: ['evidence-gathering', 'verification'],
62
- },
63
- {
64
- id: 'T-04',
65
- patterns: [
66
- // Thinking process language
67
- /this (is|would be) (irreversible|destructive|permanent|not easily undone)/i,
68
- /(reversible|can be undone|safely roll back)/i,
69
- /(不可逆|破坏性|无法回滚|可以回滚|安全撤销)/i,
70
- // Decision directive language
71
- /(irreversible|destructive|permanent|high impact) (action|change|operation)/i,
72
- /(must be|need to be|should be) (reviewed|confirmed|verified|checked) (first|before)/i,
73
- /(get|obtain|ask for) (confirmation|authorization|approval|permission) (first|before)/i,
74
- ],
75
- baselineScenarios: ['risk-management', 'reversibility'],
76
- },
77
- {
78
- id: 'T-05',
79
- patterns: [
80
- // Thinking process language
81
- /we (must|should) (not|never|avoid|prevent|ensure we don't)/i,
82
- /(critical|important) (not to|that we don't|to avoid)/i,
83
- /(绝不能|必须避免|不可|禁止|确保不会)/i,
84
- // Decision directive language
85
- /(must|should|need to) (not |never |avoid )?(check|verify|review|read|confirm|ask)/i,
86
- /(safety|safe) (check|gate|checklist|guard)/i,
87
- ],
88
- baselineScenarios: ['guardrails', 'safety-rails'],
89
- },
90
- {
91
- id: 'T-06',
92
- patterns: [
93
- // Thinking process language
94
- /(simpl(er|est|ify)|minimal|straightforward|lean) (approach|solution|fix|implementation)/i,
95
- /(simple is better|keep it simple|no need to over)/i,
96
- /(最简|更简单|精简|没必要过度设计)/i,
97
- // Decision directive language
98
- /(minimal|smallest|narrowest) (change|modification|impact|approach)/i,
99
- /(only|just) (change|modify|touch|edit|affect) (the |what)/i,
100
- ],
101
- baselineScenarios: ['simplification', 'pragmatism'],
102
- },
103
- {
104
- id: 'T-07',
105
- patterns: [
106
- // Thinking process language
107
- /(minimal|smallest|narrowest|least) (change|diff|modification|impact)/i,
108
- /only (change|modify|touch|edit) (the |what)/i,
109
- /(最小改动|最小变更|只改|只动必要部分)/i,
110
- // Decision directive language
111
- /(limit|narrow) (the |)(change|impact|scope|blast radius)/i,
112
- ],
113
- baselineScenarios: ['minimal-diff', 'blast-radius-control'],
114
- },
115
- {
116
- id: 'T-08',
117
- patterns: [
118
- // Thinking process language
119
- /this (error|failure|issue) (tells us|indicates|signals|suggests|means)/i,
120
- /let me (stop|pause|step back|reconsider|rethink)/i,
121
- /这个(错误|失败|问题).*(说明|意味着|提示)/i,
122
- /让我(停下|暂停|退一步|重新考虑|重新审视)/i,
123
- // Decision directive language
124
- /(diagnose|analyze|investigate) (the |)(root |)(cause|reason|error|failure) (first|before)/i,
125
- /(understand|diagnose|analyze) (the |)(error|failure|issue|problem) (first|before)/i,
126
- ],
127
- baselineScenarios: ['reflection', 'pain-response'],
128
- },
129
- {
130
- id: 'T-09',
131
- patterns: [
132
- // Thinking process language
133
- /(break|split|decompose|divide) (this |the task |it )?(into|down)/i,
134
- /(step 1|first,? (we|i|let's)|phase 1)/i,
135
- /(拆分|分解|分步|分阶段|第一步)/i,
136
- // Decision directive language
137
- /(break|split|decompose|divide) (the |)(task|problem|action) (into|into steps)/i,
138
- ],
139
- baselineScenarios: ['decomposition', 'phased-execution'],
140
- },
141
- {
142
- id: 'T-10',
143
- patterns: [
144
- // Thinking process language
145
- /let me (write|save|record|note down|document)/i,
146
- /memory.*scratchpad|write.*plan\.md|write.*memory|memory.*persist/i,
147
- /(让我.*写入|写入.*memory|记录.*scratchpad)/i,
148
- // Decision directive language
149
- /(write|save|record|note) (the |)(conclusion|decision|plan|next step) (to|in) (file|plan\.md|scratchpad)/i,
150
- ],
151
- baselineScenarios: ['memory-persistence', 'state-externalization'],
152
- },
153
- ];
154
- export const BUILTIN_PATTERN_MAP = new Map(BUILTIN_PATTERNS.map((p) => [p.id, p]));
155
- // ---------------------------------------------------------------------------
156
- // Fallback name/description lookup — delegates to Core Principle Registry
157
- // ---------------------------------------------------------------------------
158
- export function getFallbackName(id) {
159
- const entry = CORE_PRINCIPLES.find(p => p.id === id);
160
- return entry?.name ?? id;
161
- }
162
- export function getFallbackDescription(id) {
163
- const entry = CORE_PRINCIPLES.find(p => p.id === id);
164
- return entry?.statement ?? '';
165
- }
166
- /**
167
- * Look up baselineScenarios for a model id from the builtin pattern map.
168
- * Returns an empty array if the id is unknown.
169
- */
170
- export function getBuiltinBaselineScenarios(modelId) {
171
- return BUILTIN_PATTERN_MAP.get(modelId)?.baselineScenarios ?? [];
172
- }
173
- // ---------------------------------------------------------------------------
174
- // Scenario derivation — pure logic, no I/O
175
- // ---------------------------------------------------------------------------
176
- /**
177
- * Derive thinking scenarios for a model id given a context.
178
- *
179
- * baselineScenarios come from BUILTIN_PATTERN_MAP (the source of truth —
180
- * even when the plugin loads THINKING_OS.md, baselineScenarios are sourced
181
- * from the builtin map, never from the parsed directives).
182
- */
183
- export function deriveThinkingScenarios(modelId, context) {
184
- const scenarios = new Set(getBuiltinBaselineScenarios(modelId));
185
- if ((context.recentToolCalls ?? []).some((call) => call.outcome === 'failure')) {
186
- scenarios.add('after-tool-failure');
187
- }
188
- // after-recovery: success that follows a failure (not just any success)
189
- const calls = context.recentToolCalls ?? [];
190
- const hasFailure = calls.some((call) => call.outcome === 'failure');
191
- const hasSuccess = calls.some((call) => call.outcome === 'success');
192
- if (hasFailure && hasSuccess) {
193
- scenarios.add('after-recovery');
194
- }
195
- if ((context.recentToolCalls ?? []).some((call) => call.outcome === 'blocked')) {
196
- scenarios.add('blocked-execution');
197
- }
198
- if ((context.recentToolCalls ?? []).some((call) => Boolean(call.errorType))) {
199
- scenarios.add('incident-response');
200
- }
201
- if ((context.recentPainEvents ?? []).length > 0) {
202
- scenarios.add('user-friction');
203
- }
204
- if ((context.recentGateBlocks ?? []).length > 0) {
205
- scenarios.add('gate-block');
206
- }
207
- if ((context.recentUserCorrections ?? []).length > 0) {
208
- scenarios.add('user-correction');
209
- }
210
- if ((context.recentPrincipleEvents ?? []).length > 0) {
211
- scenarios.add('principle-feedback');
212
- }
213
- if (modelId === 'T-03') {
214
- scenarios.add('root-cause-analysis');
215
- }
216
- if (modelId === 'T-04' || modelId === 'T-05') {
217
- scenarios.add('risk-review');
218
- }
219
- if (modelId === 'T-08') {
220
- scenarios.add('reflection-loop');
221
- }
222
- if (modelId === 'T-09') {
223
- scenarios.add('task-planning');
224
- }
225
- return Array.from(scenarios);
226
- }
227
- //# sourceMappingURL=thinking-models-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"thinking-models-policy.js","sourceRoot":"","sources":["../../../src/runtime-v2/thinking-models/thinking-models-policy.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { PluginCommandContext, PluginCommandResult } from '../openclaw-sdk.js';
2
- export declare function handleThinkingOs(ctx: PluginCommandContext): PluginCommandResult;
@@ -1,117 +0,0 @@
1
- /**
2
- * Control UI database stores ANALYTICS READ MODELS.
3
- *
4
- * PURPOSE: Aggregated data for dashboard visualization and historical insights.
5
- * USAGE: Control UI queries and dashboard displays.
6
- * NOT FOR: Control decisions, Phase 3 eligibility, or real-time operations.
7
- *
8
- * Runtime truth comes from: queue state, workspace trust scorecard, active sessions
9
- */
10
- export interface ThinkingModelEventInput {
11
- sessionId: string;
12
- runId: string;
13
- assistantTurnId: number;
14
- modelId: string;
15
- matchedPattern: string;
16
- scenarioJson: unknown;
17
- toolContextJson: unknown;
18
- painContextJson: unknown;
19
- principleContextJson: unknown;
20
- triggerExcerpt: string;
21
- createdAt: string;
22
- }
23
- export interface ControlUiDatabaseOptions {
24
- workspaceDir: string;
25
- busyTimeoutMs?: number;
26
- }
27
- export interface RecentThinkingContext {
28
- toolCalls: {
29
- id: number;
30
- toolName: string;
31
- outcome: 'success' | 'failure' | 'blocked';
32
- errorType: string | null;
33
- errorMessage: string | null;
34
- createdAt: string;
35
- }[];
36
- painEvents: {
37
- id: number;
38
- source: string;
39
- score: number;
40
- reason: string | null;
41
- createdAt: string;
42
- }[];
43
- gateBlocks: {
44
- id: number;
45
- toolName: string;
46
- reason: string;
47
- filePath: string | null;
48
- createdAt: string;
49
- }[];
50
- userCorrections: {
51
- id: number;
52
- correctionCue: string | null;
53
- rawExcerpt: string | null;
54
- createdAt: string;
55
- }[];
56
- principleEvents: {
57
- id: number;
58
- principleId: string | null;
59
- eventType: string;
60
- createdAt: string;
61
- }[];
62
- }
63
- export declare class ControlUiDatabase {
64
- private readonly workspaceDir;
65
- private readonly dbPath;
66
- private readonly blobDir;
67
- private readonly db;
68
- constructor(opts: ControlUiDatabaseOptions);
69
- dispose(): void;
70
- recordThinkingModelEvent(input: ThinkingModelEventInput): number;
71
- /**
72
- * Get recent thinking context for a session.
73
- *
74
- * Returns: Analytics data (read model) aggregated from trajectory database.
75
- * Not: Runtime truth or real-time queue state.
76
- */
77
- getRecentThinkingContext(sessionId: string, beforeCreatedAt: string, limit?: number): RecentThinkingContext;
78
- /**
79
- * Execute SQL query and return all rows.
80
- *
81
- * Returns: Analytics data (read model) aggregated from trajectory database.
82
- * Not: Runtime truth or real-time queue state.
83
- */
84
- all<T>(sql: string, ...params: unknown[]): T[];
85
- /**
86
- * Execute SQL query and return first row.
87
- *
88
- * Returns: Analytics data (read model) aggregated from trajectory database.
89
- * Not: Runtime truth or real-time queue state.
90
- */
91
- get<T>(sql: string, ...params: unknown[]): T | undefined;
92
- /**
93
- * Execute SQL statement that does not return rows (DDL, CREATE TABLE, etc.).
94
- *
95
- * Returns: void (executes directly)
96
- * Not for: SELECT queries (use all() or get() instead)
97
- */
98
- execute(sql: string): void;
99
- /**
100
- * Execute a parameterized write statement (INSERT, UPDATE, DELETE).
101
- */
102
- run(sql: string, ...params: unknown[]): void;
103
- restoreRawText(inlineText?: string | null, blobRef?: string | null): string;
104
- private initSchema;
105
- /**
106
- * Create or replace a view, tolerating missing dependency tables.
107
- *
108
- * Views in ControlUiDatabase depend on tables created by TrajectoryDatabase
109
- * (assistant_turns, tool_calls, pain_events, user_turns, correction_samples).
110
- * If ControlUiDatabase is constructed before TrajectoryDatabase has created
111
- * those tables, CREATE VIEW would throw. We DROP+CREATE with try/catch so
112
- * missing-dependency views are skipped with a warning (rc-9: surfaced via
113
- * console.info) rather than aborting schema initialization.
114
- */
115
- private createViewSafely;
116
- private withWrite;
117
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * Thinking Models — Plugin I/O Adapter (Stage 3 slim)
3
- *
4
- * Pure logic (BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName,
5
- * getFallbackDescription, deriveThinkingScenarios, types) lives in
6
- * @principles/core/runtime-v2/thinking-models.
7
- *
8
- * This file owns only the I/O boundary: reading THINKING_OS.md from a
9
- * workspace dir and merging it with the builtin patterns. It re-exports
10
- * the pure functions and types so existing relative imports
11
- * (../core/thinking-models.js) continue to resolve.
12
- */
13
- import { type ThinkingModelDefinition, type ThinkingModelMatch } from '@principles/core/runtime-v2';
14
- export { BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, } from '@principles/core/runtime-v2';
15
- export { deriveThinkingScenarios } from '@principles/core/runtime-v2';
16
- export type { ThinkingModelDefinition, ThinkingModelMatch, ThinkingScenarioContext, } from '@principles/core/runtime-v2';
17
- /**
18
- * Load thinking model definitions dynamically from THINKING_OS.md.
19
- * Falls back to built-in definitions if parsing fails.
20
- *
21
- * @param workspaceDir Optional. If provided, loads from that workspace's THINKING_OS.md.
22
- */
23
- export declare function listThinkingModels(workspaceDir?: string): ThinkingModelDefinition[];
24
- export declare function getThinkingModel(modelId: string, workspaceDir?: string): ThinkingModelDefinition | undefined;
25
- export declare function detectThinkingModelMatches(text: string, workspaceDir?: string): ThinkingModelMatch[];
@@ -1,9 +0,0 @@
1
- # Thinking OS — 候选思维模型池
2
-
3
- > 本文件由智能体在反思过程中自动追加候选条目。
4
- > 晋升为正式模型需满足:≥3 种任务验证有效 + ≤3 行可描述 + 非冗余 + 人类批准。
5
- > 使用 `/thinking-os propose` 手动提议,或 `/thinking-os audit` 审计候选池。
6
-
7
- ---
8
-
9
- <!-- 候选条目从这里开始 -->