tribunal-kit 9.2.6 → 9.2.7

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 (63) hide show
  1. package/.agent/ARCHITECTURE.md +2 -2
  2. package/.agent/history/architecture-intelligence.html +1487 -401
  3. package/.agent/history/architecture-model.json +9365 -5697
  4. package/.agent/history/architecture-verification.json +37 -9
  5. package/.agent/routing_index.json +2069 -3340
  6. package/.agent/rules/GEMINI.md +1 -1
  7. package/.agent/scripts/adaptive_execution.js +511 -0
  8. package/.agent/scripts/architecture_diff.js +303 -260
  9. package/.agent/scripts/architecture_extractor.js +792 -753
  10. package/.agent/scripts/architecture_health.js +293 -256
  11. package/.agent/scripts/architecture_intelligence.js +3100 -0
  12. package/.agent/scripts/architecture_verifier.js +303 -270
  13. package/.agent/scripts/architecture_visualizer.js +880 -873
  14. package/.agent/scripts/blast_radius_engine.js +274 -234
  15. package/.agent/scripts/capability_evolution.js +453 -0
  16. package/.agent/scripts/concept_extractor.js +240 -0
  17. package/.agent/scripts/consideration_engine.js +284 -0
  18. package/.agent/scripts/coverage_engine.js +102 -0
  19. package/.agent/scripts/cross_domain_engine.js +1883 -0
  20. package/.agent/scripts/engineering_memory.js +1313 -0
  21. package/.agent/scripts/integrity_manifest.js +1 -5
  22. package/.agent/scripts/judgment_engine.js +790 -0
  23. package/.agent/scripts/materiality_engine.js +251 -0
  24. package/.agent/scripts/outcome_engine.js +624 -0
  25. package/.agent/scripts/outcome_optimization_engine.js +1632 -0
  26. package/.agent/scripts/simulation_engine.js +1478 -0
  27. package/.agent/scripts/skill_intelligence.js +1371 -0
  28. package/.agent/scripts/validation_engine.js +236 -236
  29. package/.agent/scripts/verification_auditor.js +266 -0
  30. package/.agent/skill-intelligence/taxonomy/engineering-concepts.json +555 -0
  31. package/.agent/skill_topic_map.json +301 -341
  32. package/.agent/skills_inventory.json +4272 -6922
  33. package/.agent/workflows/arch.md +96 -80
  34. package/.agent/workflows/skill-intelligence.md +216 -0
  35. package/CONTRIBUTING.md +2 -2
  36. package/README.md +24 -24
  37. package/bin/adapter-install.js +1 -1
  38. package/package.json +8 -9
  39. package/plugins/core-plugin.json +1 -1
  40. package/plugins/gemini/extension.json +1 -1
  41. package/src/browser/index.js +2 -1
  42. package/src/browser/launcher.js +41 -1
  43. package/src/cli.js +3 -1
  44. package/src/commands/arch.js +261 -172
  45. package/src/commands/context.js +27 -8
  46. package/src/commands/learn.js +21 -6
  47. package/src/commands/memory.js +10 -1
  48. package/src/commands/native.js +12 -3
  49. package/src/commands/skill-intelligence.js +1165 -0
  50. package/src/commands/system1.js +105 -4
  51. package/src/context/ranker.js +337 -339
  52. package/src/evolution/engine.js +296 -295
  53. package/src/synthesis/claim_check_separator.js +294 -271
  54. package/src/system1/browser_intelligence.js +300 -0
  55. package/src/system1/constants.js +49 -0
  56. package/src/system1/decision_engine.js +498 -0
  57. package/src/system1/evidence_engine.js +602 -0
  58. package/src/system1/evolution_pipeline.js +581 -0
  59. package/src/system1/index.d.ts +114 -0
  60. package/src/system1/index.js +102 -0
  61. package/src/system1/reviewer_orchestrator.js +477 -0
  62. package/src/tui/banner.js +1 -1
  63. package/src/utils/fs.js +27 -0
@@ -0,0 +1,1165 @@
1
+ 'use strict';
2
+ const __importDefault =
3
+ (this && this.__importDefault) ||
4
+ function (mod) {
5
+ return mod && mod.__esModule ? mod : { default: mod };
6
+ };
7
+ Object.defineProperty(exports, '__esModule', { value: true });
8
+ exports.cmdSkillIntel = cmdSkillIntel;
9
+ const fs_1 = __importDefault(require('fs'));
10
+ const path_1 = __importDefault(require('path'));
11
+ const logger_1 = require('../utils/logger');
12
+ const helpers_1 = require('../utils/helpers');
13
+
14
+ function cmdSkillIntel(flags, rawArgv, quiet = false) {
15
+ const targetDir = flags.path ? path_1.default.resolve(flags.path) : process.cwd();
16
+ const agentDest = path_1.default.join(targetDir, '.agent');
17
+ const jsonFlag = flags.json || (rawArgv && rawArgv.includes('--json'));
18
+ (0, helpers_1.banner)(quiet || jsonFlag);
19
+
20
+ let scriptPath = path_1.default.join(agentDest, 'scripts', 'skill_intelligence.js');
21
+ if (!fs_1.default.existsSync(scriptPath)) {
22
+ // Check local tribunal-kit scripts
23
+ const fallbackPath = path_1.default.join(
24
+ __dirname,
25
+ '..',
26
+ '..',
27
+ 'scripts',
28
+ 'skill_intelligence.js',
29
+ );
30
+ if (fs_1.default.existsSync(fallbackPath)) {
31
+ scriptPath = fallbackPath;
32
+ } else {
33
+ (0, logger_1.log)(
34
+ ` ${(0, logger_1.c)('red', '✖')} skill_intelligence.js engine not found in ${agentDest} or tribunal-kit scripts`,
35
+ );
36
+ return;
37
+ }
38
+ }
39
+
40
+ try {
41
+ const engine = require(scriptPath);
42
+
43
+ const raw = rawArgv ? rawArgv.slice(2) : [];
44
+ const isGate = flags.gate || raw.includes('--gate') || raw.includes('-g');
45
+ let needArg = flags.need;
46
+ const needIdx = raw.indexOf('--need');
47
+ if (needIdx !== -1 && raw[needIdx + 1] && !raw[needIdx + 1].startsWith('-')) {
48
+ needArg = raw[needIdx + 1];
49
+ }
50
+ const auditFlag = flags.audit || raw.includes('--audit');
51
+ const jsonFlag = flags.json || raw.includes('--json');
52
+
53
+ // Extract positional query
54
+ const positional = raw
55
+ .slice(1)
56
+ .filter((a, idx) => {
57
+ if (a.startsWith('-')) return false;
58
+ const prev = raw.slice(1)[idx - 1];
59
+ if (prev && ['--need', '--path', '--target', '--evidence'].includes(prev)) return false;
60
+ return true;
61
+ })
62
+ .join(' ');
63
+
64
+ const query = flags.query || flags.task || (isGate ? null : positional) || null;
65
+ const gateNeed = needArg || (isGate ? positional : null);
66
+
67
+ if (auditFlag) {
68
+ engine.runAudit
69
+ ? engine.runAudit(agentDest)
70
+ : (0, logger_1.log)('Audit not directly exposed.');
71
+ return;
72
+ }
73
+
74
+ const isContract = flags.contract || raw.includes('--contract');
75
+ const evidenceArg =
76
+ flags.evidence ||
77
+ (raw.indexOf('--evidence') !== -1 ? raw[raw.indexOf('--evidence') + 1] : null);
78
+
79
+ if (isContract && query) {
80
+ if (engine.analyzeTask) {
81
+ const analysis = engine.analyzeTask(query, agentDest);
82
+ if (jsonFlag) {
83
+ console.log(JSON.stringify(analysis.outcome_contract, null, 2));
84
+ return;
85
+ }
86
+ (0, logger_1.log)(` ${(0, logger_1.bold)('OUTCOME CONTRACT')}`);
87
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
88
+ (0, logger_1.log)(
89
+ ` Objective: ${(0, logger_1.bold)(analysis.outcome_contract.objective)}`,
90
+ );
91
+ console.log();
92
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Material Considerations:')}`);
93
+ for (const mc of analysis.outcome_contract.material_considerations || []) {
94
+ (0, logger_1.log)(
95
+ ` • ${(0, logger_1.bold)(mc.title)} (${mc.category}) — ${(0, logger_1.c)('gray', mc.rationale)}`,
96
+ );
97
+ }
98
+ console.log();
99
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Success Conditions:')}`);
100
+ for (const sc of analysis.outcome_contract.success_conditions || []) {
101
+ (0, logger_1.log)(` ✔ ${sc}`);
102
+ }
103
+ console.log();
104
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Non-Goals (Anti-Overengineering Bounds):')}`);
105
+ for (const ng of analysis.outcome_contract.non_goals || []) {
106
+ (0, logger_1.log)(` ✗ ${(0, logger_1.c)('gray', ng)}`);
107
+ }
108
+ console.log();
109
+ return;
110
+ }
111
+ }
112
+
113
+ const isJudgment = flags.judgment || raw.includes('--judgment');
114
+ if (isJudgment && query && engine.analyzeTask) {
115
+ const analysis = engine.analyzeTask(query, agentDest);
116
+ if (jsonFlag) {
117
+ console.log(
118
+ JSON.stringify(
119
+ {
120
+ judgment: analysis.judgment,
121
+ conflicts: analysis.conflicts,
122
+ reversibility: analysis.reversibility,
123
+ counterfactuals: analysis.counterfactuals,
124
+ anti_slop: analysis.anti_slop,
125
+ institutional_lessons: analysis.institutional_lessons,
126
+ },
127
+ null,
128
+ 2,
129
+ ),
130
+ );
131
+ return;
132
+ }
133
+
134
+ (0, logger_1.log)(` ${(0, logger_1.bold)('ENGINEERING JUDGMENT & ADAPTIVE MODEL')}`);
135
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
136
+ (0, logger_1.log)(
137
+ ` Judgment State: ${(0, logger_1.bold)(analysis.judgment ? analysis.judgment.state : 'PROCEED')}`,
138
+ );
139
+ (0, logger_1.log)(
140
+ ` Reversibility: ${(0, logger_1.c)('yellow', analysis.reversibility.classification)} — ${(0, logger_1.c)('gray', analysis.reversibility.warning)}`,
141
+ );
142
+ console.log();
143
+
144
+ if (analysis.conflicts && analysis.conflicts.length > 0) {
145
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Requirement Conflicts Detected:')}`);
146
+ for (const cf of analysis.conflicts) {
147
+ (0, logger_1.log)(` ⚠ ${(0, logger_1.bold)(cf.conflict)}`);
148
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', cf.explanation)}`);
149
+ (0, logger_1.log)(
150
+ ` Action Required: ${(0, logger_1.c)('yellow', cf.action_required)}`,
151
+ );
152
+ }
153
+ console.log();
154
+ }
155
+
156
+ if (analysis.counterfactuals && analysis.counterfactuals.length > 0) {
157
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Counterfactual Stress Analysis:')}`);
158
+ for (const ct of analysis.counterfactuals) {
159
+ (0, logger_1.log)(
160
+ ` • ${(0, logger_1.bold)(ct.scenario)}: ${(0, logger_1.c)('gray', ct.question)}`,
161
+ );
162
+ (0, logger_1.log)(` Mitigation: ${(0, logger_1.c)('cyan', ct.mitigation_required)}`);
163
+ }
164
+ console.log();
165
+ }
166
+
167
+ if (analysis.institutional_lessons && analysis.institutional_lessons.length > 0) {
168
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Relevant Institutional Memory:')}`);
169
+ for (const il of analysis.institutional_lessons) {
170
+ (0, logger_1.log)(
171
+ ` ★ ${(0, logger_1.bold)(il.pattern)}: ${(0, logger_1.c)('gray', il.lesson)}`,
172
+ );
173
+ }
174
+ console.log();
175
+ }
176
+ return;
177
+ }
178
+
179
+ const isAntiSlop = flags['anti-slop'] || flags.antislop || raw.includes('--anti-slop');
180
+ if (isAntiSlop && query && engine.analyzeTask) {
181
+ const analysis = engine.analyzeTask(query, agentDest);
182
+ const smells = analysis.anti_slop || {};
183
+ if (jsonFlag) {
184
+ console.log(JSON.stringify(smells, null, 2));
185
+ return;
186
+ }
187
+ (0, logger_1.log)(` ${(0, logger_1.bold)('ARCHITECTURAL ANTI-SLOP AUDIT')}`);
188
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
189
+ (0, logger_1.log)(` Assessment: ${(0, logger_1.bold)(smells.recommendation)}`);
190
+ if (smells.overengineering && smells.overengineering.length > 0) {
191
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Overengineering Smells Detected:')}`);
192
+ for (const o of smells.overengineering) {
193
+ (0, logger_1.log)(
194
+ ` ✖ ${(0, logger_1.c)('red', o.smell)}: ${(0, logger_1.c)('gray', o.reason)}`,
195
+ );
196
+ }
197
+ }
198
+ if (smells.underengineering && smells.underengineering.length > 0) {
199
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Underengineering Smells Detected:')}`);
200
+ for (const u of smells.underengineering) {
201
+ (0, logger_1.log)(
202
+ ` ⚠ ${(0, logger_1.c)('yellow', u.smell)} (${u.severity}): ${(0, logger_1.c)('gray', u.reason)}`,
203
+ );
204
+ }
205
+ }
206
+ console.log();
207
+ return;
208
+ }
209
+
210
+ const isMemory = flags.memory || raw.includes('--memory');
211
+ if (isMemory && query && engine.analyzeTask) {
212
+ const analysis = engine.analyzeTask(query, agentDest);
213
+ const mems = analysis.memories || {};
214
+ if (jsonFlag) {
215
+ console.log(JSON.stringify({ memories: mems, metrics: analysis.metrics }, null, 2));
216
+ return;
217
+ }
218
+ (0, logger_1.log)(` ${(0, logger_1.bold)('TRIBUNAL ENGINEERING MEMORY INTELLIGENCE')}`);
219
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
220
+ (0, logger_1.log)(
221
+ ` Retrieved Memory Hypotheses: ${(0, logger_1.bold)(String((mems.retrieved || []).length))}`,
222
+ );
223
+ console.log();
224
+
225
+ if (mems.patterns && mems.patterns.length > 0) {
226
+ (0, logger_1.log)(
227
+ ` ${(0, logger_1.bold)((0, logger_1.c)('green', 'VERIFIED PATTERN HYPOTHESES:'))}`,
228
+ );
229
+ for (const p of mems.patterns) {
230
+ (0, logger_1.log)(
231
+ ` • ${(0, logger_1.bold)(p.title)} ${(0, logger_1.c)('gray', `[Score: ${p.retrieval_score} | Trust: ${p.status}]`)}`,
232
+ );
233
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', p.content)}`);
234
+ }
235
+ console.log();
236
+ }
237
+
238
+ if (mems.failures_to_avoid && mems.failures_to_avoid.length > 0) {
239
+ (0, logger_1.log)(
240
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', 'HISTORICAL FAILURES TO AVOID (NEGATIVE KNOWLEDGE):'))}`,
241
+ );
242
+ for (const f of mems.failures_to_avoid) {
243
+ (0, logger_1.log)(
244
+ ` ✖ ${(0, logger_1.bold)(f.title)} ${(0, logger_1.c)('gray', `[Trust: ${f.status}]`)}`,
245
+ );
246
+ if (f.failure?.cause)
247
+ (0, logger_1.log)(` Cause: ${(0, logger_1.c)('yellow', f.failure.cause)}`);
248
+ if (f.failure?.fix)
249
+ (0, logger_1.log)(` Fix: ${(0, logger_1.c)('green', f.failure.fix)}`);
250
+ }
251
+ console.log();
252
+ }
253
+
254
+ if (mems.verification_strategies && mems.verification_strategies.length > 0) {
255
+ (0, logger_1.log)(
256
+ ` ${(0, logger_1.bold)((0, logger_1.c)('cyan', 'REUSABLE VERIFICATION STRATEGIES:'))}`,
257
+ );
258
+ for (const v of mems.verification_strategies) {
259
+ (0, logger_1.log)(` ✔ ${(0, logger_1.bold)(v.title)}`);
260
+ (0, logger_1.log)(
261
+ ` ${(0, logger_1.c)('gray', v.verification?.strategy || v.content)}`,
262
+ );
263
+ }
264
+ console.log();
265
+ }
266
+
267
+ if (analysis.metrics) {
268
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Phase 5 Governance Telemetry:')}`);
269
+ (0, logger_1.log)(
270
+ ` Retrieval Precision: ${(0, logger_1.bold)(String(analysis.metrics.memory_retrieval_precision))}`,
271
+ );
272
+ (0, logger_1.log)(
273
+ ` Useful Memory Rate: ${(0, logger_1.bold)(String(analysis.metrics.useful_memory_rate))}`,
274
+ );
275
+ (0, logger_1.log)(
276
+ ` Failures Prevented: ${(0, logger_1.bold)(String(analysis.metrics.repeated_failure_prevention))}`,
277
+ );
278
+ console.log();
279
+ }
280
+ return;
281
+ }
282
+
283
+ const isFailures = flags.failures || raw.includes('--failures');
284
+ if (isFailures) {
285
+ const store = engine.getEngineeringMemoryStore ? engine.getEngineeringMemoryStore() : null;
286
+ const fails = store
287
+ ? store.getAll().filter(m => m.type === 'failure' || m.type === 'anti_pattern')
288
+ : [];
289
+ if (jsonFlag) {
290
+ console.log(JSON.stringify(fails, null, 2));
291
+ return;
292
+ }
293
+ (0, logger_1.log)(` ${(0, logger_1.bold)('HISTORICAL FAILURE & NEGATIVE KNOWLEDGE VAULT')}`);
294
+ (0, logger_1.log)(
295
+ ` Total Registered Failure Modes: ${(0, logger_1.bold)(String(fails.length))}`,
296
+ );
297
+ console.log();
298
+ for (const f of fails) {
299
+ (0, logger_1.log)(
300
+ ` • ${(0, logger_1.bold)(f.title)} ${(0, logger_1.c)('gray', `[${f.status}]`)}`,
301
+ );
302
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', f.content)}`);
303
+ if (f.failure?.fix)
304
+ (0, logger_1.log)(` Fix: ${(0, logger_1.c)('green', f.failure.fix)}`);
305
+ }
306
+ console.log();
307
+ return;
308
+ }
309
+
310
+ const isProposals = flags.proposals || raw.includes('--proposals');
311
+ if (isProposals) {
312
+ const mgr = engine.getSkillImprovementManager ? engine.getSkillImprovementManager() : null;
313
+ const props = mgr ? mgr.getProposals() : [];
314
+ if (jsonFlag) {
315
+ console.log(JSON.stringify(props, null, 2));
316
+ return;
317
+ }
318
+ (0, logger_1.log)(` ${(0, logger_1.bold)('CONTINUOUS CAPABILITY IMPROVEMENT PROPOSALS')}`);
319
+ (0, logger_1.log)(` Pending Proposals: ${(0, logger_1.bold)(String(props.length))}`);
320
+ console.log();
321
+ for (const p of props) {
322
+ (0, logger_1.log)(
323
+ ` • [${(0, logger_1.c)('yellow', p.status)}] ${(0, logger_1.bold)(p.target_skill)}: ${p.observed_weakness}`,
324
+ );
325
+ (0, logger_1.log)(` Proposed: ${(0, logger_1.c)('cyan', p.proposed_enhancement)}`);
326
+ (0, logger_1.log)(` Governance: ${(0, logger_1.c)('gray', p.governance_gate.warning)}`);
327
+ }
328
+ console.log();
329
+ return;
330
+ }
331
+
332
+ const isTelemetry = flags.telemetry || raw.includes('--telemetry');
333
+ if (isTelemetry) {
334
+ const reg = engine.getSkillTelemetryRegistry ? engine.getSkillTelemetryRegistry() : null;
335
+ const tele = reg ? reg.getAllTelemetry() : [];
336
+ if (jsonFlag) {
337
+ console.log(JSON.stringify(tele, null, 2));
338
+ return;
339
+ }
340
+ (0, logger_1.log)(` ${(0, logger_1.bold)('SKILL INTELLIGENCE TELEMETRY')}`);
341
+ console.log();
342
+ for (const t of tele) {
343
+ (0, logger_1.log)(
344
+ ` • ${(0, logger_1.bold)(t.skill.padEnd(25))} Activations: ${(0, logger_1.bold)(String(t.activations))} | Material: ${(0, logger_1.c)('green', String(t.material))} | False: ${(0, logger_1.c)('red', String(t.false_activations))} | Precision: ${t.precision_ratio * 100}%`,
345
+ );
346
+ }
347
+ console.log();
348
+ return;
349
+ }
350
+
351
+ const isPreMortem =
352
+ flags['pre-mortem'] ||
353
+ flags.premortem ||
354
+ raw.includes('--pre-mortem') ||
355
+ raw.includes('--premortem') ||
356
+ (rawArgv && (rawArgv[2] === 'pre-mortem' || rawArgv[2] === 'premortem'));
357
+ const isSimulate =
358
+ flags.simulate || raw.includes('--simulate') || (rawArgv && rawArgv[2] === 'simulate');
359
+ const isChains = flags.chains || raw.includes('--chains');
360
+ const isClaims = flags.claims || raw.includes('--claims');
361
+
362
+ if ((isPreMortem || isSimulate) && query && engine.analyzeTask) {
363
+ const analysis = engine.analyzeTask(query, agentDest);
364
+ if (jsonFlag) {
365
+ console.log(JSON.stringify(analysis.pre_mortem, null, 2));
366
+ return;
367
+ }
368
+ (0, logger_1.log)(` ${(0, logger_1.bold)('SYSTEM PRE-MORTEM & FAILURE SIMULATION')}`);
369
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
370
+ (0, logger_1.log)(
371
+ ` Simulation Level: ${(0, logger_1.c)('yellow', analysis.simulation_plan.selected_level.name)}`,
372
+ );
373
+ console.log();
374
+
375
+ (0, logger_1.log)(
376
+ ` ${(0, logger_1.bold)(`Failure Hypotheses & Predictions (${analysis.predictions.length}):`)}`,
377
+ );
378
+ for (const p of analysis.predictions) {
379
+ const impCol = p.impact === 'CRITICAL' ? 'red' : p.impact === 'HIGH' ? 'yellow' : 'cyan';
380
+ (0, logger_1.log)(
381
+ ` • [${(0, logger_1.c)(impCol, p.impact)}] ${(0, logger_1.bold)(p.prediction)} ${(0, logger_1.c)('gray', `(${p.category})`)}`,
382
+ );
383
+ (0, logger_1.log)(` Reason: ${(0, logger_1.c)('gray', p.reason)}`);
384
+ (0, logger_1.log)(` Verification: ${(0, logger_1.c)('cyan', p.verification_method)}`);
385
+ }
386
+ console.log();
387
+
388
+ if (analysis.failure_chains && analysis.failure_chains.length > 0) {
389
+ (0, logger_1.log)(
390
+ ` ${(0, logger_1.bold)(`Causal Failure Chains (${analysis.failure_chains.length}):`)}`,
391
+ );
392
+ for (const fc of analysis.failure_chains) {
393
+ (0, logger_1.log)(
394
+ ` ⚡ ${(0, logger_1.bold)(fc.name || fc.id)} ${(0, logger_1.c)('gray', `[Blast: ${fc.blast_radius} | ${fc.severity}]`)}`,
395
+ );
396
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', fc.chain)}`);
397
+ }
398
+ console.log();
399
+ }
400
+
401
+ if (analysis.unsupported_claims && analysis.unsupported_claims.length > 0) {
402
+ (0, logger_1.log)(
403
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', `Unsupported Claims Detected (${analysis.unsupported_claims.length}):`))}`,
404
+ );
405
+ for (const uc of analysis.unsupported_claims) {
406
+ (0, logger_1.log)(
407
+ ` ⚠ ${(0, logger_1.c)('red', `"${uc.claim}"`)} — ${(0, logger_1.c)('gray', uc.reason)}`,
408
+ );
409
+ }
410
+ console.log();
411
+ }
412
+ return;
413
+ }
414
+
415
+ const isCrossDomain =
416
+ flags['cross-domain'] ||
417
+ flags.crossdomain ||
418
+ raw.includes('--cross-domain') ||
419
+ raw.includes('--crossdomain') ||
420
+ raw.includes('--interactions');
421
+ if (isCrossDomain && query && engine.analyzeTask) {
422
+ const analysis = engine.analyzeTask(query, agentDest);
423
+ const cd = analysis.cross_domain_analysis;
424
+ if (jsonFlag) {
425
+ console.log(JSON.stringify(cd, null, 2));
426
+ return;
427
+ }
428
+ (0, logger_1.log)(` ${(0, logger_1.bold)('━━━ CROSS-DOMAIN ENGINEERING ANALYSIS ━━━')}`);
429
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
430
+ console.log();
431
+
432
+ if (!cd) {
433
+ (0, logger_1.log)(
434
+ ` ${(0, logger_1.c)('green', '✓ Task does not require cross-domain analysis.')}`,
435
+ );
436
+ console.log();
437
+ return;
438
+ }
439
+
440
+ // Domains
441
+ const allDomains = new Set();
442
+ for (const i of cd.interactions?.all || []) {
443
+ (i.domains || []).forEach(d => allDomains.add(d));
444
+ }
445
+ if (allDomains.size > 0) {
446
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Primary Domains:')}`);
447
+ for (const d of allDomains) {
448
+ (0, logger_1.log)(` • ${d}`);
449
+ }
450
+ console.log();
451
+ }
452
+
453
+ // Critical Interactions
454
+ const criticals = (cd.interactions?.all || []).filter(i => i.priority === 'CRITICAL');
455
+ if (criticals.length > 0) {
456
+ (0, logger_1.log)(
457
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', `Critical Interactions (${criticals.length}):`))}`,
458
+ );
459
+ for (const ci of criticals) {
460
+ (0, logger_1.log)(
461
+ ` ${(0, logger_1.c)('red', '⚠')} ${(0, logger_1.bold)(`${ci.a} ↔ ${ci.b}`)} [${ci.relationship}]`,
462
+ );
463
+ (0, logger_1.log)(` Risk: ${(0, logger_1.c)('gray', ci.effect)}`);
464
+ (0, logger_1.log)(` Why: ${(0, logger_1.c)('gray', ci.reason)}`);
465
+ }
466
+ console.log();
467
+ }
468
+
469
+ // Non-critical interactions
470
+ const nonCriticals = (cd.interactions?.all || []).filter(i => i.priority !== 'CRITICAL');
471
+ if (nonCriticals.length > 0) {
472
+ (0, logger_1.log)(
473
+ ` ${(0, logger_1.bold)(`Other Interactions (${nonCriticals.length}):`)}`,
474
+ );
475
+ for (const i of nonCriticals) {
476
+ const col = i.priority === 'HIGH' ? 'yellow' : 'cyan';
477
+ const matchStr = i.match_type === 'INFERRED' ? ' (inferred)' : '';
478
+ (0, logger_1.log)(
479
+ ` • ${(0, logger_1.bold)(`${i.a} ↔ ${i.b}`)} [${(0, logger_1.c)(col, i.priority)}]${matchStr}`,
480
+ );
481
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', i.effect)}`);
482
+ }
483
+ console.log();
484
+ }
485
+
486
+ // Second-Order Effects
487
+ if (cd.second_order_effects && cd.second_order_effects.length > 0) {
488
+ (0, logger_1.log)(
489
+ ` ${(0, logger_1.bold)(`Second-Order Effect Chains (${cd.second_order_effects.length}):`)}`,
490
+ );
491
+ for (const soe of cd.second_order_effects) {
492
+ (0, logger_1.log)(
493
+ ` ⚡ ${(0, logger_1.bold)(soe.name)} [${(0, logger_1.c)(soe.severity === 'CRITICAL' ? 'red' : 'yellow', soe.severity)}]`,
494
+ );
495
+ (0, logger_1.log)(` ${soe.chain.map(s => s.step).join(' → ')}`);
496
+ if (soe.mitigation)
497
+ (0, logger_1.log)(` Mitigation: ${(0, logger_1.c)('green', soe.mitigation)}`);
498
+ }
499
+ console.log();
500
+ }
501
+
502
+ // Emergent Failures
503
+ if (cd.emergent_failures && cd.emergent_failures.length > 0) {
504
+ (0, logger_1.log)(
505
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', `Emergent Failure Patterns (${cd.emergent_failures.length}):`))}`,
506
+ );
507
+ for (const ef of cd.emergent_failures) {
508
+ (0, logger_1.log)(
509
+ ` ✖ ${(0, logger_1.bold)(ef.pattern)} [${(0, logger_1.c)(ef.severity === 'CRITICAL' ? 'red' : 'yellow', ef.severity)}]`,
510
+ );
511
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', ef.description)}`);
512
+ (0, logger_1.log)(` Components: ${ef.components_present.join(' + ')}`);
513
+ }
514
+ console.log();
515
+ }
516
+
517
+ // Security Boundaries
518
+ if (cd.security_boundaries && cd.security_boundaries.total > 0) {
519
+ (0, logger_1.log)(
520
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', `Security Boundary Concerns (${cd.security_boundaries.total}):`))}`,
521
+ );
522
+ for (const sb of cd.security_boundaries.concerns) {
523
+ (0, logger_1.log)(` 🔒 ${(0, logger_1.bold)(sb.boundary)} [${sb.priority}]`);
524
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', sb.question)}`);
525
+ }
526
+ console.log();
527
+ }
528
+
529
+ // Resource Contention
530
+ if (cd.resource_contention && cd.resource_contention.length > 0) {
531
+ (0, logger_1.log)(
532
+ ` ${(0, logger_1.bold)(`Resource Contention Risks (${cd.resource_contention.length}):`)}`,
533
+ );
534
+ for (const rc of cd.resource_contention) {
535
+ (0, logger_1.log)(
536
+ ` ⚙ ${(0, logger_1.bold)(rc.resource)}: ${(0, logger_1.c)('gray', rc.risk)}`,
537
+ );
538
+ (0, logger_1.log)(` Mitigation: ${(0, logger_1.c)('green', rc.mitigation)}`);
539
+ }
540
+ console.log();
541
+ }
542
+
543
+ // Blind Spots
544
+ if (cd.blind_spots && cd.blind_spots.length > 0) {
545
+ (0, logger_1.log)(
546
+ ` ${(0, logger_1.bold)((0, logger_1.c)('yellow', `Blind Spots Detected (${cd.blind_spots.length}):`))}`,
547
+ );
548
+ for (const bs of cd.blind_spots) {
549
+ (0, logger_1.log)(
550
+ ` ⚠ ${(0, logger_1.bold)(bs.domain)}: ${(0, logger_1.c)('gray', bs.reason)}`,
551
+ );
552
+ }
553
+ console.log();
554
+ }
555
+
556
+ // Summary
557
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Summary:')}`);
558
+ (0, logger_1.log)(
559
+ ` Total Interactions: ${(0, logger_1.bold)(String(cd.summary.total_interactions))}`,
560
+ );
561
+ (0, logger_1.log)(
562
+ ` Critical Interactions: ${(0, logger_1.c)('red', String(cd.summary.critical_interactions))}`,
563
+ );
564
+ (0, logger_1.log)(
565
+ ` 2nd-Order Chains: ${(0, logger_1.bold)(String(cd.summary.second_order_chains))}`,
566
+ );
567
+ (0, logger_1.log)(
568
+ ` Failure Propagation: ${(0, logger_1.bold)(String(cd.summary.failure_propagation_paths))}`,
569
+ );
570
+ (0, logger_1.log)(
571
+ ` Emergent Failures: ${(0, logger_1.c)('red', String(cd.summary.emergent_failures))}`,
572
+ );
573
+ (0, logger_1.log)(
574
+ ` Validation Tests Gen: ${(0, logger_1.bold)(String(cd.summary.validation_tests_generated))}`,
575
+ );
576
+ console.log();
577
+ return;
578
+ }
579
+
580
+ const isOutcome =
581
+ flags.outcome ||
582
+ flags.decisions ||
583
+ flags.complexity ||
584
+ flags.assumptions ||
585
+ raw.includes('--outcome') ||
586
+ raw.includes('--decisions') ||
587
+ raw.includes('--complexity') ||
588
+ raw.includes('--assumptions');
589
+ if (isOutcome && query && engine.analyzeTask) {
590
+ const analysis = engine.analyzeTask(query, agentDest);
591
+ const opt = analysis.outcome_optimization;
592
+ if (jsonFlag) {
593
+ console.log(JSON.stringify(opt, null, 2));
594
+ return;
595
+ }
596
+ (0, logger_1.log)(
597
+ ` ${(0, logger_1.bold)('━━━ ENGINEERING OUTCOME OPTIMIZATION (PHASE 10) ━━━')}`,
598
+ );
599
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
600
+ (0, logger_1.log)(
601
+ ` Complexity Budget: ${(0, logger_1.bold)(opt.complexity_budget)} ${(0, logger_1.c)('gray', `(${opt.budget_justification})`)}`,
602
+ );
603
+ console.log();
604
+
605
+ // Requirements
606
+ if (opt.requirements && opt.requirements.length > 0) {
607
+ (0, logger_1.log)(
608
+ ` ${(0, logger_1.bold)(`Discovered Requirements (${opt.requirements.length}):`)}`,
609
+ );
610
+ for (const req of opt.requirements) {
611
+ const color =
612
+ req.priority === 'MANDATORY' ? 'red' : req.priority === 'IMPORTANT' ? 'yellow' : 'gray';
613
+ (0, logger_1.log)(
614
+ ` • [${(0, logger_1.c)(color, req.priority)}] ${(0, logger_1.bold)(req.id)}: ${req.description}`,
615
+ );
616
+ (0, logger_1.log)(` Why: ${(0, logger_1.c)('gray', req.rationale)}`);
617
+ }
618
+ console.log();
619
+ }
620
+
621
+ // Architecture Audit: Justified vs Unjustified
622
+ const audit = opt.architecture_audit;
623
+ if (audit) {
624
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Architecture Justification Audit:')}`);
625
+ (0, logger_1.log)(` Status: ${(0, logger_1.bold)(audit.architecture_balance)}`);
626
+
627
+ if (audit.justified_components && audit.justified_components.length > 0) {
628
+ (0, logger_1.log)(` ${(0, logger_1.c)('green', 'Justified Components:')}`);
629
+ for (const jc of audit.justified_components) {
630
+ (0, logger_1.log)(
631
+ ` ✔ ${(0, logger_1.bold)(jc.component)}: ${(0, logger_1.c)('gray', jc.justification)}`,
632
+ );
633
+ }
634
+ }
635
+
636
+ if (audit.unjustified_components && audit.unjustified_components.length > 0) {
637
+ (0, logger_1.log)(
638
+ ` ${(0, logger_1.c)('yellow', 'Anti-Slop Guard (Unjustified Rejected):')}`,
639
+ );
640
+ for (const uc of audit.unjustified_components) {
641
+ (0, logger_1.log)(
642
+ ` ✗ ${(0, logger_1.bold)(uc.component)}: ${(0, logger_1.c)('gray', uc.reason)}`,
643
+ );
644
+ }
645
+ }
646
+
647
+ if (
648
+ audit.missing_critical_considerations &&
649
+ audit.missing_critical_considerations.length > 0
650
+ ) {
651
+ (0, logger_1.log)(
652
+ ` ${(0, logger_1.c)('red', 'Under-Engineering Alerts (Missing Considerations):')}`,
653
+ );
654
+ for (const mc of audit.missing_critical_considerations) {
655
+ (0, logger_1.log)(
656
+ ` ⚠ ${(0, logger_1.bold)(mc.consideration)} [${mc.severity}]: ${(0, logger_1.c)('gray', mc.risk)}`,
657
+ );
658
+ }
659
+ }
660
+ console.log();
661
+ }
662
+
663
+ // Decision Records
664
+ if (opt.decision_records && opt.decision_records.length > 0) {
665
+ (0, logger_1.log)(
666
+ ` ${(0, logger_1.bold)(`Engineering Decision Records (${opt.decision_records.length}):`)}`,
667
+ );
668
+ for (const edr of opt.decision_records) {
669
+ (0, logger_1.log)(
670
+ ` ⚡ ${(0, logger_1.bold)(edr.id)}: ${(0, logger_1.bold)(edr.title)}`,
671
+ );
672
+ (0, logger_1.log)(` Decision: ${(0, logger_1.c)('green', edr.decision)}`);
673
+ (0, logger_1.log)(` Reason: ${(0, logger_1.c)('gray', edr.reason)}`);
674
+ if (edr.alternatives && edr.alternatives.length > 0) {
675
+ (0, logger_1.log)(
676
+ ` Rejected: ${edr.alternatives.map(a => `${a.name} (${a.rejected_reason})`).join('; ')}`,
677
+ );
678
+ }
679
+ }
680
+ console.log();
681
+ }
682
+
683
+ // Assumptions & Unknowns
684
+ if (opt.unknowns && opt.unknowns.length > 0) {
685
+ (0, logger_1.log)(
686
+ ` ${(0, logger_1.bold)((0, logger_1.c)('yellow', `Critical Unknowns (${opt.unknowns.length}):`))}`,
687
+ );
688
+ for (const unk of opt.unknowns) {
689
+ (0, logger_1.log)(` ? ${(0, logger_1.bold)(unk.unknown)}`);
690
+ (0, logger_1.log)(` Impact: ${(0, logger_1.c)('gray', unk.impact)}`);
691
+ (0, logger_1.log)(` Default: ${(0, logger_1.c)('cyan', unk.default_posture)}`);
692
+ }
693
+ console.log();
694
+ }
695
+
696
+ // Early Validations
697
+ if (opt.early_validations && opt.early_validations.length > 0) {
698
+ (0, logger_1.log)(
699
+ ` ${(0, logger_1.bold)(`Early Validation Probes (${opt.early_validations.length}):`)}`,
700
+ );
701
+ for (const ev of opt.early_validations) {
702
+ (0, logger_1.log)(` 🔍 ${(0, logger_1.bold)(ev.step)}: ${ev.test}`);
703
+ (0, logger_1.log)(` Expected: ${(0, logger_1.c)('green', ev.expected)}`);
704
+ }
705
+ console.log();
706
+ }
707
+
708
+ // Summary Metrics
709
+ const m = opt.phase10_metrics || {};
710
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Phase 10 Outcome Optimization Telemetry:')}`);
711
+ (0, logger_1.log)(
712
+ ` Requirements Discovered: ${(0, logger_1.bold)(String(m.requirements_discovered || 0))}`,
713
+ );
714
+ (0, logger_1.log)(
715
+ ` Mandatory Requirements: ${(0, logger_1.bold)(String(m.mandatory_requirements || 0))}`,
716
+ );
717
+ (0, logger_1.log)(
718
+ ` Decisions Recorded: ${(0, logger_1.bold)(String(m.decisions_recorded || 0))}`,
719
+ );
720
+ (0, logger_1.log)(
721
+ ` Options Evaluated: ${(0, logger_1.bold)(String(m.options_evaluated || 0))}`,
722
+ );
723
+ (0, logger_1.log)(
724
+ ` Over-Engineering Prevented: ${(0, logger_1.c)('green', String(m.overengineering_prevented || 0))}`,
725
+ );
726
+ (0, logger_1.log)(
727
+ ` Under-Engineering Prevented: ${(0, logger_1.c)('cyan', String(m.underengineering_prevented || 0))}`,
728
+ );
729
+ (0, logger_1.log)(
730
+ ` Early Validations Generated: ${(0, logger_1.bold)(String(m.early_validations_generated || 0))}`,
731
+ );
732
+ console.log();
733
+ return;
734
+ }
735
+
736
+ if (isChains && query && engine.analyzeTask) {
737
+ const analysis = engine.analyzeTask(query, agentDest);
738
+ if (jsonFlag) {
739
+ console.log(JSON.stringify(analysis.failure_chains, null, 2));
740
+ return;
741
+ }
742
+ (0, logger_1.log)(` ${(0, logger_1.bold)('CAUSAL FAILURE CHAINS')}`);
743
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
744
+ console.log();
745
+ for (const fc of analysis.failure_chains || []) {
746
+ (0, logger_1.log)(
747
+ ` ⚡ ${(0, logger_1.bold)(fc.name || fc.id)} ${(0, logger_1.c)('gray', `[Blast: ${fc.blast_radius} | ${fc.severity}]`)}`,
748
+ );
749
+ (0, logger_1.log)(` ${(0, logger_1.c)('gray', fc.chain)}`);
750
+ }
751
+ console.log();
752
+ return;
753
+ }
754
+
755
+ if (isClaims && query && engine.analyzeTask) {
756
+ const analysis = engine.analyzeTask(query, agentDest);
757
+ if (jsonFlag) {
758
+ console.log(JSON.stringify(analysis.unsupported_claims, null, 2));
759
+ return;
760
+ }
761
+ (0, logger_1.log)(` ${(0, logger_1.bold)('UNSUPPORTED CLAIMS AUDIT')}`);
762
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
763
+ console.log();
764
+ if (!analysis.unsupported_claims || analysis.unsupported_claims.length === 0) {
765
+ (0, logger_1.log)(
766
+ ` ${(0, logger_1.c)('green', '✓ No unsupported architectural claims detected.')}`,
767
+ );
768
+ } else {
769
+ for (const uc of analysis.unsupported_claims) {
770
+ (0, logger_1.log)(
771
+ ` ⚠ ${(0, logger_1.c)('red', `"${uc.claim}"`)} — ${(0, logger_1.c)('gray', uc.reason)}`,
772
+ );
773
+ (0, logger_1.log)(` Action: ${(0, logger_1.c)('yellow', uc.action_required)}`);
774
+ }
775
+ }
776
+ console.log();
777
+ return;
778
+ }
779
+
780
+ if (evidenceArg && engine.auditPostExecution) {
781
+ let evidenceData = {};
782
+ try {
783
+ if (fs_1.default.existsSync(evidenceArg)) {
784
+ evidenceData = JSON.parse(fs_1.default.readFileSync(evidenceArg, 'utf8'));
785
+ } else {
786
+ evidenceData = JSON.parse(evidenceArg);
787
+ }
788
+ } catch (_) {}
789
+
790
+ const analysis = engine.analyzeTask
791
+ ? engine.analyzeTask(query || 'default task', agentDest)
792
+ : null;
793
+ const outcomeAudit =
794
+ analysis && engine.auditOutcome
795
+ ? engine.auditOutcome(analysis.outcome_contract, evidenceData, { agentDir: agentDest })
796
+ : null;
797
+ const auditRes = engine.auditPostExecution(
798
+ analysis || query || 'default task',
799
+ evidenceData,
800
+ { agentDir: agentDest },
801
+ );
802
+
803
+ if (jsonFlag) {
804
+ console.log(JSON.stringify({ ...auditRes, outcome_audit: outcomeAudit }, null, 2));
805
+ return;
806
+ }
807
+
808
+ (0, logger_1.log)(` ${(0, logger_1.bold)('POST-EXECUTION OUTCOME & VERIFICATION AUDIT')}`);
809
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query || 'Default Task')}`);
810
+ if (outcomeAudit) {
811
+ (0, logger_1.log)(
812
+ ` Outcome Status: ${outcomeAudit.is_outcome_complete ? (0, logger_1.c)('green', 'OUTCOME COMPLETE (100% Satisfied)') : (0, logger_1.c)('red', outcomeAudit.status)}`,
813
+ );
814
+ (0, logger_1.log)(
815
+ ` Task vs Outcome: Task Completed: ${(0, logger_1.bold)(outcomeAudit.is_task_complete ? 'YES' : 'NO')} | Outcome: ${(0, logger_1.bold)(outcomeAudit.is_outcome_complete ? 'VERIFIED' : 'INCOMPLETE')}`,
816
+ );
817
+ (0, logger_1.log)(
818
+ ` Outcome Quality Score: ${(0, logger_1.c)(outcomeAudit.outcome_score >= 1 ? 'green' : outcomeAudit.outcome_score >= 0.7 ? 'yellow' : 'red', `${(outcomeAudit.outcome_score * 100).toFixed(0)}%`)}`,
819
+ );
820
+ console.log();
821
+
822
+ if (outcomeAudit.satisfied.length > 0) {
823
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Satisfied Material Considerations:')}`);
824
+ for (const s of outcomeAudit.satisfied) {
825
+ (0, logger_1.log)(
826
+ ` ${(0, logger_1.c)('green', '✓')} ${(0, logger_1.bold)(s.consideration)} — ${(0, logger_1.c)('gray', s.evidence)}`,
827
+ );
828
+ }
829
+ console.log();
830
+ }
831
+ if (outcomeAudit.partially_satisfied.length > 0) {
832
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Partially Satisfied / Missing Evidence:')}`);
833
+ for (const p of outcomeAudit.partially_satisfied) {
834
+ (0, logger_1.log)(
835
+ ` ${(0, logger_1.c)('yellow', '△')} ${(0, logger_1.bold)(p.consideration)} — ${(0, logger_1.c)('yellow', p.reason || p.evidence)}`,
836
+ );
837
+ }
838
+ console.log();
839
+ }
840
+ if (outcomeAudit.unsatisfied.length > 0) {
841
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Unsatisfied Material Considerations:')}`);
842
+ for (const u of outcomeAudit.unsatisfied) {
843
+ (0, logger_1.log)(
844
+ ` ${(0, logger_1.c)('red', '✖')} ${(0, logger_1.bold)(u.consideration)} — ${(0, logger_1.c)('red', u.reason)}`,
845
+ );
846
+ }
847
+ console.log();
848
+ }
849
+ if (outcomeAudit.unnecessary_complexity.length > 0) {
850
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Overengineering / Unnecessary Complexity:')}`);
851
+ for (const un of outcomeAudit.unnecessary_complexity) {
852
+ (0, logger_1.log)(
853
+ ` ${(0, logger_1.c)('red', '⚠')} ${(0, logger_1.bold)(un.component)} — ${(0, logger_1.c)('yellow', un.reason)}`,
854
+ );
855
+ }
856
+ console.log();
857
+ }
858
+ } else {
859
+ (0, logger_1.log)(
860
+ ` Status: ${auditRes.is_complete ? (0, logger_1.c)('green', 'VERIFIED') : (0, logger_1.c)('red', 'ACTION REQUIRED')}`,
861
+ );
862
+ console.log();
863
+ }
864
+
865
+ if (auditRes.findings && auditRes.findings.length > 0) {
866
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Verification Findings:')}`);
867
+ for (const f of auditRes.findings) {
868
+ const col = f.severity === 'CRITICAL' ? 'red' : f.severity === 'HIGH' ? 'yellow' : 'cyan';
869
+ (0, logger_1.log)(
870
+ ` • [${(0, logger_1.c)(col, f.severity)}] ${(0, logger_1.bold)(f.type)}: ${f.detail}`,
871
+ );
872
+ }
873
+ console.log();
874
+ }
875
+
876
+ const allActions = Array.from(
877
+ new Set([
878
+ ...(outcomeAudit ? outcomeAudit.corrective_actions : []),
879
+ ...(auditRes.corrective_actions || []),
880
+ ]),
881
+ );
882
+ if (allActions.length > 0) {
883
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Corrective Actions Required:')}`);
884
+ for (const act of allActions) {
885
+ (0, logger_1.log)(` → ${(0, logger_1.c)('yellow', act)}`);
886
+ }
887
+ console.log();
888
+ }
889
+ return;
890
+ }
891
+
892
+ if (gateNeed) {
893
+ const res = engine.evaluateCreationGate(gateNeed, agentDest);
894
+ if (flags.json) {
895
+ console.log(JSON.stringify(res, null, 2));
896
+ return;
897
+ }
898
+ (0, logger_1.log)(` ${(0, logger_1.bold)('New Skill Creation Gate Audit')}`);
899
+ (0, logger_1.log)(` Capability: ${(0, logger_1.bold)(gateNeed)}`);
900
+ (0, logger_1.log)(
901
+ ` Status: ${res.canCreate ? (0, logger_1.c)('green', 'APPROVED') : (0, logger_1.c)('red', 'BLOCKED')}`,
902
+ );
903
+ console.log();
904
+ for (const c of res.checks) {
905
+ const icon = c.passed
906
+ ? (0, logger_1.c)('green', '✓ PASS')
907
+ : (0, logger_1.c)('red', '✖ FAIL');
908
+ (0, logger_1.log)(
909
+ ` [${icon}] ${(0, logger_1.bold)(c.name.padEnd(30))} ${(0, logger_1.c)('gray', `(${c.detail})`)}`,
910
+ );
911
+ }
912
+ console.log();
913
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Decision:')} ${res.recommendation}`);
914
+ console.log();
915
+ return;
916
+ }
917
+
918
+ if (query) {
919
+ if (engine.analyzeTask) {
920
+ const analysis = engine.analyzeTask(query, agentDest);
921
+ if (jsonFlag) {
922
+ console.log(JSON.stringify(analysis, null, 2));
923
+ return;
924
+ }
925
+
926
+ (0, logger_1.log)(` ${(0, logger_1.bold)('TASK INTELLIGENCE')}`);
927
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
928
+ if (analysis.risks && analysis.risks.length > 0) {
929
+ (0, logger_1.log)(
930
+ ` Risk Signals: ${(0, logger_1.c)('red', analysis.risks.join(' | '))}`,
931
+ );
932
+ }
933
+ console.log();
934
+
935
+ if (analysis.outcome_contract) {
936
+ (0, logger_1.log)(` ${(0, logger_1.bold)('OUTCOME CONTRACT')}`);
937
+ (0, logger_1.log)(
938
+ ` Objective: ${(0, logger_1.bold)(analysis.outcome_contract.objective)}`,
939
+ );
940
+ if (
941
+ analysis.outcome_contract.constraints &&
942
+ analysis.outcome_contract.constraints.length > 0
943
+ ) {
944
+ (0, logger_1.log)(
945
+ ` Constraints: ${(0, logger_1.c)('cyan', analysis.outcome_contract.constraints.join(' | '))}`,
946
+ );
947
+ }
948
+ if (
949
+ analysis.outcome_contract.success_conditions &&
950
+ analysis.outcome_contract.success_conditions.length > 0
951
+ ) {
952
+ (0, logger_1.log)(` Success Conditions:`);
953
+ analysis.outcome_contract.success_conditions.forEach(sc =>
954
+ (0, logger_1.log)(` ✔ ${sc}`),
955
+ );
956
+ }
957
+ if (
958
+ analysis.outcome_contract.non_goals &&
959
+ analysis.outcome_contract.non_goals.length > 0
960
+ ) {
961
+ (0, logger_1.log)(` Non-Goals (Anti-Overengineering Bounds):`);
962
+ analysis.outcome_contract.non_goals.forEach(ng =>
963
+ (0, logger_1.log)(` ✗ ${(0, logger_1.c)('gray', ng)}`),
964
+ );
965
+ }
966
+ console.log();
967
+ }
968
+
969
+ if (analysis.material_considerations && analysis.material_considerations.length > 0) {
970
+ (0, logger_1.log)(` ${(0, logger_1.bold)('MATERIALITY AUDIT')}`);
971
+ for (const mc of analysis.material_considerations) {
972
+ const sevColor = mc.severity === 'CRITICAL' ? 'red' : 'yellow';
973
+ (0, logger_1.log)(
974
+ ` • [${(0, logger_1.c)(sevColor, mc.severity)}] ${(0, logger_1.bold)(mc.title)} (${mc.category}) — ${(0, logger_1.c)('gray', mc.rationale)}`,
975
+ );
976
+ }
977
+ console.log();
978
+ }
979
+
980
+ if (analysis.tradeoffs && analysis.tradeoffs.length > 0) {
981
+ (0, logger_1.log)(` ${(0, logger_1.bold)('CROSS-DOMAIN TRADEOFF ANALYSIS')}`);
982
+ for (const td of analysis.tradeoffs) {
983
+ (0, logger_1.log)(
984
+ ` ▸ ${(0, logger_1.bold)(td.decision)} ${(0, logger_1.c)('green', `[${td.net_assessment}]`)}`,
985
+ );
986
+ for (const t of td.tradeoffs) {
987
+ const sign = t.effect === 'INCREASED' ? '+' : '-';
988
+ (0, logger_1.log)(` ${sign} ${(0, logger_1.bold)(t.dimension)}: ${t.detail}`);
989
+ }
990
+ if (td.mitigation) {
991
+ (0, logger_1.log)(
992
+ ` → ${(0, logger_1.c)('yellow', `Mitigation: ${td.mitigation}`)}`,
993
+ );
994
+ }
995
+ }
996
+ console.log();
997
+ }
998
+
999
+ (0, logger_1.log)(` ${(0, logger_1.bold)('CONCEPTS & IMPLICIT CONSIDERATIONS')}`);
1000
+ if (analysis.concepts.explicit && analysis.concepts.explicit.length > 0) {
1001
+ analysis.concepts.explicit.forEach(c => {
1002
+ (0, logger_1.log)(
1003
+ ` • ${(0, logger_1.bold)(c.name)} ${(0, logger_1.c)('gray', `(domain: ${c.domain})`)}`,
1004
+ );
1005
+ });
1006
+ }
1007
+ if (analysis.concepts.implicit && analysis.concepts.implicit.length > 0) {
1008
+ analysis.concepts.implicit.forEach(c => {
1009
+ (0, logger_1.log)(
1010
+ ` • ${(0, logger_1.bold)(c.name)} ${(0, logger_1.c)('gray', `(domain: ${c.domain})`)} — ${(0, logger_1.c)('yellow', c.reason)}`,
1011
+ );
1012
+ });
1013
+ }
1014
+ console.log();
1015
+
1016
+ if (analysis.considerations && analysis.considerations.length > 0) {
1017
+ (0, logger_1.log)(` ${(0, logger_1.bold)('ENGINEERING CONSIDERATIONS')}`);
1018
+ const critical = analysis.considerations.filter(c => c.severity === 'CRITICAL');
1019
+ const high = analysis.considerations.filter(c => c.severity === 'HIGH');
1020
+ const medium = analysis.considerations.filter(c => c.severity === 'MEDIUM');
1021
+
1022
+ if (critical.length > 0) {
1023
+ (0, logger_1.log)(` ${(0, logger_1.bold)((0, logger_1.c)('red', '[CRITICAL]'))}`);
1024
+ critical.forEach(c =>
1025
+ (0, logger_1.log)(
1026
+ ` • ${(0, logger_1.bold)(c.title)} (${c.category}) — ${c.rationale}`,
1027
+ ),
1028
+ );
1029
+ }
1030
+ if (high.length > 0) {
1031
+ (0, logger_1.log)(` ${(0, logger_1.bold)((0, logger_1.c)('yellow', '[HIGH]'))}`);
1032
+ high.forEach(c =>
1033
+ (0, logger_1.log)(
1034
+ ` • ${(0, logger_1.bold)(c.title)} (${c.category}) — ${c.rationale}`,
1035
+ ),
1036
+ );
1037
+ }
1038
+ if (medium.length > 0) {
1039
+ (0, logger_1.log)(` ${(0, logger_1.bold)((0, logger_1.c)('cyan', '[MEDIUM]'))}`);
1040
+ medium.forEach(c =>
1041
+ (0, logger_1.log)(
1042
+ ` • ${(0, logger_1.bold)(c.title)} (${c.category}) — ${c.rationale}`,
1043
+ ),
1044
+ );
1045
+ }
1046
+ console.log();
1047
+ }
1048
+
1049
+ if (analysis.coverage && analysis.coverage.length > 0) {
1050
+ (0, logger_1.log)(` ${(0, logger_1.bold)('SKILL COVERAGE')}`);
1051
+ (0, logger_1.log)(` ${'Concept'.padEnd(36)} ${'Coverage'.padEnd(10)} Matched Skill`);
1052
+ (0, logger_1.log)(` ${'─'.repeat(36)} ${'─'.repeat(10)} ${'─'.repeat(20)}`);
1053
+ for (const row of analysis.coverage) {
1054
+ const covColor =
1055
+ row.coverage === 'FULL' ? 'green' : row.coverage === 'PARTIAL' ? 'yellow' : 'red';
1056
+ (0, logger_1.log)(
1057
+ ` ${row.concept_name.slice(0, 34).padEnd(36)} ${(0, logger_1.c)(covColor, row.coverage.padEnd(10))} ${row.matched_skill || (0, logger_1.c)('gray', 'NONE')}`,
1058
+ );
1059
+ }
1060
+ console.log();
1061
+ }
1062
+
1063
+ if (
1064
+ analysis.composition &&
1065
+ analysis.composition.pipeline &&
1066
+ analysis.composition.pipeline.length > 0
1067
+ ) {
1068
+ (0, logger_1.log)(
1069
+ ` ${(0, logger_1.bold)((0, logger_1.c)('green', 'COMPOSED CAPABILITY PIPELINE DAG:'))}`,
1070
+ );
1071
+ (0, logger_1.log)(` ${analysis.composition.pipeline.join(' → ')}`);
1072
+ console.log();
1073
+ }
1074
+
1075
+ if (analysis.pre_mortem) {
1076
+ (0, logger_1.log)(` ${(0, logger_1.bold)('SYSTEM PRE-MORTEM & FAILURE PREDICTIONS')}`);
1077
+ (0, logger_1.log)(
1078
+ ` Simulation Level: ${(0, logger_1.c)('yellow', analysis.simulation_plan?.selected_level?.name || 'Standard')}`,
1079
+ );
1080
+ (0, logger_1.log)(
1081
+ ` Predictions: ${(0, logger_1.bold)(String((analysis.predictions || []).length))} | Failure Chains: ${(0, logger_1.bold)(String((analysis.failure_chains || []).length))}`,
1082
+ );
1083
+ if (analysis.failure_chains && analysis.failure_chains.length > 0) {
1084
+ for (const fc of analysis.failure_chains.slice(0, 2)) {
1085
+ (0, logger_1.log)(
1086
+ ` ⚡ ${(0, logger_1.bold)(fc.name || fc.id)} ${(0, logger_1.c)('gray', `[Blast: ${fc.blast_radius}]`)}`,
1087
+ );
1088
+ }
1089
+ }
1090
+ console.log();
1091
+ }
1092
+
1093
+ if (analysis.verification_plan && analysis.verification_plan.length > 0) {
1094
+ (0, logger_1.log)(` ${(0, logger_1.bold)('VERIFICATION PLAN')}`);
1095
+ for (const v of analysis.verification_plan) {
1096
+ (0, logger_1.log)(
1097
+ ` • [${(0, logger_1.bold)(v.target)}] ${v.test}: ${(0, logger_1.c)('gray', v.action)}`,
1098
+ );
1099
+ }
1100
+ console.log();
1101
+ }
1102
+ return;
1103
+ }
1104
+
1105
+ // Fallback to discoverSkills
1106
+ const res = engine.discoverSkills(query, agentDest);
1107
+ if (jsonFlag) {
1108
+ console.log(JSON.stringify(res, null, 2));
1109
+ return;
1110
+ }
1111
+
1112
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Tribunal Skill Intelligence Discovery')}`);
1113
+ (0, logger_1.log)(` Task: ${(0, logger_1.c)('cyan', query)}`);
1114
+ (0, logger_1.log)(
1115
+ ` Discovered Capabilities: ${(0, logger_1.bold)(String(res.totalDiscovered))}`,
1116
+ );
1117
+ console.log();
1118
+
1119
+ if (res.mandatory.length > 0) {
1120
+ (0, logger_1.log)(
1121
+ ` ${(0, logger_1.bold)((0, logger_1.c)('red', 'MANDATORY (Critical Safety & Correctness):'))}`,
1122
+ );
1123
+ res.mandatory.forEach(s => {
1124
+ (0, logger_1.log)(
1125
+ ` • ${(0, logger_1.bold)(s.skill)} ${(0, logger_1.c)('gray', `(score: ${s.score})`)}`,
1126
+ );
1127
+ });
1128
+ console.log();
1129
+ }
1130
+
1131
+ if (res.recommended.length > 0) {
1132
+ (0, logger_1.log)(
1133
+ ` ${(0, logger_1.bold)((0, logger_1.c)('yellow', 'RECOMMENDED (Architecture & Reliability):'))}`,
1134
+ );
1135
+ res.recommended.forEach(s => {
1136
+ (0, logger_1.log)(
1137
+ ` • ${(0, logger_1.bold)(s.skill)} ${(0, logger_1.c)('gray', `(score: ${s.score})`)}`,
1138
+ );
1139
+ });
1140
+ console.log();
1141
+ }
1142
+
1143
+ if (res.pipeline.length > 0) {
1144
+ (0, logger_1.log)(
1145
+ ` ${(0, logger_1.bold)((0, logger_1.c)('green', 'Composed Capability Pipeline DAG:'))}`,
1146
+ );
1147
+ (0, logger_1.log)(` ${res.pipeline.join(' → ')}`);
1148
+ console.log();
1149
+ }
1150
+ return;
1151
+ }
1152
+
1153
+ // Default help
1154
+ (0, logger_1.log)(` ${(0, logger_1.bold)('Skill Intelligence Engine')}`);
1155
+ (0, logger_1.log)(` Usage:`);
1156
+ (0, logger_1.log)(` tk skill-intel "<task description>"`);
1157
+ (0, logger_1.log)(` tk skill-intel --gate --need "<capability>"`);
1158
+ (0, logger_1.log)(` tk skill-intel --audit`);
1159
+ console.log();
1160
+ } catch (err) {
1161
+ (0, logger_1.log)(
1162
+ ` ${(0, logger_1.c)('red', '✖')} Error executing skill-intel: ${err.message}`,
1163
+ );
1164
+ }
1165
+ }