instar 1.3.716 → 1.3.717

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.
@@ -1 +1 @@
1
- {"version":3,"file":"llmBenchCoverage.d.ts","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAiEtE,CAAC"}
1
+ {"version":3,"file":"llmBenchCoverage.d.ts","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqFtE,CAAC"}
@@ -40,31 +40,45 @@ export const LLM_BENCH_COVERAGE = {
40
40
  InteractivePoolCanaryJudge: {
41
41
  exempt: 'judges a FIXED known-answer canary probe — the canary is its own benchmark; a bench task would re-test the same constant',
42
42
  },
43
- // ── Wave 2 (sentinels/gates/extractors still to author) ──
44
- InputDetector: { pending: 'wave-2' },
45
- InputGuard: { pending: 'wave-2' },
46
- SessionActivitySentinel: { pending: 'wave-2' },
47
- StallTriageNurse: { pending: 'wave-2' },
48
- CommitmentSentinel: { pending: 'wave-2' },
49
- PresenceProxy: { pending: 'wave-2' },
50
- PromiseBeacon: { pending: 'wave-2' },
51
- ProjectDriftChecker: { pending: 'wave-2' },
52
- TemporalCoherenceChecker: { pending: 'wave-2' },
53
- SessionWatchdog: { pending: 'wave-2' },
54
- ResumeQueueDrainer: { pending: 'wave-2' },
55
- TopicIntentArcCheck: { pending: 'wave-2' },
56
- SlackAdapter: { pending: 'wave-2' },
57
- TelegramAdapter: { pending: 'wave-2' },
58
- PromptGate: { pending: 'wave-2' },
59
- AutoApprover: { pending: 'wave-2' },
60
- IntegrationGate: { pending: 'wave-2' },
61
- UnjustifiedStopGate: { pending: 'wave-2' },
62
- CoherenceGate: { pending: 'wave-2' },
63
- OverrideDetector: { pending: 'wave-2' },
64
- TaskClassifier: { pending: 'wave-2' },
65
- ResumeValidator: { pending: 'wave-2' },
66
- SessionSummarySentinel: { pending: 'wave-2' },
67
- TopicIntentExtractor: { pending: 'wave-2' },
43
+ // ── Covered by Wave 2 (authored 2026-07-02; tasks-wave2/ in the bench harness) ──
44
+ InputGuard: { task: 'input-guard-coherence' },
45
+ SessionActivitySentinel: { task: 'activity-digest' },
46
+ StallTriageNurse: { task: 'stall-triage-diagnosis' },
47
+ CommitmentSentinel: { task: 'commitment-detector' },
48
+ PresenceProxy: { task: 'presence-tier3-stall' },
49
+ ProjectDriftChecker: { task: 'project-drift-check' },
50
+ TemporalCoherenceChecker: { task: 'temporal-coherence' },
51
+ SessionWatchdog: { task: 'watchdog-stuck-judge' },
52
+ ResumeQueueDrainer: { task: 'resume-sanity-check' },
53
+ TopicIntentArcCheck: { task: 'arc-check-classify' },
54
+ TelegramAdapter: { task: 'telegram-stall-confirm' },
55
+ // SlackAdapter.confirmStallAlert builds a byte-identical prompt to
56
+ // TelegramAdapter's (verified by diff) — the same task id covers both
57
+ // (precedent: CompletionEvaluator maps two surfaces to two ids).
58
+ SlackAdapter: { task: 'telegram-stall-confirm' },
59
+ PromptGate: { task: 'prompt-gate-detect' },
60
+ UnjustifiedStopGate: { task: 'unjustified-stop-gate' },
61
+ OverrideDetector: { task: 'override-detector' },
62
+ TaskClassifier: { task: 'task-classifier' },
63
+ ResumeValidator: { task: 'resume-validator' },
64
+ SessionSummarySentinel: { task: 'session-summary-sentinel' },
65
+ TopicIntentExtractor: { task: 'topic-intent-extractor' },
66
+ // ── Wave-2 argued exemptions (evidence: tasks-wave2/SKIPPED.md in the bench harness) ──
67
+ IntegrationGate: {
68
+ exempt: 'no LLM prompt of its own — delegates to JobReflector.reflect() (attribution JobReflector, tracked wave-3); zero LLM-provider callsites of its own in IntegrationGate.ts',
69
+ },
70
+ CoherenceGate: {
71
+ exempt: 'no callsite carries attribution CoherenceGate — all LLM calls flow through CoherenceReviewer.callApi() (incl. the DynamicReviewer subclass), covered by gate-triage',
72
+ },
73
+ AutoApprover: {
74
+ exempt: 'mechanical key injection + audit logging, no LLM callsite; the upstream judgment is InputClassifier.classify(), covered by input-classifier',
75
+ },
76
+ InputDetector: {
77
+ exempt: 'attribution-manifest alias only (a legacy prompt-pattern matcher); the live InputDetector class in PromptGate.ts calls with attribution PromptGate, covered by prompt-gate-detect',
78
+ },
79
+ PromiseBeacon: {
80
+ exempt: 'no live LLM prompt — generateStatusLine/classifyProgress hooks are unwired at the construction site (server.ts); the enqueue path resolves templated strings; revisit if a generator is wired',
81
+ },
68
82
  // ── Wave 3 (reflectors + background/job tasks) ──
69
83
  JobReflector: { pending: 'wave-3' },
70
84
  crossModelReviewer: { pending: 'wave-3' },
@@ -1 +1 @@
1
- {"version":3,"file":"llmBenchCoverage.js","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llmBenchCoverage.js","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.716",
3
+ "version": "1.3.717",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-07-02T12:23:30.734Z",
5
- "instarVersion": "1.3.716",
4
+ "generatedAt": "2026-07-02T12:29:51.364Z",
5
+ "instarVersion": "1.3.717",
6
6
  "entryCount": 202,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -49,31 +49,51 @@ export const LLM_BENCH_COVERAGE: Readonly<Record<string, BenchCoverage>> = {
49
49
  'judges a FIXED known-answer canary probe — the canary is its own benchmark; a bench task would re-test the same constant',
50
50
  },
51
51
 
52
- // ── Wave 2 (sentinels/gates/extractors still to author) ──
53
- InputDetector: { pending: 'wave-2' },
54
- InputGuard: { pending: 'wave-2' },
55
- SessionActivitySentinel: { pending: 'wave-2' },
56
- StallTriageNurse: { pending: 'wave-2' },
57
- CommitmentSentinel: { pending: 'wave-2' },
58
- PresenceProxy: { pending: 'wave-2' },
59
- PromiseBeacon: { pending: 'wave-2' },
60
- ProjectDriftChecker: { pending: 'wave-2' },
61
- TemporalCoherenceChecker: { pending: 'wave-2' },
62
- SessionWatchdog: { pending: 'wave-2' },
63
- ResumeQueueDrainer: { pending: 'wave-2' },
64
- TopicIntentArcCheck: { pending: 'wave-2' },
65
- SlackAdapter: { pending: 'wave-2' },
66
- TelegramAdapter: { pending: 'wave-2' },
67
- PromptGate: { pending: 'wave-2' },
68
- AutoApprover: { pending: 'wave-2' },
69
- IntegrationGate: { pending: 'wave-2' },
70
- UnjustifiedStopGate: { pending: 'wave-2' },
71
- CoherenceGate: { pending: 'wave-2' },
72
- OverrideDetector: { pending: 'wave-2' },
73
- TaskClassifier: { pending: 'wave-2' },
74
- ResumeValidator: { pending: 'wave-2' },
75
- SessionSummarySentinel: { pending: 'wave-2' },
76
- TopicIntentExtractor: { pending: 'wave-2' },
52
+ // ── Covered by Wave 2 (authored 2026-07-02; tasks-wave2/ in the bench harness) ──
53
+ InputGuard: { task: 'input-guard-coherence' },
54
+ SessionActivitySentinel: { task: 'activity-digest' },
55
+ StallTriageNurse: { task: 'stall-triage-diagnosis' },
56
+ CommitmentSentinel: { task: 'commitment-detector' },
57
+ PresenceProxy: { task: 'presence-tier3-stall' },
58
+ ProjectDriftChecker: { task: 'project-drift-check' },
59
+ TemporalCoherenceChecker: { task: 'temporal-coherence' },
60
+ SessionWatchdog: { task: 'watchdog-stuck-judge' },
61
+ ResumeQueueDrainer: { task: 'resume-sanity-check' },
62
+ TopicIntentArcCheck: { task: 'arc-check-classify' },
63
+ TelegramAdapter: { task: 'telegram-stall-confirm' },
64
+ // SlackAdapter.confirmStallAlert builds a byte-identical prompt to
65
+ // TelegramAdapter's (verified by diff) — the same task id covers both
66
+ // (precedent: CompletionEvaluator maps two surfaces to two ids).
67
+ SlackAdapter: { task: 'telegram-stall-confirm' },
68
+ PromptGate: { task: 'prompt-gate-detect' },
69
+ UnjustifiedStopGate: { task: 'unjustified-stop-gate' },
70
+ OverrideDetector: { task: 'override-detector' },
71
+ TaskClassifier: { task: 'task-classifier' },
72
+ ResumeValidator: { task: 'resume-validator' },
73
+ SessionSummarySentinel: { task: 'session-summary-sentinel' },
74
+ TopicIntentExtractor: { task: 'topic-intent-extractor' },
75
+
76
+ // ── Wave-2 argued exemptions (evidence: tasks-wave2/SKIPPED.md in the bench harness) ──
77
+ IntegrationGate: {
78
+ exempt:
79
+ 'no LLM prompt of its own — delegates to JobReflector.reflect() (attribution JobReflector, tracked wave-3); zero LLM-provider callsites of its own in IntegrationGate.ts',
80
+ },
81
+ CoherenceGate: {
82
+ exempt:
83
+ 'no callsite carries attribution CoherenceGate — all LLM calls flow through CoherenceReviewer.callApi() (incl. the DynamicReviewer subclass), covered by gate-triage',
84
+ },
85
+ AutoApprover: {
86
+ exempt:
87
+ 'mechanical key injection + audit logging, no LLM callsite; the upstream judgment is InputClassifier.classify(), covered by input-classifier',
88
+ },
89
+ InputDetector: {
90
+ exempt:
91
+ 'attribution-manifest alias only (a legacy prompt-pattern matcher); the live InputDetector class in PromptGate.ts calls with attribution PromptGate, covered by prompt-gate-detect',
92
+ },
93
+ PromiseBeacon: {
94
+ exempt:
95
+ 'no live LLM prompt — generateStatusLine/classifyProgress hooks are unwired at the construction site (server.ts); the enqueue path resolves templated strings; revisit if a generator is wired',
96
+ },
77
97
 
78
98
  // ── Wave 3 (reflectors + background/job tasks) ──
79
99
  JobReflector: { pending: 'wave-3' },
@@ -0,0 +1,33 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ First in-repo shipment of docs/LLM-ROUTING-REGISTRY.md at v2: 7 hard routing
9
+ rules and tiered subsidized-non-Claude-first defaults per task nature, every
10
+ choice citing its INSTAR-Bench v2 run stamp; plus the record of the 4 shipped
11
+ prompt fixes (PRs #1325/#1327/#1328) and 2 ratchet-held ones.
12
+ src/data/llmBenchCoverage.ts: the 24 wave-2 pending entries graduate (19
13
+ covered by task batteries, 5 argued exemptions); the ratchet test's pinned
14
+ baselines updated accordingly.
15
+
16
+ ## What to Tell Your User
17
+
18
+ The rulebook deciding which AI model answers each of my internal questions is
19
+ now evidence-based: every default cites a benchmark run instead of a
20
+ judgment call, including hard bans on routes that proved unreliable for
21
+ safety-critical checks. No behavior changes in this update itself — it's the
22
+ map and its enforcement catching up with the proof.
23
+
24
+ ## Summary of New Capabilities
25
+
26
+ None new — routing guidance and benchmark-coverage enforcement are now
27
+ complete and citable.
28
+
29
+ ## Evidence
30
+
31
+ INSTAR-Bench v2: 3,030+ critical-set calls (stamps crit-cli/crit-metered),
32
+ wave-2 full-coverage runs (stamp wave2), 570 forensic verdicts, 6 prompt A/Bs
33
+ with ratchet semantics. Ratchet test 6/6 green with the new baselines.
@@ -0,0 +1,32 @@
1
+ # Side-effects review — LLM Routing Registry (bench-derived v2) + wave-2 coverage flips
2
+
3
+ **Change:** (1) first canonical shipment of docs/LLM-ROUTING-REGISTRY.md,
4
+ updated to v2 with the INSTAR-Bench-derived routing defaults: 7 hard rules
5
+ (each citing its run stamp), tiered subsidized-non-Claude-first chains per
6
+ task nature, and the record of the 4 shipped / 2 held prompt fixes;
7
+ (2) src/data/llmBenchCoverage.ts wave-2 flips — 24 pending entries graduate
8
+ to 19 covered (18 task ids; SlackAdapter shares TelegramAdapter's) + 5 argued
9
+ exemptions; (3) the ratchet test's pinned baselines updated to match (pending
10
+ shrinks to wave-3 only; exemptions grow by the 5 argued ones — the visible,
11
+ reviewed act the ratchet requires).
12
+
13
+ **Principle check (Phase 1):** no decision point touched. The registry doc is
14
+ documentation; llmBenchCoverage.ts is a CI-time data map consumed only by the
15
+ ratchet test; no runtime code path changes.
16
+
17
+ 1. **Over-block** — n/a (no runtime gate).
18
+ 2. **Under-block** — n/a.
19
+ 3. **Level-of-abstraction fit** — right layer: the intentional-defaults doc
20
+ lives beside the code it governs; coverage decisions live in the pinned map.
21
+ 4. **Signal vs authority** — n/a (docs + CI data).
22
+ 5. **Interactions** — the ratchet test is the only consumer; run green (6/6).
23
+ Exemption additions are deliberately pinned-visible per the ratchet design.
24
+ 6. **External surfaces** — none. The doc's run-stamp citations reference the
25
+ benching agent's research tree (not shipped) — documented as such.
26
+ 7. **Multi-machine posture** — machine-local BY DESIGN (repo docs + CI data).
27
+ 8. **Rollback cost** — trivial: revert the commit. No runtime behavior changes.
28
+
29
+ **Evidence:** run stamps crit-cli / crit-metered / wave2 / ab-* in the bench
30
+ research tree; CRITICAL-SET-DIGEST.md; 570 forensic verdicts; 6 A/B verdict
31
+ JSONs. Second-pass: not-required (no gate/lifecycle/messaging decision logic
32
+ touched — documentation + CI-time data only).