@soleri/core 9.3.0 → 9.4.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.
Files changed (177) hide show
  1. package/dist/brain/intelligence.d.ts +5 -0
  2. package/dist/brain/intelligence.d.ts.map +1 -1
  3. package/dist/brain/intelligence.js +115 -26
  4. package/dist/brain/intelligence.js.map +1 -1
  5. package/dist/brain/learning-radar.d.ts +3 -3
  6. package/dist/brain/learning-radar.d.ts.map +1 -1
  7. package/dist/brain/learning-radar.js +8 -4
  8. package/dist/brain/learning-radar.js.map +1 -1
  9. package/dist/control/intent-router.d.ts +2 -2
  10. package/dist/control/intent-router.d.ts.map +1 -1
  11. package/dist/control/intent-router.js +35 -1
  12. package/dist/control/intent-router.js.map +1 -1
  13. package/dist/control/types.d.ts +10 -2
  14. package/dist/control/types.d.ts.map +1 -1
  15. package/dist/curator/curator.d.ts +4 -0
  16. package/dist/curator/curator.d.ts.map +1 -1
  17. package/dist/curator/curator.js +23 -1
  18. package/dist/curator/curator.js.map +1 -1
  19. package/dist/curator/schema.d.ts +1 -1
  20. package/dist/curator/schema.d.ts.map +1 -1
  21. package/dist/curator/schema.js +8 -0
  22. package/dist/curator/schema.js.map +1 -1
  23. package/dist/domain-packs/types.d.ts +6 -0
  24. package/dist/domain-packs/types.d.ts.map +1 -1
  25. package/dist/domain-packs/types.js +1 -0
  26. package/dist/domain-packs/types.js.map +1 -1
  27. package/dist/engine/module-manifest.d.ts +2 -0
  28. package/dist/engine/module-manifest.d.ts.map +1 -1
  29. package/dist/engine/module-manifest.js +117 -2
  30. package/dist/engine/module-manifest.js.map +1 -1
  31. package/dist/engine/register-engine.d.ts +9 -0
  32. package/dist/engine/register-engine.d.ts.map +1 -1
  33. package/dist/engine/register-engine.js +59 -1
  34. package/dist/engine/register-engine.js.map +1 -1
  35. package/dist/facades/types.d.ts +5 -1
  36. package/dist/facades/types.d.ts.map +1 -1
  37. package/dist/facades/types.js.map +1 -1
  38. package/dist/index.d.ts +6 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +5 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/operator/operator-context-store.d.ts +54 -0
  43. package/dist/operator/operator-context-store.d.ts.map +1 -0
  44. package/dist/operator/operator-context-store.js +434 -0
  45. package/dist/operator/operator-context-store.js.map +1 -0
  46. package/dist/operator/operator-context-types.d.ts +101 -0
  47. package/dist/operator/operator-context-types.d.ts.map +1 -0
  48. package/dist/operator/operator-context-types.js +27 -0
  49. package/dist/operator/operator-context-types.js.map +1 -0
  50. package/dist/packs/index.d.ts +2 -2
  51. package/dist/packs/index.d.ts.map +1 -1
  52. package/dist/packs/index.js +1 -1
  53. package/dist/packs/index.js.map +1 -1
  54. package/dist/packs/lockfile.d.ts +3 -0
  55. package/dist/packs/lockfile.d.ts.map +1 -1
  56. package/dist/packs/lockfile.js.map +1 -1
  57. package/dist/packs/types.d.ts +8 -2
  58. package/dist/packs/types.d.ts.map +1 -1
  59. package/dist/packs/types.js +6 -0
  60. package/dist/packs/types.js.map +1 -1
  61. package/dist/planning/plan-lifecycle.d.ts +12 -1
  62. package/dist/planning/plan-lifecycle.d.ts.map +1 -1
  63. package/dist/planning/plan-lifecycle.js +52 -19
  64. package/dist/planning/plan-lifecycle.js.map +1 -1
  65. package/dist/planning/planner-types.d.ts +6 -0
  66. package/dist/planning/planner-types.d.ts.map +1 -1
  67. package/dist/planning/planner.d.ts +21 -1
  68. package/dist/planning/planner.d.ts.map +1 -1
  69. package/dist/planning/planner.js +62 -3
  70. package/dist/planning/planner.js.map +1 -1
  71. package/dist/planning/task-complexity-assessor.d.ts +42 -0
  72. package/dist/planning/task-complexity-assessor.d.ts.map +1 -0
  73. package/dist/planning/task-complexity-assessor.js +132 -0
  74. package/dist/planning/task-complexity-assessor.js.map +1 -0
  75. package/dist/plugins/types.d.ts +18 -18
  76. package/dist/runtime/admin-ops.d.ts +1 -1
  77. package/dist/runtime/admin-ops.d.ts.map +1 -1
  78. package/dist/runtime/admin-ops.js +118 -3
  79. package/dist/runtime/admin-ops.js.map +1 -1
  80. package/dist/runtime/admin-setup-ops.d.ts.map +1 -1
  81. package/dist/runtime/admin-setup-ops.js +19 -9
  82. package/dist/runtime/admin-setup-ops.js.map +1 -1
  83. package/dist/runtime/capture-ops.d.ts.map +1 -1
  84. package/dist/runtime/capture-ops.js +35 -7
  85. package/dist/runtime/capture-ops.js.map +1 -1
  86. package/dist/runtime/facades/brain-facade.d.ts.map +1 -1
  87. package/dist/runtime/facades/brain-facade.js +4 -2
  88. package/dist/runtime/facades/brain-facade.js.map +1 -1
  89. package/dist/runtime/facades/control-facade.d.ts.map +1 -1
  90. package/dist/runtime/facades/control-facade.js +8 -2
  91. package/dist/runtime/facades/control-facade.js.map +1 -1
  92. package/dist/runtime/facades/curator-facade.d.ts.map +1 -1
  93. package/dist/runtime/facades/curator-facade.js +13 -0
  94. package/dist/runtime/facades/curator-facade.js.map +1 -1
  95. package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
  96. package/dist/runtime/facades/memory-facade.js +10 -12
  97. package/dist/runtime/facades/memory-facade.js.map +1 -1
  98. package/dist/runtime/facades/orchestrate-facade.d.ts.map +1 -1
  99. package/dist/runtime/facades/orchestrate-facade.js +36 -1
  100. package/dist/runtime/facades/orchestrate-facade.js.map +1 -1
  101. package/dist/runtime/facades/plan-facade.d.ts.map +1 -1
  102. package/dist/runtime/facades/plan-facade.js +20 -4
  103. package/dist/runtime/facades/plan-facade.js.map +1 -1
  104. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  105. package/dist/runtime/orchestrate-ops.js +109 -31
  106. package/dist/runtime/orchestrate-ops.js.map +1 -1
  107. package/dist/runtime/plan-feedback-helper.d.ts +21 -0
  108. package/dist/runtime/plan-feedback-helper.d.ts.map +1 -0
  109. package/dist/runtime/plan-feedback-helper.js +52 -0
  110. package/dist/runtime/plan-feedback-helper.js.map +1 -0
  111. package/dist/runtime/planning-extra-ops.d.ts.map +1 -1
  112. package/dist/runtime/planning-extra-ops.js +73 -34
  113. package/dist/runtime/planning-extra-ops.js.map +1 -1
  114. package/dist/runtime/session-briefing.d.ts.map +1 -1
  115. package/dist/runtime/session-briefing.js +9 -1
  116. package/dist/runtime/session-briefing.js.map +1 -1
  117. package/dist/runtime/types.d.ts +3 -0
  118. package/dist/runtime/types.d.ts.map +1 -1
  119. package/dist/skills/sync-skills.d.ts.map +1 -1
  120. package/dist/skills/sync-skills.js +13 -7
  121. package/dist/skills/sync-skills.js.map +1 -1
  122. package/package.json +1 -1
  123. package/src/brain/brain-intelligence.test.ts +30 -0
  124. package/src/brain/extraction-quality.test.ts +323 -0
  125. package/src/brain/intelligence.ts +133 -30
  126. package/src/brain/learning-radar.ts +8 -5
  127. package/src/brain/second-brain-features.test.ts +1 -1
  128. package/src/control/intent-router.test.ts +73 -3
  129. package/src/control/intent-router.ts +38 -1
  130. package/src/control/types.ts +13 -2
  131. package/src/curator/curator.test.ts +92 -0
  132. package/src/curator/curator.ts +29 -1
  133. package/src/curator/schema.ts +8 -0
  134. package/src/domain-packs/types.ts +8 -0
  135. package/src/engine/module-manifest.test.ts +51 -2
  136. package/src/engine/module-manifest.ts +119 -2
  137. package/src/engine/register-engine.test.ts +73 -1
  138. package/src/engine/register-engine.ts +61 -1
  139. package/src/facades/types.ts +5 -0
  140. package/src/index.ts +30 -0
  141. package/src/operator/operator-context-store.test.ts +698 -0
  142. package/src/operator/operator-context-store.ts +569 -0
  143. package/src/operator/operator-context-types.ts +139 -0
  144. package/src/packs/index.ts +3 -1
  145. package/src/packs/lockfile.ts +3 -0
  146. package/src/packs/types.ts +9 -0
  147. package/src/planning/plan-lifecycle.ts +80 -22
  148. package/src/planning/planner-types.ts +6 -0
  149. package/src/planning/planner.ts +74 -4
  150. package/src/planning/task-complexity-assessor.test.ts +302 -0
  151. package/src/planning/task-complexity-assessor.ts +180 -0
  152. package/src/runtime/admin-ops.test.ts +159 -3
  153. package/src/runtime/admin-ops.ts +123 -3
  154. package/src/runtime/admin-setup-ops.ts +30 -10
  155. package/src/runtime/capture-ops.test.ts +84 -0
  156. package/src/runtime/capture-ops.ts +35 -7
  157. package/src/runtime/facades/admin-facade.test.ts +1 -1
  158. package/src/runtime/facades/brain-facade.ts +6 -3
  159. package/src/runtime/facades/control-facade.ts +10 -2
  160. package/src/runtime/facades/curator-facade.ts +18 -0
  161. package/src/runtime/facades/memory-facade.test.ts +14 -12
  162. package/src/runtime/facades/memory-facade.ts +10 -12
  163. package/src/runtime/facades/orchestrate-facade.ts +33 -1
  164. package/src/runtime/facades/plan-facade.test.ts +213 -0
  165. package/src/runtime/facades/plan-facade.ts +23 -4
  166. package/src/runtime/orchestrate-ops.test.ts +404 -0
  167. package/src/runtime/orchestrate-ops.ts +129 -37
  168. package/src/runtime/plan-feedback-helper.test.ts +173 -0
  169. package/src/runtime/plan-feedback-helper.ts +63 -0
  170. package/src/runtime/planning-extra-ops.test.ts +43 -1
  171. package/src/runtime/planning-extra-ops.ts +96 -33
  172. package/src/runtime/session-briefing.test.ts +1 -0
  173. package/src/runtime/session-briefing.ts +10 -1
  174. package/src/runtime/types.ts +3 -0
  175. package/src/skills/sync-skills.ts +14 -7
  176. package/src/vault/vault-scaling.test.ts +5 -5
  177. package/vitest.config.ts +1 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Task Complexity Assessor — pure function that classifies tasks as simple or complex.
3
+ *
4
+ * Used by the planning module to decide whether a decomposed GH issue
5
+ * needs a full plan or can be executed directly.
6
+ */
7
+ export interface AssessmentInput {
8
+ /** User's task description. */
9
+ prompt: string;
10
+ /** Estimated number of files to touch. */
11
+ filesEstimated?: number;
12
+ /** GH issue body if available. */
13
+ parentIssueContext?: string;
14
+ /** Whether the approach is already described in a parent plan. */
15
+ hasParentPlan?: boolean;
16
+ /** Which domains are involved. */
17
+ domains?: string[];
18
+ }
19
+ export interface AssessmentSignal {
20
+ name: string;
21
+ weight: number;
22
+ triggered: boolean;
23
+ detail: string;
24
+ }
25
+ export interface AssessmentResult {
26
+ classification: 'simple' | 'complex';
27
+ /** 0-100 complexity score. Threshold at 40. */
28
+ score: number;
29
+ signals: AssessmentSignal[];
30
+ /** One-line explanation. */
31
+ reasoning: string;
32
+ }
33
+ /**
34
+ * Assess task complexity from structured input.
35
+ *
36
+ * Returns a classification (`simple` | `complex`), a numeric score (0-100),
37
+ * the individual signals that contributed, and a one-line reasoning string.
38
+ *
39
+ * Pure function — no side effects, no DB, no MCP calls.
40
+ */
41
+ export declare function assessTaskComplexity(input: AssessmentInput): AssessmentResult;
42
+ //# sourceMappingURL=task-complexity-assessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-complexity-assessor.d.ts","sourceRoot":"","sources":["../../src/planning/task-complexity-assessor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAgHD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAuB7E"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Task Complexity Assessor — pure function that classifies tasks as simple or complex.
3
+ *
4
+ * Used by the planning module to decide whether a decomposed GH issue
5
+ * needs a full plan or can be executed directly.
6
+ */
7
+ // ─── Signal Detectors ───────────────────────────────────────────────
8
+ const CROSS_CUTTING_PATTERNS = [
9
+ /\bauth(?:entication|orization)?\b/i,
10
+ /\bmigrat(?:e|ion|ing)\b/i,
11
+ /\brefactor(?:ing)?\s+across\b/i,
12
+ /\bcross[- ]cutting\b/i,
13
+ ];
14
+ const NEW_DEPENDENCY_PATTERNS = [
15
+ /\badd\s+dep(?:endency|endencies)?\b/i,
16
+ /\binstall\b/i,
17
+ /\bnew\s+package\b/i,
18
+ /\bnpm\s+install\b/i,
19
+ /\badd\s+(?:a\s+)?(?:new\s+)?(?:npm\s+)?package\b/i,
20
+ ];
21
+ const DESIGN_DECISION_PATTERNS = [
22
+ /\bhow\s+should\b/i,
23
+ /\bwhich\s+approach\b/i,
24
+ /\bdesign\s+decision\b/i,
25
+ /\barchitectur(?:e|al)\s+(?:decision|choice)\b/i,
26
+ /\btrade[- ]?off/i,
27
+ ];
28
+ function detectFileCount(input) {
29
+ const files = input.filesEstimated ?? 0;
30
+ const triggered = files >= 3;
31
+ return {
32
+ name: 'file-count',
33
+ weight: 25,
34
+ triggered,
35
+ detail: triggered
36
+ ? `Estimated ${files} files (≥3 threshold)`
37
+ : files > 0
38
+ ? `Estimated ${files} file${files === 1 ? '' : 's'} (under threshold)`
39
+ : 'No file estimate provided',
40
+ };
41
+ }
42
+ function detectCrossCutting(input) {
43
+ const text = input.prompt;
44
+ const match = CROSS_CUTTING_PATTERNS.find((p) => p.test(text));
45
+ return {
46
+ name: 'cross-cutting-keywords',
47
+ weight: 20,
48
+ triggered: !!match,
49
+ detail: match
50
+ ? `Detected cross-cutting keyword: "${text.match(match)?.[0]}"`
51
+ : 'No cross-cutting keywords detected',
52
+ };
53
+ }
54
+ function detectNewDependencies(input) {
55
+ const text = input.prompt;
56
+ const match = NEW_DEPENDENCY_PATTERNS.find((p) => p.test(text));
57
+ return {
58
+ name: 'new-dependencies',
59
+ weight: 15,
60
+ triggered: !!match,
61
+ detail: match
62
+ ? `Detected dependency signal: "${text.match(match)?.[0]}"`
63
+ : 'No new dependency signals detected',
64
+ };
65
+ }
66
+ function detectDesignDecisions(input) {
67
+ const text = input.prompt;
68
+ const match = DESIGN_DECISION_PATTERNS.find((p) => p.test(text));
69
+ return {
70
+ name: 'design-decisions-needed',
71
+ weight: 20,
72
+ triggered: !!match,
73
+ detail: match
74
+ ? `Detected design decision signal: "${text.match(match)?.[0]}"`
75
+ : 'No design decision signals detected',
76
+ };
77
+ }
78
+ function detectApproachDescribed(input) {
79
+ const hasContext = !!(input.hasParentPlan || input.parentIssueContext?.trim());
80
+ return {
81
+ name: 'approach-already-described',
82
+ weight: -15,
83
+ triggered: hasContext,
84
+ detail: hasContext
85
+ ? 'Approach already described in parent plan or issue'
86
+ : 'No pre-existing approach context',
87
+ };
88
+ }
89
+ function detectMultiDomain(input) {
90
+ const domains = input.domains ?? [];
91
+ const triggered = domains.length >= 2;
92
+ return {
93
+ name: 'multi-domain',
94
+ weight: 5,
95
+ triggered,
96
+ detail: triggered
97
+ ? `Involves ${domains.length} domains: ${domains.join(', ')}`
98
+ : domains.length === 1
99
+ ? `Single domain: ${domains[0]}`
100
+ : 'No domains specified',
101
+ };
102
+ }
103
+ // ─── Assessor ───────────────────────────────────────────────────────
104
+ const COMPLEXITY_THRESHOLD = 40;
105
+ /**
106
+ * Assess task complexity from structured input.
107
+ *
108
+ * Returns a classification (`simple` | `complex`), a numeric score (0-100),
109
+ * the individual signals that contributed, and a one-line reasoning string.
110
+ *
111
+ * Pure function — no side effects, no DB, no MCP calls.
112
+ */
113
+ export function assessTaskComplexity(input) {
114
+ const signals = [
115
+ detectFileCount(input),
116
+ detectCrossCutting(input),
117
+ detectNewDependencies(input),
118
+ detectDesignDecisions(input),
119
+ detectApproachDescribed(input),
120
+ detectMultiDomain(input),
121
+ ];
122
+ const rawScore = signals.reduce((sum, s) => sum + (s.triggered ? s.weight : 0), 0);
123
+ // Clamp to 0-100
124
+ const score = Math.max(0, Math.min(100, rawScore));
125
+ const classification = score >= COMPLEXITY_THRESHOLD ? 'complex' : 'simple';
126
+ const triggered = signals.filter((s) => s.triggered);
127
+ const reasoning = triggered.length === 0
128
+ ? 'No complexity signals detected — treating as simple task'
129
+ : `${classification === 'complex' ? 'Complex' : 'Simple'}: ${triggered.map((s) => s.name).join(', ')} (score ${score})`;
130
+ return { classification, score, signals, reasoning };
131
+ }
132
+ //# sourceMappingURL=task-complexity-assessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-complexity-assessor.js","sourceRoot":"","sources":["../../src/planning/task-complexity-assessor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiCH,uEAAuE;AAEvE,MAAM,sBAAsB,GAAG;IAC7B,oCAAoC;IACpC,0BAA0B;IAC1B,gCAAgC;IAChC,uBAAuB;CACxB,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,sCAAsC;IACtC,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,mDAAmD;CACpD,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,mBAAmB;IACnB,uBAAuB;IACvB,wBAAwB;IACxB,gDAAgD;IAChD,kBAAkB;CACnB,CAAC;AAEF,SAAS,eAAe,CAAC,KAAsB;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,KAAK,IAAI,CAAC,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;QACV,SAAS;QACT,MAAM,EAAE,SAAS;YACf,CAAC,CAAC,aAAa,KAAK,uBAAuB;YAC3C,CAAC,CAAC,KAAK,GAAG,CAAC;gBACT,CAAC,CAAC,aAAa,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,oBAAoB;gBACtE,CAAC,CAAC,2BAA2B;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAsB;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK;YACX,CAAC,CAAC,oCAAoC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;YAC/D,CAAC,CAAC,oCAAoC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAsB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK;YACX,CAAC,CAAC,gCAAgC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;YAC3D,CAAC,CAAC,oCAAoC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAsB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK;YACX,CAAC,CAAC,qCAAqC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;YAChE,CAAC,CAAC,qCAAqC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAsB;IACrD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,CAAC,EAAE;QACX,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,UAAU;YAChB,CAAC,CAAC,oDAAoD;YACtD,CAAC,CAAC,kCAAkC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAsB;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,CAAC;QACT,SAAS;QACT,MAAM,EAAE,SAAS;YACf,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7D,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBACpB,CAAC,CAAC,kBAAkB,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChC,CAAC,CAAC,sBAAsB;KAC7B,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,OAAO,GAAuB;QAClC,eAAe,CAAC,KAAK,CAAC;QACtB,kBAAkB,CAAC,KAAK,CAAC;QACzB,qBAAqB,CAAC,KAAK,CAAC;QAC5B,qBAAqB,CAAC,KAAK,CAAC;QAC5B,uBAAuB,CAAC,KAAK,CAAC;QAC9B,iBAAiB,CAAC,KAAK,CAAC;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnF,iBAAiB;IACjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,SAAS,GACb,SAAS,CAAC,MAAM,KAAK,CAAC;QACpB,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC;IAE5H,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC"}
@@ -30,11 +30,11 @@ export declare const pluginManifestSchema: z.ZodObject<{
30
30
  }, "strip", z.ZodTypeAny, {
31
31
  description: string;
32
32
  name: string;
33
- auth: "read" | "write" | "admin";
33
+ auth: "write" | "read" | "admin";
34
34
  }, {
35
35
  name: string;
36
36
  description?: string | undefined;
37
- auth?: "read" | "write" | "admin" | undefined;
37
+ auth?: "write" | "read" | "admin" | undefined;
38
38
  }>, "many">;
39
39
  }, "strip", z.ZodTypeAny, {
40
40
  description: string;
@@ -42,14 +42,14 @@ export declare const pluginManifestSchema: z.ZodObject<{
42
42
  ops: {
43
43
  description: string;
44
44
  name: string;
45
- auth: "read" | "write" | "admin";
45
+ auth: "write" | "read" | "admin";
46
46
  }[];
47
47
  }, {
48
48
  name: string;
49
49
  ops: {
50
50
  name: string;
51
51
  description?: string | undefined;
52
- auth?: "read" | "write" | "admin" | undefined;
52
+ auth?: "write" | "read" | "admin" | undefined;
53
53
  }[];
54
54
  description?: string | undefined;
55
55
  }>, "many">>>;
@@ -64,26 +64,26 @@ export declare const pluginManifestSchema: z.ZodObject<{
64
64
  tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
65
65
  }, "strip", z.ZodTypeAny, {
66
66
  type: string;
67
- id: string;
68
67
  title: string;
69
68
  description: string;
69
+ id: string;
70
70
  tags: string[];
71
71
  domain?: string | undefined;
72
- severity?: "suggestion" | "warning" | "critical" | undefined;
72
+ severity?: "critical" | "warning" | "suggestion" | undefined;
73
73
  }, {
74
74
  type: string;
75
- id: string;
76
75
  title: string;
77
76
  description: string;
77
+ id: string;
78
78
  domain?: string | undefined;
79
79
  tags?: string[] | undefined;
80
- severity?: "suggestion" | "warning" | "critical" | undefined;
80
+ severity?: "critical" | "warning" | "suggestion" | undefined;
81
81
  }>, "many">>>;
82
82
  }, "strip", z.ZodTypeAny, {
83
- version: string;
84
- id: string;
85
83
  description: string;
86
84
  name: string;
85
+ version: string;
86
+ id: string;
87
87
  dependencies: string[];
88
88
  facades: {
89
89
  description: string;
@@ -91,43 +91,43 @@ export declare const pluginManifestSchema: z.ZodObject<{
91
91
  ops: {
92
92
  description: string;
93
93
  name: string;
94
- auth: "read" | "write" | "admin";
94
+ auth: "write" | "read" | "admin";
95
95
  }[];
96
96
  }[];
97
97
  intelligence: {
98
98
  type: string;
99
- id: string;
100
99
  title: string;
101
100
  description: string;
101
+ id: string;
102
102
  tags: string[];
103
103
  domain?: string | undefined;
104
- severity?: "suggestion" | "warning" | "critical" | undefined;
104
+ severity?: "critical" | "warning" | "suggestion" | undefined;
105
105
  }[];
106
106
  domain?: string | undefined;
107
107
  }, {
108
+ name: string;
108
109
  version: string;
109
110
  id: string;
110
- name: string;
111
- domain?: string | undefined;
112
111
  description?: string | undefined;
112
+ domain?: string | undefined;
113
113
  dependencies?: string[] | undefined;
114
114
  facades?: {
115
115
  name: string;
116
116
  ops: {
117
117
  name: string;
118
118
  description?: string | undefined;
119
- auth?: "read" | "write" | "admin" | undefined;
119
+ auth?: "write" | "read" | "admin" | undefined;
120
120
  }[];
121
121
  description?: string | undefined;
122
122
  }[] | undefined;
123
123
  intelligence?: {
124
124
  type: string;
125
- id: string;
126
125
  title: string;
127
126
  description: string;
127
+ id: string;
128
128
  domain?: string | undefined;
129
129
  tags?: string[] | undefined;
130
- severity?: "suggestion" | "warning" | "critical" | undefined;
130
+ severity?: "critical" | "warning" | "suggestion" | undefined;
131
131
  }[] | undefined;
132
132
  }>;
133
133
  export type PluginManifest = z.infer<typeof pluginManifestSchema>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Admin / infrastructure operations — 8 ops for agent self-management.
2
+ * Admin / infrastructure operations — 11 ops for agent self-management.
3
3
  *
4
4
  * These ops let agents introspect their own health, configuration, and
5
5
  * runtime state. No new modules needed — uses existing runtime parts.
@@ -1 +1 @@
1
- {"version":3,"file":"admin-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA0B/C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CA8QpE"}
1
+ {"version":3,"file":"admin-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4B/C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAoXpE"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Admin / infrastructure operations — 8 ops for agent self-management.
2
+ * Admin / infrastructure operations — 11 ops for agent self-management.
3
3
  *
4
4
  * These ops let agents introspect their own health, configuration, and
5
5
  * runtime state. No new modules needed — uses existing runtime parts.
@@ -7,6 +7,8 @@
7
7
  import { readFileSync, statSync } from 'node:fs';
8
8
  import { join, dirname } from 'node:path';
9
9
  import { fileURLToPath } from 'node:url';
10
+ import { ENGINE_MODULE_MANIFEST } from '../engine/module-manifest.js';
11
+ import { discoverSkills } from '../skills/sync-skills.js';
10
12
  /**
11
13
  * Resolve the @soleri/core package.json version.
12
14
  * Walks up from this file's directory to find the closest package.json.
@@ -38,18 +40,34 @@ function getCoreVersion() {
38
40
  * Groups: health (1–2), introspection (4), diagnostics (2), mutation (1).
39
41
  */
40
42
  export function createAdminOps(runtime) {
41
- const { vault, brain, brainIntelligence, llmClient, curator } = runtime;
43
+ const { vault, brain, brainIntelligence, llmClient, curator, packInstaller } = runtime;
42
44
  return [
43
45
  // ─── Health ──────────────────────────────────────────────────────
44
46
  {
45
47
  name: 'admin_health',
46
- description: 'Comprehensive agent health check — vault, LLM, brain status.',
48
+ description: 'Comprehensive agent health check — vault, LLM, brain, skills, hooks status.',
47
49
  auth: 'read',
48
50
  handler: async () => {
49
51
  const vaultStats = vault.stats();
50
52
  const llmAvailable = llmClient.isAvailable();
51
53
  const brainStats = brain.getStats();
52
54
  const curatorStatus = curator.getStatus();
55
+ // Skills: agent-level + pack-level
56
+ const agentDir = runtime.config.agentDir;
57
+ const agentSkillsDirs = agentDir ? [join(agentDir, 'skills')] : [];
58
+ const agentSkills = discoverSkills(agentSkillsDirs);
59
+ const packs = packInstaller.list();
60
+ const packSkills = packs.flatMap((p) => p.skills);
61
+ const allSkillNames = [...agentSkills.map((s) => s.name), ...packSkills];
62
+ // Hooks: pack-level
63
+ const packHooks = packs.flatMap((p) => p.hooks);
64
+ // Tier breakdown
65
+ const tierCounts = { default: 0, community: 0, premium: 0 };
66
+ for (const pk of packs) {
67
+ const t = pk.manifest?.tier ?? 'community';
68
+ if (t in tierCounts)
69
+ tierCounts[t]++;
70
+ }
53
71
  return {
54
72
  status: 'ok',
55
73
  vault: { entries: vaultStats.totalEntries, domains: Object.keys(vaultStats.byDomain) },
@@ -59,6 +77,16 @@ export function createAdminOps(runtime) {
59
77
  feedbackCount: brainStats.feedbackCount,
60
78
  },
61
79
  curator: { initialized: curatorStatus.initialized },
80
+ skills: {
81
+ count: allSkillNames.length,
82
+ agent: agentSkills.map((s) => s.name),
83
+ packs: packSkills,
84
+ },
85
+ hooks: {
86
+ count: packHooks.length,
87
+ packs: packHooks,
88
+ },
89
+ packTiers: tierCounts,
62
90
  };
63
91
  },
64
92
  },
@@ -104,6 +132,7 @@ export function createAdminOps(runtime) {
104
132
  return {
105
133
  count: allOps.length,
106
134
  ops: grouped,
135
+ routing: buildRoutingHints(),
107
136
  };
108
137
  }
109
138
  // Fallback — just describe admin ops
@@ -121,6 +150,7 @@ export function createAdminOps(runtime) {
121
150
  'admin_diagnostic',
122
151
  ],
123
152
  },
153
+ routing: buildRoutingHints(),
124
154
  };
125
155
  },
126
156
  },
@@ -200,6 +230,37 @@ export function createAdminOps(runtime) {
200
230
  };
201
231
  },
202
232
  },
233
+ // ─── Operator Context ───────────────────────────────────────────
234
+ {
235
+ name: 'operator_context_inspect',
236
+ description: 'Inspect the full operator context profile — expertise, corrections, interests, patterns.',
237
+ auth: 'read',
238
+ handler: async () => {
239
+ const store = runtime.operatorContextStore;
240
+ if (!store) {
241
+ return { available: false, message: 'Operator context not configured' };
242
+ }
243
+ return { available: true, ...store.inspect() };
244
+ },
245
+ },
246
+ {
247
+ name: 'operator_context_delete',
248
+ description: 'Delete a specific item from the operator context profile.',
249
+ auth: 'write',
250
+ handler: async (params) => {
251
+ const store = runtime.operatorContextStore;
252
+ if (!store) {
253
+ return { deleted: false, message: 'Operator context not configured' };
254
+ }
255
+ const type = params.type;
256
+ const id = params.id;
257
+ const deleted = store.deleteItem(type, id);
258
+ if (deleted) {
259
+ return { deleted: true, type, id };
260
+ }
261
+ return { deleted: false, message: 'Item not found' };
262
+ },
263
+ },
203
264
  // ─── Diagnostics ─────────────────────────────────────────────────
204
265
  {
205
266
  name: 'admin_diagnostic',
@@ -284,6 +345,45 @@ export function createAdminOps(runtime) {
284
345
  detail: err instanceof Error ? err.message : String(err),
285
346
  });
286
347
  }
348
+ // 7. Skills
349
+ try {
350
+ const agentDir = runtime.config.agentDir;
351
+ const skillsDirs = agentDir ? [join(agentDir, 'skills')] : [];
352
+ const agentSkills = discoverSkills(skillsDirs);
353
+ const installedPacks = packInstaller.list();
354
+ const packSkillCount = installedPacks.reduce((sum, p) => sum + p.skills.length, 0);
355
+ const totalSkills = agentSkills.length + packSkillCount;
356
+ const skillStatus = totalSkills > 0 ? 'ok' : agentDir ? 'warn' : 'ok';
357
+ checks.push({
358
+ name: 'skills',
359
+ status: skillStatus,
360
+ detail: `${totalSkills} skills (${agentSkills.length} agent, ${packSkillCount} pack)`,
361
+ });
362
+ }
363
+ catch (err) {
364
+ checks.push({
365
+ name: 'skills',
366
+ status: 'error',
367
+ detail: err instanceof Error ? err.message : String(err),
368
+ });
369
+ }
370
+ // 8. Hooks
371
+ try {
372
+ const installedPacks = packInstaller.list();
373
+ const packHookCount = installedPacks.reduce((sum, p) => sum + p.hooks.length, 0);
374
+ checks.push({
375
+ name: 'hooks',
376
+ status: 'ok',
377
+ detail: `${packHookCount} hooks from ${installedPacks.length} packs`,
378
+ });
379
+ }
380
+ catch (err) {
381
+ checks.push({
382
+ name: 'hooks',
383
+ status: 'error',
384
+ detail: err instanceof Error ? err.message : String(err),
385
+ });
386
+ }
287
387
  const errorCount = checks.filter((c) => c.status === 'error').length;
288
388
  const warnCount = checks.filter((c) => c.status === 'warn').length;
289
389
  const overall = errorCount > 0 ? 'unhealthy' : warnCount > 0 ? 'degraded' : 'healthy';
@@ -306,6 +406,21 @@ function formatBytes(bytes) {
306
406
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
307
407
  return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
308
408
  }
409
+ /**
410
+ * Build a flat routing map from ENGINE_MODULE_MANIFEST intentSignals.
411
+ * Keys are natural-language phrases, values are `{suffix}.{op}` paths.
412
+ */
413
+ function buildRoutingHints() {
414
+ const routing = {};
415
+ for (const mod of ENGINE_MODULE_MANIFEST) {
416
+ if (mod.intentSignals) {
417
+ for (const [phrase, op] of Object.entries(mod.intentSignals)) {
418
+ routing[phrase] = `${mod.suffix}.${op}`;
419
+ }
420
+ }
421
+ }
422
+ return routing;
423
+ }
309
424
  function formatUptime(seconds) {
310
425
  if (seconds < 60)
311
426
  return `${seconds}s`;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-ops.js","sourceRoot":"","sources":["../../src/runtime/admin-ops.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,qCAAqC;QACrC,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzE,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAqB;IAClD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAExE,OAAO;QACL,oEAAoE;QACpE;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,8DAA8D;YAC3E,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAE1C,OAAO;oBACL,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACtF,GAAG,EAAE,YAAY;oBACjB,KAAK,EAAE;wBACL,cAAc,EAAE,UAAU,CAAC,cAAc;wBACzC,aAAa,EAAE,UAAU,CAAC,aAAa;qBACxC;oBACD,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE;iBACpD,CAAC;YACJ,CAAC;SACF;QAED,kEAAkE;QAClE;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACT,oFAAoF;YACtF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACvC,CAAC;SACF;QAED,oEAAoE;QACpE;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;gBACxC,sEAAsE;gBACtE,kEAAkE;gBAClE,MAAM,MAAM,GAAG,MAAM,CAAC,OAET,CAAC;gBACd,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO;4BACL,KAAK,EAAE,MAAM,CAAC,MAAM;4BACpB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gCACvB,IAAI,EAAE,EAAE,CAAC,IAAI;gCACb,WAAW,EAAE,EAAE,CAAC,WAAW;gCAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;6BACd,CAAC,CAAC;yBACJ,CAAC;oBACJ,CAAC;oBACD,6DAA6D;oBAC7D,MAAM,OAAO,GAA6B,EAAE,CAAC;oBAC7C,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;wBACxB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;4BAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;wBAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAChC,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,MAAM,CAAC,MAAM;wBACpB,GAAG,EAAE,OAAO;qBACb,CAAC;gBACJ,CAAC;gBACD,qCAAqC;gBACrC,OAAO;oBACL,KAAK,EAAE,CAAC;oBACR,GAAG,EAAE;wBACH,KAAK,EAAE;4BACL,cAAc;4BACd,iBAAiB;4BACjB,cAAc;4BACd,kBAAkB;4BAClB,cAAc;4BACd,eAAe;4BACf,mBAAmB;4BACnB,kBAAkB;yBACnB;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gEAAgE;YAC7E,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC5E,OAAO;oBACL,OAAO;oBACP,SAAS,EAAE,SAAS,IAAI,IAAI;oBAC5B,SAAS,EAAE,SAAS,IAAI,IAAI;oBAC5B,OAAO,EAAE,OAAO,IAAI,IAAI;oBACxB,QAAQ,EAAE,QAAQ,IAAI,MAAM;iBAC7B,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,kFAAkF;YACpF,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;gBACxC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;gBACvE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;oBACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBACxE,CAAC;YACH,CAAC;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;gBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBAC9C,OAAO;oBACL,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;oBACpD,QAAQ;oBACR,SAAS;oBACT,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC;iBACrC,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,oDAAoD;YACjE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO;oBACL,IAAI,EAAE,cAAc,EAAE;oBACtB,IAAI,EAAE,OAAO,CAAC,OAAO;oBACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB,CAAC;YACJ,CAAC;SACF;QAED,oEAAoE;QACpE;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,wEAAwE;YACrF,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAE1B,OAAO;oBACL,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,mBAAmB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,cAAc;iBACrD,CAAC;YACJ,CAAC;SACF;QAED,oEAAoE;QACpE;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAA6E,EAAE,CAAC;gBAE5F,wBAAwB;gBACxB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,mBAAmB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,UAAU;qBAC7F,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACzD,CAAC,CAAC;gBACL,CAAC;gBAED,sBAAsB;gBACtB,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpC,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,kBAAkB;wBACxB,MAAM;wBACN,MAAM,EAAE,GAAG,UAAU,CAAC,cAAc,WAAW,UAAU,CAAC,aAAa,mBAAmB;qBAC3F,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACzD,CAAC,CAAC;gBACL,CAAC;gBAED,wBAAwB;gBACxB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,eAAe,QAAQ,CAAC,QAAQ,WAAW;qBACzE,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACzD,CAAC,CAAC;gBACL,CAAC;gBAED,mBAAmB;gBACnB,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;oBACxC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB;iBACnE,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;oBAC3C,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB;iBACtE,CAAC,CAAC;gBAEH,aAAa;gBACb,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;wBAClD,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB;qBACtE,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACzD,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;gBACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;gBACnE,MAAM,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEtF,OAAO;oBACL,OAAO;oBACP,MAAM;oBACN,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,GAAG,UAAU,GAAG,SAAS,QAAQ,SAAS,UAAU,UAAU,QAAQ;iBACzH,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,KAAK,IAAI,GAAG,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;IACvB,OAAO,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"admin-ops.js","sourceRoot":"","sources":["../../src/runtime/admin-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-setup-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-setup-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwL/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAgbzE"}
1
+ {"version":3,"file":"admin-setup-ops.d.ts","sourceRoot":"","sources":["../../src/runtime/admin-setup-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4M/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAgbzE"}
@@ -74,6 +74,16 @@ function discoverHookifyFiles(dir) {
74
74
  .filter((f) => f.startsWith('hookify.') && f.endsWith('.local.md'))
75
75
  .map((f) => ({ name: f, path: join(dir, f) }));
76
76
  }
77
+ /**
78
+ * Build a shell command that checks if the agent's MCP server is configured
79
+ * in the current project's .mcp.json before emitting an instruction.
80
+ * This ensures hooks are globally safe — they no-op in projects without the agent.
81
+ */
82
+ function buildConditionalHookCommand(agentId, instruction) {
83
+ // Escape single quotes in instruction for safe shell embedding
84
+ const escaped = instruction.replace(/'/g, "'\\''");
85
+ return `root=$(git rev-parse --show-toplevel 2>/dev/null || echo "."); if grep -q '"${agentId}"' "$root/.mcp.json" 2>/dev/null; then echo '${escaped}'; fi`;
86
+ }
77
87
  /** Default lifecycle hooks for any Soleri agent */
78
88
  function getDefaultLifecycleHooks(agentId) {
79
89
  const marker = `mcp__${agentId}__${agentId}_`;
@@ -83,9 +93,9 @@ function getDefaultLifecycleHooks(agentId) {
83
93
  matcher: '',
84
94
  hooks: [
85
95
  {
86
- type: 'prompt',
87
- prompt: `Call ${marker}admin op:admin_health to verify agent is ready. Do not show the result unless there are errors.`,
88
- timeout: 15000,
96
+ type: 'command',
97
+ command: buildConditionalHookCommand(agentId, `Call ${marker}admin op:admin_health to verify agent is ready. Do not show the result unless there are errors.`),
98
+ timeout: 5000,
89
99
  },
90
100
  ],
91
101
  },
@@ -95,9 +105,9 @@ function getDefaultLifecycleHooks(agentId) {
95
105
  matcher: '',
96
106
  hooks: [
97
107
  {
98
- type: 'agent',
99
- prompt: `Call ${marker}memory op:session_capture with a brief summary of the current session before context is compacted.`,
100
- timeout: 30000,
108
+ type: 'command',
109
+ command: buildConditionalHookCommand(agentId, `First, call ${marker}plan op:plan_close_stale params:{ olderThanMs: 0 } to auto-close any plans still in non-terminal states. Then call ${marker}memory op:session_capture with a brief summary of the current session before context is compacted. Include any auto-closed plan IDs in the summary.`),
110
+ timeout: 10000,
101
111
  },
102
112
  ],
103
113
  },
@@ -107,9 +117,9 @@ function getDefaultLifecycleHooks(agentId) {
107
117
  matcher: '',
108
118
  hooks: [
109
119
  {
110
- type: 'agent',
111
- prompt: `Call ${marker}memory op:session_capture with a structured summary of what was accomplished, then check ${marker}loop op:loop_status — if a loop is active, remind the user.`,
112
- timeout: 30000,
120
+ type: 'command',
121
+ command: buildConditionalHookCommand(agentId, `First, call ${marker}plan op:plan_close_stale params:{ olderThanMs: 0 } to auto-close any plans still in non-terminal states. Then call ${marker}memory op:session_capture with a structured summary of what was accomplished, including any auto-closed plan IDs. Finally check ${marker}loop op:loop_status — if a loop is active, remind the user.`),
122
+ timeout: 10000,
113
123
  },
114
124
  ],
115
125
  },