blun-king-cli 9.1.414 → 9.1.415
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/LIESMICH.txt +9 -0
- package/README.md +9 -0
- package/bin/cognitive-focus-projection.cjs +1 -1
- package/bin/cognitive-work-focus.cjs +25 -1
- package/package.json +1 -1
package/LIESMICH.txt
CHANGED
|
@@ -483,6 +483,15 @@ Nutzerentscheidung. Auslöser und Bedingung bleiben bei Fortsetzung und Neustart
|
|
|
483
483
|
erhalten, ohne Berechtigungen zu erteilen. Bereits gespeicherte ältere
|
|
484
484
|
Checkpoints bleiben lesbar.
|
|
485
485
|
|
|
486
|
+
Ab BLUN King 9.1.415 übernimmt der sitzungsübergreifende Arbeitsfokus den
|
|
487
|
+
gespeicherten Auslöser vollständig. Die nächste Aktion und die Bedingung, unter
|
|
488
|
+
der sie ausgeführt werden darf, bleiben getrennt sichtbar. Dadurch erscheint
|
|
489
|
+
eine Wartephase nach einem Neustart oder Kontextwechsel nicht mehr als sofortiger
|
|
490
|
+
Arbeitsauftrag. Art und Bedingung des Auslösers verändern außerdem die Identität
|
|
491
|
+
des dauerhaften Fokuszustands; fehlerhafte oder zur Phase widersprüchliche
|
|
492
|
+
Auslöser werden verworfen. Ältere Checkpoints ohne ausdrücklichen Auslöser
|
|
493
|
+
behalten ihr bisheriges Verhalten.
|
|
494
|
+
|
|
486
495
|
Der eigentliche Anhang und die vollständige Nutzernachricht bleiben für den Zug
|
|
487
496
|
unverändert verfügbar. Die Begrenzung betrifft ausschließlich die kleine
|
|
488
497
|
lexikalische Vorauswahl von höchstens zwei Werkzeugschemas; ToolSearch und alle
|
package/README.md
CHANGED
|
@@ -489,6 +489,15 @@ Nutzerentscheidung. Auslöser und Bedingung bleiben bei Fortsetzung und Neustart
|
|
|
489
489
|
erhalten, ohne Berechtigungen zu erteilen. Bereits gespeicherte ältere
|
|
490
490
|
Checkpoints bleiben lesbar.
|
|
491
491
|
|
|
492
|
+
Ab BLUN King 9.1.415 übernimmt der sitzungsübergreifende Arbeitsfokus den
|
|
493
|
+
gespeicherten Auslöser vollständig. Die nächste Aktion und die Bedingung, unter
|
|
494
|
+
der sie ausgeführt werden darf, bleiben getrennt sichtbar. Dadurch erscheint
|
|
495
|
+
eine Wartephase nach einem Neustart oder Kontextwechsel nicht mehr als sofortiger
|
|
496
|
+
Arbeitsauftrag. Art und Bedingung des Auslösers verändern außerdem die Identität
|
|
497
|
+
des dauerhaften Fokuszustands; fehlerhafte oder zur Phase widersprüchliche
|
|
498
|
+
Auslöser werden verworfen. Ältere Checkpoints ohne ausdrücklichen Auslöser
|
|
499
|
+
behalten ihr bisheriges Verhalten.
|
|
500
|
+
|
|
492
501
|
Der eigentliche Anhang und die vollständige Nutzernachricht bleiben für den Zug
|
|
493
502
|
unverändert verfügbar. Die Begrenzung betrifft ausschließlich die kleine
|
|
494
503
|
lexikalische Vorauswahl von höchstens zwei Werkzeugschemas; ToolSearch und alle
|
|
@@ -53,7 +53,7 @@ function buildCognitiveFocusProjection(state, { focusScopes, maxItems = 6, maxCh
|
|
|
53
53
|
state.observations.forEach((item, index) => {
|
|
54
54
|
const domain = String(item?.domain ?? '');
|
|
55
55
|
const key = clean(item?.key, 128);
|
|
56
|
-
const value = clean(item?.value,
|
|
56
|
+
const value = clean(item?.value, 640);
|
|
57
57
|
const scope = clean(item?.scope, 128);
|
|
58
58
|
const observationId = clean(item?.observation_id, 128);
|
|
59
59
|
const supersedes = item?.supersedes === null || item?.supersedes === undefined
|
|
@@ -7,6 +7,10 @@ const STATUSES = new Set(['active', 'paused', 'blocked']);
|
|
|
7
7
|
const EPISTEMIC_STATES = new Set([
|
|
8
8
|
'verified', 'credible_unverified', 'hypothesis', 'uncertain_memory', 'stale', 'unknown', 'legacy_unknown',
|
|
9
9
|
]);
|
|
10
|
+
const TRIGGER_KINDS = new Set([
|
|
11
|
+
'immediate', 'external_event', 'time', 'dependency', 'user_decision',
|
|
12
|
+
]);
|
|
13
|
+
const TRIGGER_KEYS = new Set(['kind', 'condition']);
|
|
10
14
|
const NEXT_TRIGGER = new Map([
|
|
11
15
|
['active', 'Continue the active goal from its last verified state.'],
|
|
12
16
|
['paused', 'Wait until the goal is explicitly resumed.'],
|
|
@@ -40,6 +44,23 @@ function buildCognitiveWorkFocus(goal) {
|
|
|
40
44
|
const nextAction = bounded(checkpoint?.nextAction);
|
|
41
45
|
const checkpointEvidence = bounded(checkpoint?.expectedEvidence);
|
|
42
46
|
const checkpointEpistemicState = bounded(checkpoint?.epistemicState, 32);
|
|
47
|
+
const rawNextTrigger = checkpoint?.nextTrigger;
|
|
48
|
+
let triggerKind = '';
|
|
49
|
+
let triggerCondition = '';
|
|
50
|
+
if (rawNextTrigger !== undefined) {
|
|
51
|
+
if (!rawNextTrigger || typeof rawNextTrigger !== 'object' || Array.isArray(rawNextTrigger)
|
|
52
|
+
|| Object.keys(rawNextTrigger).length !== TRIGGER_KEYS.size
|
|
53
|
+
|| Object.keys(rawNextTrigger).some((key) => !TRIGGER_KEYS.has(key))) return null;
|
|
54
|
+
triggerKind = String(rawNextTrigger.kind ?? '').trim();
|
|
55
|
+
triggerCondition = bounded(rawNextTrigger.condition);
|
|
56
|
+
if (!TRIGGER_KINDS.has(triggerKind) || !triggerCondition
|
|
57
|
+
|| checkpointPhase === 'wait' && triggerKind === 'immediate'
|
|
58
|
+
|| checkpointPhase !== 'wait' && triggerKind !== 'immediate') return null;
|
|
59
|
+
}
|
|
60
|
+
const hasExplicitTrigger = Boolean(triggerKind && triggerCondition);
|
|
61
|
+
const triggerValue = hasExplicitTrigger
|
|
62
|
+
? `${triggerKind.replaceAll('_', ' ')} - ${triggerCondition}`
|
|
63
|
+
: nextAction;
|
|
43
64
|
const problemFrame = checkpoint?.problemFrame && typeof checkpoint.problemFrame === 'object'
|
|
44
65
|
&& !Array.isArray(checkpoint.problemFrame) ? checkpoint.problemFrame : null;
|
|
45
66
|
const frameMissingKnowledge = Array.isArray(problemFrame?.missingKnowledge)
|
|
@@ -69,6 +90,8 @@ function buildCognitiveWorkFocus(goal) {
|
|
|
69
90
|
hasCheckpoint ? lastVerified : '',
|
|
70
91
|
hasCheckpoint ? nextAction : '',
|
|
71
92
|
hasCheckpoint ? checkpointEvidence : '',
|
|
93
|
+
hasExplicitTrigger ? triggerKind : '',
|
|
94
|
+
hasExplicitTrigger ? triggerCondition : '',
|
|
72
95
|
epistemicState,
|
|
73
96
|
hasProblemFrame ? frameSuccessCriterion : '',
|
|
74
97
|
hasProblemFrame ? frameMissingKnowledge.join('\0') : '',
|
|
@@ -91,6 +114,7 @@ function buildCognitiveWorkFocus(goal) {
|
|
|
91
114
|
value: bounded(hasCheckpoint
|
|
92
115
|
? [
|
|
93
116
|
`Goal is ${status}. Phase ${checkpointPhase}. Last verified: ${lastVerified}`,
|
|
117
|
+
`Next action: ${nextAction}`,
|
|
94
118
|
hasProblemFrame ? `Missing knowledge: ${frameMissingKnowledge.join(' | ')}` : '',
|
|
95
119
|
hasProblemFrame ? `Risk: ${frameRisk}` : '',
|
|
96
120
|
hasProblemFrame ? `Selected action: ${frameSelectedAction}` : '',
|
|
@@ -100,7 +124,7 @@ function buildCognitiveWorkFocus(goal) {
|
|
|
100
124
|
},
|
|
101
125
|
{
|
|
102
126
|
domain: 'next_trigger', key: `${keyRoot}:next`,
|
|
103
|
-
value: status === 'active' && hasCheckpoint ?
|
|
127
|
+
value: status === 'active' && hasCheckpoint ? triggerValue : NEXT_TRIGGER.get(status),
|
|
104
128
|
confidence: 1, epistemicState, scope: focusScope,
|
|
105
129
|
},
|
|
106
130
|
{
|