@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.
- package/dist/runtime-v2/index.d.ts +5 -3
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +5 -2
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +2 -0
- package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +1 -0
- package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +88 -0
- package/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +1 -0
- package/dist/runtime-v2/intent/__tests__/intent-doc.test.js +27 -1
- package/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +1 -1
- package/dist/runtime-v2/intent/index.d.ts +1 -0
- package/dist/runtime-v2/intent/index.d.ts.map +1 -1
- package/dist/runtime-v2/intent/index.js +1 -0
- package/dist/runtime-v2/intent/index.js.map +1 -1
- package/dist/runtime-v2/intent/intent-doc-version.d.ts +28 -0
- package/dist/runtime-v2/intent/intent-doc-version.d.ts.map +1 -0
- package/dist/runtime-v2/intent/intent-doc-version.js +21 -0
- package/dist/runtime-v2/intent/intent-doc-version.js.map +1 -0
- package/dist/runtime-v2/intent/intent-doc.d.ts +5 -0
- package/dist/runtime-v2/intent/intent-doc.d.ts.map +1 -1
- package/dist/runtime-v2/intent/intent-doc.js +68 -0
- package/dist/runtime-v2/intent/intent-doc.js.map +1 -1
- package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +2 -0
- package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +1 -0
- package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +83 -0
- package/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +1 -0
- package/dist/runtime-v2/store/intent/index.d.ts +2 -1
- package/dist/runtime-v2/store/intent/index.d.ts.map +1 -1
- package/dist/runtime-v2/store/intent/index.js +2 -1
- package/dist/runtime-v2/store/intent/index.js.map +1 -1
- package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts +28 -0
- package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts.map +1 -0
- package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js +88 -0
- package/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js.map +1 -0
- package/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
- package/dist/runtime-v2/store/sqlite-connection.js +14 -0
- package/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
- package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +2 -0
- package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +1 -0
- package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +149 -0
- package/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +1 -0
- package/dist/runtime-v2/thinking-models/index.d.ts +3 -0
- package/dist/runtime-v2/thinking-models/index.d.ts.map +1 -0
- package/dist/runtime-v2/thinking-models/index.js +3 -0
- package/dist/runtime-v2/thinking-models/index.js.map +1 -0
- package/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +73 -0
- package/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +1 -0
- package/dist/runtime-v2/thinking-models/thinking-models-policy.js +227 -0
- package/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,227 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|