instar 1.3.236 → 1.3.237
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/core/ParallelActivityIndex.d.ts +62 -0
- package/dist/core/ParallelActivityIndex.d.ts.map +1 -0
- package/dist/core/ParallelActivityIndex.js +129 -0
- package/dist/core/ParallelActivityIndex.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +16 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/monitoring/GeminiLoopDriver.d.ts +112 -0
- package/dist/monitoring/GeminiLoopDriver.d.ts.map +1 -0
- package/dist/monitoring/GeminiLoopDriver.js +111 -0
- package/dist/monitoring/GeminiLoopDriver.js.map +1 -0
- package/dist/monitoring/ParallelWorkOverlap.d.ts +59 -0
- package/dist/monitoring/ParallelWorkOverlap.d.ts.map +1 -0
- package/dist/monitoring/ParallelWorkOverlap.js +86 -0
- package/dist/monitoring/ParallelWorkOverlap.js.map +1 -0
- package/dist/monitoring/ParallelWorkSentinel.d.ts +59 -0
- package/dist/monitoring/ParallelWorkSentinel.d.ts.map +1 -0
- package/dist/monitoring/ParallelWorkSentinel.js +79 -0
- package/dist/monitoring/ParallelWorkSentinel.js.map +1 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts +14 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.d.ts.map +1 -1
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js +16 -0
- package/dist/providers/adapters/gemini-cli/transport/geminiSpawn.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +30 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +9 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +2 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +17 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates.ts +4 -0
- package/upgrades/1.3.237.md +82 -0
- package/upgrades/side-effects/gemini-multi-turn-loop-driver.md +56 -0
- package/upgrades/side-effects/parallel-activity-coherence.md +85 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ParallelActivityIndex — a thin CROSS-topic read aggregator over the EXISTING
|
|
3
|
+
* Topic-Intent Layer (docs/specs/parallel-activity-coherence.md, Phase A).
|
|
4
|
+
*
|
|
5
|
+
* It does NOT introduce a new per-topic store (convergence: that would duplicate
|
|
6
|
+
* TopicIntentStore/TopicIntentCapture/briefing/decay). It only READS the existing
|
|
7
|
+
* per-topic intent files and presents a cross-topic view — "all my topics + what
|
|
8
|
+
* each is currently working on" — which is the thing that genuinely did not exist.
|
|
9
|
+
* This view feeds the GET /parallel-work/activities surface and (Phase B) the
|
|
10
|
+
* ParallelWorkSentinel's overlap comparison. Signal-only; never gates or mutates.
|
|
11
|
+
*/
|
|
12
|
+
import { type EstablishedRef } from './TopicIntent.js';
|
|
13
|
+
/** A topic's current parallel-work snapshot, derived from its intent refs. */
|
|
14
|
+
export interface TopicActivity {
|
|
15
|
+
topicId: number;
|
|
16
|
+
/** One-line current focus: the highest-tier goal, else the latest decision, else null. */
|
|
17
|
+
focus: string | null;
|
|
18
|
+
/** High-specificity tokens (entities/files/identifiers) for cheap overlap matching. */
|
|
19
|
+
tags: string[];
|
|
20
|
+
/** Count of established refs at/above the 'tentative' tier (how "settled" the topic is). */
|
|
21
|
+
refCount: number;
|
|
22
|
+
/** Most recent reinforcement across the topic's refs (freshness; null if unknown). */
|
|
23
|
+
updatedAt: number | null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extract high-specificity tokens from free text: identifiers, file paths, branch-ish
|
|
27
|
+
* names, camelCase/kebab/snake words, and rare ≥4-char words — minus boilerplate. Bare
|
|
28
|
+
* generic words are dropped so two topics that merely both say "fix the test" don't match.
|
|
29
|
+
*/
|
|
30
|
+
export declare function extractTags(text: string): string[];
|
|
31
|
+
export interface ParallelActivityIndexOptions {
|
|
32
|
+
stateDir: string;
|
|
33
|
+
/** Optional: resolve a topic's one-line purpose (e.g. TopicMemory.purpose) as a focus fallback. */
|
|
34
|
+
purposeFor?: (topicId: number) => string | null | undefined;
|
|
35
|
+
/** Optional: is a session/autonomous job live on this topic right now? */
|
|
36
|
+
isRunning?: (topicId: number) => boolean;
|
|
37
|
+
/** Optional: a human nickname for the topic. */
|
|
38
|
+
nicknameFor?: (topicId: number) => string | null | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Optional refs provider seam (testability + wiring-integrity). Defaults to the
|
|
41
|
+
* real TopicIntentStore.getRefsAtOrAbove(topicId,'tentative'). Production never
|
|
42
|
+
* sets this; tests inject controlled refs without fighting projectConfidence.
|
|
43
|
+
*/
|
|
44
|
+
getRefs?: (topicId: number, nowMs: number) => EstablishedRef[];
|
|
45
|
+
}
|
|
46
|
+
export declare class ParallelActivityIndex {
|
|
47
|
+
private readonly opts;
|
|
48
|
+
private readonly store;
|
|
49
|
+
private readonly intentDir;
|
|
50
|
+
constructor(opts: ParallelActivityIndexOptions);
|
|
51
|
+
/** Enumerate every topic that has an intent file. */
|
|
52
|
+
listTopicIds(): number[];
|
|
53
|
+
/** Build the cross-topic snapshot. nowMs lets tests pin time; defaults to live. */
|
|
54
|
+
activities(nowMs?: number): Array<TopicActivity & {
|
|
55
|
+
nickname: string | null;
|
|
56
|
+
running: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
private safeRefs;
|
|
59
|
+
/** Focus = most-recently-reinforced goal text, else the latest decision, else purpose, else null. */
|
|
60
|
+
private deriveFocus;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=ParallelActivityIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParallelActivityIndex.d.ts","sourceRoot":"","sources":["../../src/core/ParallelActivityIndex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEzE,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uFAAuF;IACvF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAYD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAalD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,mGAAmG;IACnG,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5D,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,gDAAgD;IAChD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7D;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,cAAc,EAAE,CAAC;CAChE;AAED,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,IAAI,EAAE,4BAA4B;IAK/D,qDAAqD;IACrD,YAAY,IAAI,MAAM,EAAE;IAexB,mFAAmF;IACnF,UAAU,CAAC,KAAK,GAAE,MAAmB,GAAG,KAAK,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAwB5G,OAAO,CAAC,QAAQ;IAShB,qGAAqG;IACrG,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ParallelActivityIndex — a thin CROSS-topic read aggregator over the EXISTING
|
|
3
|
+
* Topic-Intent Layer (docs/specs/parallel-activity-coherence.md, Phase A).
|
|
4
|
+
*
|
|
5
|
+
* It does NOT introduce a new per-topic store (convergence: that would duplicate
|
|
6
|
+
* TopicIntentStore/TopicIntentCapture/briefing/decay). It only READS the existing
|
|
7
|
+
* per-topic intent files and presents a cross-topic view — "all my topics + what
|
|
8
|
+
* each is currently working on" — which is the thing that genuinely did not exist.
|
|
9
|
+
* This view feeds the GET /parallel-work/activities surface and (Phase B) the
|
|
10
|
+
* ParallelWorkSentinel's overlap comparison. Signal-only; never gates or mutates.
|
|
11
|
+
*/
|
|
12
|
+
import fs from 'node:fs';
|
|
13
|
+
import path from 'node:path';
|
|
14
|
+
import { TopicIntentStore } from './TopicIntent.js';
|
|
15
|
+
/** Generic instar/domain boilerplate that must NOT count as overlap specificity. */
|
|
16
|
+
const STOPWORDS = new Set([
|
|
17
|
+
'the', 'a', 'an', 'and', 'or', 'to', 'of', 'in', 'on', 'for', 'with', 'is', 'are', 'be',
|
|
18
|
+
'this', 'that', 'it', 'we', 'i', 'you', 'will', 'should', 'add', 'use', 'using', 'make',
|
|
19
|
+
'fix', 'fixing', 'test', 'tests', 'testing', 'config', 'configure', 'pr', 'spec', 'topic',
|
|
20
|
+
'sentinel', 'hook', 'session', 'sessions', 'migration', 'migrate', 'work', 'working',
|
|
21
|
+
'build', 'building', 'change', 'changes', 'update', 'updates', 'wire', 'wiring', 'run',
|
|
22
|
+
'running', 'check', 'checks', 'new', 'task', 'feature', 'code', 'agent', 'instar',
|
|
23
|
+
]);
|
|
24
|
+
/**
|
|
25
|
+
* Extract high-specificity tokens from free text: identifiers, file paths, branch-ish
|
|
26
|
+
* names, camelCase/kebab/snake words, and rare ≥4-char words — minus boilerplate. Bare
|
|
27
|
+
* generic words are dropped so two topics that merely both say "fix the test" don't match.
|
|
28
|
+
*/
|
|
29
|
+
export function extractTags(text) {
|
|
30
|
+
const out = new Set();
|
|
31
|
+
if (!text)
|
|
32
|
+
return [];
|
|
33
|
+
// Path-ish / identifier-ish tokens (contain / . _ - or camelCase) are high-specificity.
|
|
34
|
+
const specific = text.match(/[A-Za-z0-9][A-Za-z0-9._/-]*[A-Za-z0-9]/g) ?? [];
|
|
35
|
+
for (const raw of specific) {
|
|
36
|
+
const tok = raw.toLowerCase();
|
|
37
|
+
const isCompound = /[._/-]/.test(raw) || /[a-z][A-Z]/.test(raw); // path/identifier/camelCase
|
|
38
|
+
if (isCompound && tok.length >= 3) {
|
|
39
|
+
out.add(tok);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
// plain word: keep only if rare-ish (≥4 chars) and not boilerplate
|
|
43
|
+
if (tok.length >= 4 && !STOPWORDS.has(tok))
|
|
44
|
+
out.add(tok);
|
|
45
|
+
}
|
|
46
|
+
return [...out];
|
|
47
|
+
}
|
|
48
|
+
export class ParallelActivityIndex {
|
|
49
|
+
opts;
|
|
50
|
+
store;
|
|
51
|
+
intentDir;
|
|
52
|
+
constructor(opts) {
|
|
53
|
+
this.opts = opts;
|
|
54
|
+
this.store = new TopicIntentStore(opts.stateDir);
|
|
55
|
+
this.intentDir = path.join(opts.stateDir, 'topic-intent');
|
|
56
|
+
}
|
|
57
|
+
/** Enumerate every topic that has an intent file. */
|
|
58
|
+
listTopicIds() {
|
|
59
|
+
let names = [];
|
|
60
|
+
try {
|
|
61
|
+
names = fs.readdirSync(this.intentDir);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return []; // no intent dir yet ⇒ no activities
|
|
65
|
+
}
|
|
66
|
+
const ids = [];
|
|
67
|
+
for (const n of names) {
|
|
68
|
+
const m = n.match(/^(\d+)\.json$/);
|
|
69
|
+
if (m)
|
|
70
|
+
ids.push(Number(m[1]));
|
|
71
|
+
}
|
|
72
|
+
return ids.sort((a, b) => a - b);
|
|
73
|
+
}
|
|
74
|
+
/** Build the cross-topic snapshot. nowMs lets tests pin time; defaults to live. */
|
|
75
|
+
activities(nowMs = Date.now()) {
|
|
76
|
+
return this.listTopicIds().map((topicId) => {
|
|
77
|
+
const refs = this.safeRefs(topicId, nowMs);
|
|
78
|
+
const focus = this.deriveFocus(refs, topicId);
|
|
79
|
+
const updatedAt = refs.reduce((acc, r) => {
|
|
80
|
+
const ms = tsOf(r);
|
|
81
|
+
return ms !== null && (acc === null || ms > acc) ? ms : acc;
|
|
82
|
+
}, null);
|
|
83
|
+
const tagSet = new Set();
|
|
84
|
+
for (const r of refs)
|
|
85
|
+
for (const t of extractTags(r.text))
|
|
86
|
+
tagSet.add(t);
|
|
87
|
+
const purpose = this.opts.purposeFor?.(topicId);
|
|
88
|
+
if (purpose)
|
|
89
|
+
for (const t of extractTags(purpose))
|
|
90
|
+
tagSet.add(t);
|
|
91
|
+
return {
|
|
92
|
+
topicId,
|
|
93
|
+
focus,
|
|
94
|
+
tags: [...tagSet],
|
|
95
|
+
refCount: refs.length,
|
|
96
|
+
updatedAt,
|
|
97
|
+
nickname: this.opts.nicknameFor?.(topicId) ?? null,
|
|
98
|
+
running: this.opts.isRunning?.(topicId) ?? false,
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
safeRefs(topicId, nowMs) {
|
|
103
|
+
try {
|
|
104
|
+
if (this.opts.getRefs)
|
|
105
|
+
return this.opts.getRefs(topicId, nowMs);
|
|
106
|
+
return this.store.getRefsAtOrAbove(topicId, 'tentative', nowMs);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** Focus = most-recently-reinforced goal text, else the latest decision, else purpose, else null. */
|
|
113
|
+
deriveFocus(refs, topicId) {
|
|
114
|
+
const latestByKind = (kind) => {
|
|
115
|
+
const matching = refs.filter((r) => r.kind === kind && r.text);
|
|
116
|
+
if (!matching.length)
|
|
117
|
+
return null;
|
|
118
|
+
const latest = matching.reduce((a, b) => ((tsOf(b) ?? 0) > (tsOf(a) ?? 0) ? b : a));
|
|
119
|
+
return latest.text;
|
|
120
|
+
};
|
|
121
|
+
return latestByKind('goal') ?? latestByKind('decision') ?? this.opts.purposeFor?.(topicId) ?? null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Parse an EstablishedRef's ISO lastReinforcedAt to epoch ms; null if unparseable. */
|
|
125
|
+
function tsOf(ref) {
|
|
126
|
+
const ms = Date.parse(ref.lastReinforcedAt);
|
|
127
|
+
return Number.isNaN(ms) ? null : ms;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=ParallelActivityIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParallelActivityIndex.js","sourceRoot":"","sources":["../../src/core/ParallelActivityIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3059,6 +3059,22 @@ The "an unknown component is using more than a quarter of the agent's token budg
|
|
|
3059
3059
|
patched = true;
|
|
3060
3060
|
result.upgraded.push('CLAUDE.md: added Token-Burn Alerts awareness (activity-gate noise fix)');
|
|
3061
3061
|
}
|
|
3062
|
+
// Parallel-Work Awareness (2026-06-03) — Agent Awareness + Migration Parity:
|
|
3063
|
+
// existing agents must learn they can see what all their topics are working on
|
|
3064
|
+
// (the cross-topic index), the antidote to duplicating another topic's work.
|
|
3065
|
+
// Content-sniffed for idempotency.
|
|
3066
|
+
if (!content.includes('Parallel-Work Awareness')) {
|
|
3067
|
+
const pwSection = `
|
|
3068
|
+
## Parallel-Work Awareness
|
|
3069
|
+
|
|
3070
|
+
See what ALL your hands are doing across topics/sessions at once (like a king with a council). A cross-topic read index over your existing per-topic intent: every topic, its current focus, high-specificity tags, and whether a session is live on it. The antidote to self-blindness — duplicating work another of your topics already did.
|
|
3071
|
+
- Check: \`curl -H "Authorization: Bearer $AUTH" "http://localhost:4042/parallel-work/activities"\` → \`{ count, runningCount, activities: [{ topicId, focus, tags, running, updatedAt }] }\`.
|
|
3072
|
+
- Proactive: before starting substantial new work in a topic, glance here to see if another topic is already on it; when the user asks "what am I working on across topics?" / "is another session already doing this?". (The proactive overlap councilor — ParallelWorkSentinel — is Phase B, ships dark.) Read-only; never gates. Spec: \`docs/specs/parallel-activity-coherence.md\`.
|
|
3073
|
+
`;
|
|
3074
|
+
content += '\n' + pwSection;
|
|
3075
|
+
patched = true;
|
|
3076
|
+
result.upgraded.push('CLAUDE.md: added Parallel-Work Awareness');
|
|
3077
|
+
}
|
|
3062
3078
|
// Per-Component Framework Routing (2026-06-03) — Agent Awareness + Migration
|
|
3063
3079
|
// Parity: existing agents must learn they can route internal components
|
|
3064
3080
|
// (sentinels/gates) to a different framework (e.g. sentinels on Codex) to
|