@soleri/forge 5.1.1 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/patching.js CHANGED
@@ -85,11 +85,11 @@ function patchIndexTsV4(source, newDomains, hasBrain) {
85
85
  * Fallback anchor: line containing `## Intent Detection` (older agents without memory/brain rows)
86
86
  */
87
87
  export function patchClaudeMdContent(source, agentId, newDomains) {
88
- const facadeId = agentId.replace(/-/g, '_');
88
+ const toolPrefix = agentId; // keep hyphens — matches MCP tool registration
89
89
  const bt = '`';
90
90
  // Filter out domains whose rows already exist (idempotent)
91
91
  const domainsToAdd = newDomains.filter((d) => {
92
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
92
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
93
93
  return !source.includes(`${toolName}`);
94
94
  });
95
95
  if (domainsToAdd.length === 0)
@@ -110,7 +110,7 @@ export function patchClaudeMdContent(source, agentId, newDomains) {
110
110
  }
111
111
  }
112
112
  const newRows = domainsToAdd.flatMap((d) => {
113
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
113
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
114
114
  return [
115
115
  ` '| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |',`,
116
116
  ` '| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |',`,
@@ -1 +1 @@
1
- {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,UAAoB,EACpB,SAAmB;IAEnB,sEAAsE;IACtE,MAAM,SAAS,GAAG,6DAA6D,CAAC;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAExC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5F,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAE7C,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAExF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,OAAO,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,UAAoB,EAAE,QAAiB;IAC7E,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC;IAErB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,sCAAsC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,MAAM,UAAU,GAAG,eAAe;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1C,OAAO,YAAY,EAAE,sBAAsB,CAAC,cAAc,CAAC;QAC7D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,2BAA2B,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,MAAM,YAAY,GAAG,iBAAiB;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,EAAE,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,OAAO,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;QAC/B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAe,EACf,UAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,GAAG,CAAC;IAEf,2DAA2D;IAC3D,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE7C,2DAA2D;IAC3D,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,2EAA2E;QAC3E,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,2DAA2D;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,YAAY,GAAG,EAAE,EAAE,CAAC;YACzD,gDAAgD;YAChD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACzD,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,UAAU,CAAC,eAAe,EAAE,GAAG,QAAQ,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;YAC3E,iBAAiB,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;YACnE,kBAAkB,CAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;SACtE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC;SACL,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"patching.js","sourceRoot":"","sources":["../src/patching.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@
6
6
  * Uses array-joined pattern because generated code contains template literals.
7
7
  */
8
8
  export function generateActivate(config) {
9
- const facadeId = config.id.replace(/-/g, '_');
9
+ const toolPrefix = config.id; // keep hyphens — matches MCP tool registration
10
10
  const _marker = `${config.id}:mode`;
11
11
  // Build tool recommendations from config domains
12
12
  const toolRecLines = [];
13
13
  for (const d of config.domains) {
14
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
14
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
15
15
  toolRecLines.push(` { intent: 'search ${d}', facade: '${toolName}', op: 'search' },`);
16
16
  toolRecLines.push(` { intent: '${d} patterns', facade: '${toolName}', op: 'get_patterns' },`);
17
17
  toolRecLines.push(` { intent: 'capture ${d}', facade: '${toolName}', op: 'capture' },`);
@@ -107,9 +107,9 @@ export function generateActivate(config) {
107
107
  guidelineLines,
108
108
  ' ],',
109
109
  ' tool_recommendations: [',
110
- ` { intent: 'health check', facade: '${facadeId}_core', op: 'health' },`,
111
- ` { intent: 'search all', facade: '${facadeId}_core', op: 'search' },`,
112
- ` { intent: 'vault stats', facade: '${facadeId}_core', op: 'vault_stats' },`,
110
+ ` { intent: 'health check', facade: '${toolPrefix}_core', op: 'health' },`,
111
+ ` { intent: 'search all', facade: '${toolPrefix}_core', op: 'search' },`,
112
+ ` { intent: 'vault stats', facade: '${toolPrefix}_core', op: 'vault_stats' },`,
113
113
  ...toolRecLines,
114
114
  ' ],',
115
115
  ` session_instruction: 'You are now ' + PERSONA.name + ', a ' + PERSONA.role + '. Stay in character for the ENTIRE session. ' +`,
@@ -1 +1 @@
1
- {"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/templates/activate.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC;IAEpC,iDAAiD;IACjD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACvD,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,eAAe,QAAQ,oBAAoB,CAAC,CAAC;QAC3F,YAAY,CAAC,IAAI,CACf,oBAAoB,CAAC,wBAAwB,QAAQ,0BAA0B,CAChF,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,4BAA4B,CAAC,eAAe,QAAQ,qBAAqB,CAAC,CAAC;IAC/F,CAAC;IAED,qDAAqD;IACrD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,UAAU,OAAO,IAAI,CAAC;IAC/B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,mCAAmC;QACnC,oCAAoC;QACpC,mDAAmD;QACnD,yDAAyD;QACzD,2DAA2D;QAC3D,EAAE;QACF,qCAAqC;QACrC,uBAAuB;QACvB,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,0BAA0B;QAC1B,uBAAuB;QACvB,MAAM;QACN,yBAAyB;QACzB,gFAAgF;QAChF,gCAAgC;QAChC,mBAAmB;QACnB,kCAAkC;QAClC,yCAAyC;QACzC,iCAAiC;QACjC,gCAAgC;QAChC,MAAM;QACN,gGAAgG;QAChG,yBAAyB;QACzB,GAAG;QACH,EAAE;QACF,uCAAuC;QACvC,yBAAyB;QACzB,oBAAoB;QACpB,GAAG;QACH,EAAE;QACF,KAAK;QACL,eAAe,MAAM,CAAC,IAAI,0DAA0D;QACpF,KAAK;QACL,yGAAyG;QACzG,kEAAkE;QAClE,2DAA2D;QAC3D,mEAAmE;QACnE,6DAA6D;QAC7D,kEAAkE;QAClE,EAAE;QACF,yBAAyB;QACzB,gCAAgC;QAChC,mDAAmD;QACnD,EAAE;QACF,+CAA+C;QAC/C,mCAAmC;QACnC,uDAAuD;QACvD,4IAA4I;QAC5I,yCAAyC;QACzC,sIAAsI;QACtI,KAAK;QACL,2BAA2B;QAC3B,+FAA+F;QAC/F,KAAK;QACL,iCAAiC;QACjC,gCAAgC,MAAM,CAAC,IAAI,0BAA0B;QACrE,KAAK;QACL,EAAE;QACF,gCAAgC;QAChC,yEAAyE;QACzE,eAAe;QACf,6BAA6B;QAC7B,4BAA4B;QAC5B,wEAAwE;QACxE,aAAa;QACb,oCAAoC;QACpC,iGAAiG;QACjG,KAAK;QACL,EAAE;QACF,YAAY;QACZ,sBAAsB;QACtB,gBAAgB;QAChB,2BAA2B;QAC3B,2BAA2B;QAC3B,yCAAyC;QACzC,mCAAmC;QACnC,QAAQ;QACR,mBAAmB;QACnB,cAAc;QACd,QAAQ;QACR,6BAA6B;QAC7B,4CAA4C,QAAQ,yBAAyB;QAC7E,0CAA0C,QAAQ,yBAAyB;QAC3E,2CAA2C,QAAQ,8BAA8B;QACjF,GAAG,YAAY;QACf,QAAQ;QACR,mIAAmI;QACnI,oHAAoH;QACpH,qBAAqB;QACrB,6CAA6C;QAC7C,0DAA0D;QAC1D,2CAA2C;QAC3C,8CAA8C;QAC9C,QAAQ;QACR,sCAAsC;QACtC,4BAA4B;QAC5B,MAAM;QACN,GAAG;QACH,EAAE;QACF,KAAK;QACL,iBAAiB,MAAM,CAAC,IAAI,mCAAmC;QAC/D,KAAK;QACL,yDAAyD;QACzD,YAAY;QACZ,wBAAwB;QACxB,mGAAmG;QACnG,MAAM;QACN,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/templates/activate.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,+CAA+C;IAC7E,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC;IAEpC,iDAAiD;IACjD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACzD,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,eAAe,QAAQ,oBAAoB,CAAC,CAAC;QAC3F,YAAY,CAAC,IAAI,CACf,oBAAoB,CAAC,wBAAwB,QAAQ,0BAA0B,CAChF,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,4BAA4B,CAAC,eAAe,QAAQ,qBAAqB,CAAC,CAAC;IAC/F,CAAC;IAED,qDAAqD;IACrD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,UAAU,OAAO,IAAI,CAAC;IAC/B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;QACL,mCAAmC;QACnC,oCAAoC;QACpC,mDAAmD;QACnD,yDAAyD;QACzD,2DAA2D;QAC3D,EAAE;QACF,qCAAqC;QACrC,uBAAuB;QACvB,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,0BAA0B;QAC1B,uBAAuB;QACvB,MAAM;QACN,yBAAyB;QACzB,gFAAgF;QAChF,gCAAgC;QAChC,mBAAmB;QACnB,kCAAkC;QAClC,yCAAyC;QACzC,iCAAiC;QACjC,gCAAgC;QAChC,MAAM;QACN,gGAAgG;QAChG,yBAAyB;QACzB,GAAG;QACH,EAAE;QACF,uCAAuC;QACvC,yBAAyB;QACzB,oBAAoB;QACpB,GAAG;QACH,EAAE;QACF,KAAK;QACL,eAAe,MAAM,CAAC,IAAI,0DAA0D;QACpF,KAAK;QACL,yGAAyG;QACzG,kEAAkE;QAClE,2DAA2D;QAC3D,mEAAmE;QACnE,6DAA6D;QAC7D,kEAAkE;QAClE,EAAE;QACF,yBAAyB;QACzB,gCAAgC;QAChC,mDAAmD;QACnD,EAAE;QACF,+CAA+C;QAC/C,mCAAmC;QACnC,uDAAuD;QACvD,4IAA4I;QAC5I,yCAAyC;QACzC,sIAAsI;QACtI,KAAK;QACL,2BAA2B;QAC3B,+FAA+F;QAC/F,KAAK;QACL,iCAAiC;QACjC,gCAAgC,MAAM,CAAC,IAAI,0BAA0B;QACrE,KAAK;QACL,EAAE;QACF,gCAAgC;QAChC,yEAAyE;QACzE,eAAe;QACf,6BAA6B;QAC7B,4BAA4B;QAC5B,wEAAwE;QACxE,aAAa;QACb,oCAAoC;QACpC,iGAAiG;QACjG,KAAK;QACL,EAAE;QACF,YAAY;QACZ,sBAAsB;QACtB,gBAAgB;QAChB,2BAA2B;QAC3B,2BAA2B;QAC3B,yCAAyC;QACzC,mCAAmC;QACnC,QAAQ;QACR,mBAAmB;QACnB,cAAc;QACd,QAAQ;QACR,6BAA6B;QAC7B,4CAA4C,UAAU,yBAAyB;QAC/E,0CAA0C,UAAU,yBAAyB;QAC7E,2CAA2C,UAAU,8BAA8B;QACnF,GAAG,YAAY;QACf,QAAQ;QACR,mIAAmI;QACnI,oHAAoH;QACpH,qBAAqB;QACrB,6CAA6C;QAC7C,0DAA0D;QAC1D,2CAA2C;QAC3C,8CAA8C;QAC9C,QAAQ;QACR,sCAAsC;QACtC,4BAA4B;QAC5B,MAAM;QACN,GAAG;QACH,EAAE;QACF,KAAK;QACL,iBAAiB,MAAM,CAAC,IAAI,mCAAmC;QAC/D,KAAK;QACL,yDAAyD;QACzD,YAAY;QACZ,wBAAwB;QACxB,mGAAmG;QACnG,MAAM;QACN,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * backtick/template-literal escaping nightmares entirely.
9
9
  */
10
10
  export function generateClaudeMdTemplate(config) {
11
- const facadeId = config.id.replace(/-/g, '_');
11
+ const toolPrefix = config.id; // keep hyphens — matches MCP tool registration
12
12
  const marker = `${config.id}:mode`;
13
13
  const bt = '`'; // backtick — keeps template clean
14
14
  // Build the raw markdown lines (plain text, no escaping needed)
@@ -19,34 +19,34 @@ export function generateClaudeMdTemplate(config) {
19
19
  '',
20
20
  `## ${config.name} Integration`,
21
21
  '',
22
- `**Activate:** "Hello, ${config.name}!" \u2192 ${bt}${facadeId}_core op:activate params:{ projectPath: "." }${bt}`,
23
- `**Deactivate:** "Goodbye, ${config.name}!" \u2192 ${bt}${facadeId}_core op:activate params:{ deactivate: true }${bt}`,
22
+ `**Activate:** "Hello, ${config.name}!" \u2192 ${bt}${toolPrefix}_core op:activate params:{ projectPath: "." }${bt}`,
23
+ `**Deactivate:** "Goodbye, ${config.name}!" \u2192 ${bt}${toolPrefix}_core op:activate params:{ deactivate: true }${bt}`,
24
24
  '',
25
25
  'On activation, adopt the returned persona. Stay in character until deactivated.',
26
26
  '',
27
27
  '## Session Start',
28
28
  '',
29
- `On every new session: ${bt}${facadeId}_core op:register params:{ projectPath: "." }${bt}`,
29
+ `On every new session: ${bt}${toolPrefix}_core op:register params:{ projectPath: "." }${bt}`,
30
30
  '',
31
31
  '## Facades',
32
32
  '',
33
33
  '| Need | Facade | Op |',
34
34
  '|------|--------|----|',
35
- `| Health check | ${bt}${facadeId}_core${bt} | ${bt}health${bt} |`,
36
- `| Search all | ${bt}${facadeId}_core${bt} | ${bt}search${bt} |`,
37
- `| Vault stats | ${bt}${facadeId}_core${bt} | ${bt}vault_stats${bt} |`,
38
- `| Identity | ${bt}${facadeId}_core${bt} | ${bt}identity${bt} |`,
35
+ `| Health check | ${bt}${toolPrefix}_core${bt} | ${bt}health${bt} |`,
36
+ `| Search all | ${bt}${toolPrefix}_core${bt} | ${bt}search${bt} |`,
37
+ `| Vault stats | ${bt}${toolPrefix}_core${bt} | ${bt}vault_stats${bt} |`,
38
+ `| Identity | ${bt}${toolPrefix}_core${bt} | ${bt}identity${bt} |`,
39
39
  ];
40
40
  // Domain-specific facade rows
41
41
  for (const d of config.domains) {
42
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
42
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
43
43
  mdLines.push(`| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |`);
44
44
  mdLines.push(`| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |`);
45
45
  mdLines.push(`| Capture ${d} | ${bt}${toolName}${bt} | ${bt}capture${bt} |`);
46
46
  }
47
47
  // Memory + Session + Export + Brain + Planning rows
48
- mdLines.push(`| Memory search | ${bt}${facadeId}_core${bt} | ${bt}memory_search${bt} |`, `| Memory capture | ${bt}${facadeId}_core${bt} | ${bt}memory_capture${bt} |`, `| Memory list | ${bt}${facadeId}_core${bt} | ${bt}memory_list${bt} |`, `| Session capture | ${bt}${facadeId}_core${bt} | ${bt}session_capture${bt} |`, `| Export knowledge | ${bt}${facadeId}_core${bt} | ${bt}export${bt} |`, `| Record feedback | ${bt}${facadeId}_core${bt} | ${bt}record_feedback${bt} |`, `| Rebuild vocabulary | ${bt}${facadeId}_core${bt} | ${bt}rebuild_vocabulary${bt} |`, `| Brain stats | ${bt}${facadeId}_core${bt} | ${bt}brain_stats${bt} |`, `| LLM status | ${bt}${facadeId}_core${bt} | ${bt}llm_status${bt} |`, `| Create plan | ${bt}${facadeId}_core${bt} | ${bt}create_plan${bt} |`, `| Get plan | ${bt}${facadeId}_core${bt} | ${bt}get_plan${bt} |`, `| Approve plan | ${bt}${facadeId}_core${bt} | ${bt}approve_plan${bt} |`, `| Update task | ${bt}${facadeId}_core${bt} | ${bt}update_task${bt} |`, `| Complete plan | ${bt}${facadeId}_core${bt} | ${bt}complete_plan${bt} |`, `| Route intent | ${bt}${facadeId}_core${bt} | ${bt}route_intent${bt} |`, `| Morph mode | ${bt}${facadeId}_core${bt} | ${bt}morph${bt} |`, `| Get behavior rules | ${bt}${facadeId}_core${bt} | ${bt}get_behavior_rules${bt} |`, `| Get identity | ${bt}${facadeId}_core${bt} | ${bt}get_identity${bt} |`, `| Update identity | ${bt}${facadeId}_core${bt} | ${bt}update_identity${bt} |`, `| Add guideline | ${bt}${facadeId}_core${bt} | ${bt}add_guideline${bt} |`, `| Remove guideline | ${bt}${facadeId}_core${bt} | ${bt}remove_guideline${bt} |`, `| Rollback identity | ${bt}${facadeId}_core${bt} | ${bt}rollback_identity${bt} |`);
49
- mdLines.push('', '## Auto-Routing', '', 'A UserPromptSubmit hook auto-classifies every prompt via keyword matching.', `When you see a ${bt}[MODE-NAME]${bt} indicator in the system context:`, '', `1. Call ${bt}${facadeId}_core op:route_intent params:{ prompt: "<user message>" }${bt} to get full behavior rules`, '2. Follow the returned behavior rules for the detected mode', '3. Briefly acknowledge mode changes in your response (e.g., "Switching to FIX-MODE")', '', 'Available modes: FIX-MODE, BUILD-MODE, IMPROVE-MODE, DELIVER-MODE, REVIEW-MODE, PLAN-MODE, DESIGN-MODE, VALIDATE-MODE, EXPLORE-MODE, GENERAL-MODE.', 'GENERAL-MODE means the hook detected a work task but could not classify a specific mode — route_intent will refine it.', '', '## Intent Detection', '', '| Signal | Intent |', '|--------|--------|', '| Problem described ("broken", "janky", "weird") | FIX |', '| Need expressed ("I need", "we should have") | BUILD |', '| Quality questioned ("is this right?") | REVIEW |', '| Advice sought ("how should I", "best way") | PLAN |', '| Improvement requested ("make it faster") | IMPROVE |', '', '## Knowledge Protocol', '', 'When seeking guidance: vault before codebase before web.', '', `1. Search vault \u2014 ${bt}${facadeId}_core op:search${bt}`, '2. Codebase \u2014 only if vault has nothing', '3. Web \u2014 last resort', '', '## Knowledge Capture', '', 'When learning something that should persist, use the domain capture ops.', '', '## Session Capture', '', 'A PreCompact hook is configured to call `session_capture` before context compaction.', 'This automatically preserves session summaries as memories for future sessions.', `To manually capture: ${bt}${facadeId}_core op:session_capture params:{ summary: "..." }${bt}`, '', '## Planning', '', 'For multi-step tasks, use the planning system:', `1. Create: ${bt}${facadeId}_core op:create_plan params:{ objective: "...", scope: "...", tasks: [...] }${bt}`, `2. Approve: ${bt}${facadeId}_core op:approve_plan params:{ planId: "...", startExecution: true }${bt}`, `3. Track: ${bt}${facadeId}_core op:update_task params:{ planId: "...", taskId: "...", status: "completed" }${bt}`, `4. Complete: ${bt}${facadeId}_core op:complete_plan params:{ planId: "..." }${bt}`, '', 'Check activation response for recovered plans in `executing` state — remind the user.', '', `<!-- /${marker} -->`);
48
+ mdLines.push(`| Memory search | ${bt}${toolPrefix}_core${bt} | ${bt}memory_search${bt} |`, `| Memory capture | ${bt}${toolPrefix}_core${bt} | ${bt}memory_capture${bt} |`, `| Memory list | ${bt}${toolPrefix}_core${bt} | ${bt}memory_list${bt} |`, `| Session capture | ${bt}${toolPrefix}_core${bt} | ${bt}session_capture${bt} |`, `| Export knowledge | ${bt}${toolPrefix}_core${bt} | ${bt}export${bt} |`, `| Record feedback | ${bt}${toolPrefix}_core${bt} | ${bt}record_feedback${bt} |`, `| Rebuild vocabulary | ${bt}${toolPrefix}_core${bt} | ${bt}rebuild_vocabulary${bt} |`, `| Brain stats | ${bt}${toolPrefix}_core${bt} | ${bt}brain_stats${bt} |`, `| LLM status | ${bt}${toolPrefix}_core${bt} | ${bt}llm_status${bt} |`, `| Create plan | ${bt}${toolPrefix}_core${bt} | ${bt}create_plan${bt} |`, `| Get plan | ${bt}${toolPrefix}_core${bt} | ${bt}get_plan${bt} |`, `| Approve plan | ${bt}${toolPrefix}_core${bt} | ${bt}approve_plan${bt} |`, `| Update task | ${bt}${toolPrefix}_core${bt} | ${bt}update_task${bt} |`, `| Complete plan | ${bt}${toolPrefix}_core${bt} | ${bt}complete_plan${bt} |`, `| Route intent | ${bt}${toolPrefix}_core${bt} | ${bt}route_intent${bt} |`, `| Morph mode | ${bt}${toolPrefix}_core${bt} | ${bt}morph${bt} |`, `| Get behavior rules | ${bt}${toolPrefix}_core${bt} | ${bt}get_behavior_rules${bt} |`, `| Get identity | ${bt}${toolPrefix}_core${bt} | ${bt}get_identity${bt} |`, `| Update identity | ${bt}${toolPrefix}_core${bt} | ${bt}update_identity${bt} |`, `| Add guideline | ${bt}${toolPrefix}_core${bt} | ${bt}add_guideline${bt} |`, `| Remove guideline | ${bt}${toolPrefix}_core${bt} | ${bt}remove_guideline${bt} |`, `| Rollback identity | ${bt}${toolPrefix}_core${bt} | ${bt}rollback_identity${bt} |`);
49
+ mdLines.push('', '## Auto-Routing', '', 'A UserPromptSubmit hook auto-classifies every prompt via keyword matching.', `When you see a ${bt}[MODE-NAME]${bt} indicator in the system context:`, '', `1. Call ${bt}${toolPrefix}_core op:route_intent params:{ prompt: "<user message>" }${bt} to get full behavior rules`, '2. Follow the returned behavior rules for the detected mode', '3. Briefly acknowledge mode changes in your response (e.g., "Switching to FIX-MODE")', '', 'Available modes: FIX-MODE, BUILD-MODE, IMPROVE-MODE, DELIVER-MODE, REVIEW-MODE, PLAN-MODE, DESIGN-MODE, VALIDATE-MODE, EXPLORE-MODE, GENERAL-MODE.', 'GENERAL-MODE means the hook detected a work task but could not classify a specific mode — route_intent will refine it.', '', '## Intent Detection', '', '| Signal | Intent |', '|--------|--------|', '| Problem described ("broken", "janky", "weird") | FIX |', '| Need expressed ("I need", "we should have") | BUILD |', '| Quality questioned ("is this right?") | REVIEW |', '| Advice sought ("how should I", "best way") | PLAN |', '| Improvement requested ("make it faster") | IMPROVE |', '', '## Knowledge Protocol', '', 'When seeking guidance: vault before codebase before web.', '', `1. Search vault \u2014 ${bt}${toolPrefix}_core op:search${bt}`, '2. Codebase \u2014 only if vault has nothing', '3. Web \u2014 last resort', '', '## Knowledge Capture', '', 'When learning something that should persist, use the domain capture ops.', '', '## Session Capture', '', 'A PreCompact hook is configured to call `session_capture` before context compaction.', 'This automatically preserves session summaries as memories for future sessions.', `To manually capture: ${bt}${toolPrefix}_core op:session_capture params:{ summary: "..." }${bt}`, '', '## Planning', '', 'For multi-step tasks, use the planning system:', `1. Create: ${bt}${toolPrefix}_core op:create_plan params:{ objective: "...", scope: "...", tasks: [...] }${bt}`, `2. Approve: ${bt}${toolPrefix}_core op:approve_plan params:{ planId: "...", startExecution: true }${bt}`, `3. Track: ${bt}${toolPrefix}_core op:update_task params:{ planId: "...", taskId: "...", status: "completed" }${bt}`, `4. Complete: ${bt}${toolPrefix}_core op:complete_plan params:{ planId: "..." }${bt}`, '', 'Check activation response for recovered plans in `executing` state — remind the user.', '', `<!-- /${marker} -->`);
50
50
  // Escape each markdown line for use in a single-quoted TS string literal
51
51
  const quotedLines = mdLines.map((line) => {
52
52
  const escaped = line.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-template.js","sourceRoot":"","sources":["../../src/templates/claude-md-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-template.js","sourceRoot":"","sources":["../../src/templates/claude-md-template.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ if [ ! -f "$SETTINGS_FILE" ]; then
72
72
  "PreCompact": [
73
73
  {
74
74
  "type": "prompt",
75
- "prompt": "Before context is compacted, capture a session summary by calling ${config.id.replace(/-/g, '_')}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used."
75
+ "prompt": "Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used."
76
76
  }
77
77
  ]
78
78
  }
@@ -91,7 +91,7 @@ else
91
91
  if (!settings.hooks.PreCompact) settings.hooks.PreCompact = [];
92
92
  settings.hooks.PreCompact.push({
93
93
  type: 'prompt',
94
- prompt: 'Before context is compacted, capture a session summary by calling ${config.id.replace(/-/g, '_')}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used.'
94
+ prompt: 'Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used.'
95
95
  });
96
96
  fs.writeFileSync('$SETTINGS_FILE', JSON.stringify(settings, null, 2) + '\\n');
97
97
  "
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO;;;;cAIK,MAAM,CAAC,EAAE;;YAEX,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;mBAmBJ,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;gCAeE,MAAM,CAAC,IAAI;;;;;;;;oBAQvB,MAAM,CAAC,IAAI;;;wBAGP,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;uFAkBoD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;;;;;;;;;;;;;;;;qFAmB9B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;;;;;;;;;;;;4BAarF,MAAM,CAAC,IAAI;;QAE/B,MAAM,CAAC,IAAI;CAClB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/templates/setup-script.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO;;;;cAIK,MAAM,CAAC,EAAE;;YAEX,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;mBAmBJ,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;gCAeE,MAAM,CAAC,IAAI;;;;;;;;oBAQvB,MAAM,CAAC,IAAI;;;wBAGP,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;uFAkBoD,MAAM,CAAC,EAAE;;;;;;;;;;;;;;;;;;;qFAmBX,MAAM,CAAC,EAAE;;;;;;;;;;;;;4BAalE,MAAM,CAAC,IAAI;;QAE/B,MAAM,CAAC,IAAI;CAClB,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/forge",
3
- "version": "5.1.1",
3
+ "version": "5.1.2",
4
4
  "description": "Scaffold AI agents that learn, remember, and grow with you.",
5
5
  "keywords": [
6
6
  "agent",
@@ -86,11 +86,11 @@ main();
86
86
  const content = `export function getClaudeMdContent(): string {
87
87
  return [
88
88
  '# Test Agent',
89
- '| existing-domain patterns | \`test_agent_existing_domain\` | \`get_patterns\` |',
90
- '| Search existing-domain | \`test_agent_existing_domain\` | \`search\` |',
91
- '| Capture existing-domain | \`test_agent_existing_domain\` | \`capture\` |',
92
- '| Memory search | \`test_agent_core\` | \`memory_search\` |',
93
- '| Memory capture | \`test_agent_core\` | \`memory_capture\` |',
89
+ '| existing-domain patterns | \`test-agent_existing_domain\` | \`get_patterns\` |',
90
+ '| Search existing-domain | \`test-agent_existing_domain\` | \`search\` |',
91
+ '| Capture existing-domain | \`test-agent_existing_domain\` | \`capture\` |',
92
+ '| Memory search | \`test-agent_core\` | \`memory_search\` |',
93
+ '| Memory capture | \`test-agent_core\` | \`memory_capture\` |',
94
94
  ].join('\\n');
95
95
  }
96
96
  `;
@@ -478,7 +478,7 @@ import { Vault } from './vault/vault.js';
478
478
  const result = patchClaudeMdContent(sampleSource, 'my-agent', ['web-components']);
479
479
  expect(result).not.toBeNull();
480
480
 
481
- expect(result).toContain('my_agent_web_components');
481
+ expect(result).toContain('my-agent_web_components');
482
482
  });
483
483
 
484
484
  it('should handle multiple new domains', () => {
@@ -564,7 +564,7 @@ import { Vault } from './vault/vault.js';
564
564
  'utf-8',
565
565
  );
566
566
  expect(patched).toContain('new-domain patterns');
567
- expect(patched).toContain('test_agent_new_domain');
567
+ expect(patched).toContain('test-agent_new_domain');
568
568
  });
569
569
 
570
570
  it('should not patch source files when only updating existing domains', async () => {
package/src/patching.ts CHANGED
@@ -109,12 +109,12 @@ export function patchClaudeMdContent(
109
109
  agentId: string,
110
110
  newDomains: string[],
111
111
  ): string | null {
112
- const facadeId = agentId.replace(/-/g, '_');
112
+ const toolPrefix = agentId; // keep hyphens — matches MCP tool registration
113
113
  const bt = '`';
114
114
 
115
115
  // Filter out domains whose rows already exist (idempotent)
116
116
  const domainsToAdd = newDomains.filter((d) => {
117
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
117
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
118
118
  return !source.includes(`${toolName}`);
119
119
  });
120
120
 
@@ -136,7 +136,7 @@ export function patchClaudeMdContent(
136
136
  }
137
137
 
138
138
  const newRows = domainsToAdd.flatMap((d) => {
139
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
139
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
140
140
  return [
141
141
  ` '| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |',`,
142
142
  ` '| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |',`,
@@ -8,13 +8,13 @@ import type { AgentConfig } from '../types.js';
8
8
  * Uses array-joined pattern because generated code contains template literals.
9
9
  */
10
10
  export function generateActivate(config: AgentConfig): string {
11
- const facadeId = config.id.replace(/-/g, '_');
11
+ const toolPrefix = config.id; // keep hyphens — matches MCP tool registration
12
12
  const _marker = `${config.id}:mode`;
13
13
 
14
14
  // Build tool recommendations from config domains
15
15
  const toolRecLines: string[] = [];
16
16
  for (const d of config.domains) {
17
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
17
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
18
18
  toolRecLines.push(` { intent: 'search ${d}', facade: '${toolName}', op: 'search' },`);
19
19
  toolRecLines.push(
20
20
  ` { intent: '${d} patterns', facade: '${toolName}', op: 'get_patterns' },`,
@@ -114,9 +114,9 @@ export function generateActivate(config: AgentConfig): string {
114
114
  guidelineLines,
115
115
  ' ],',
116
116
  ' tool_recommendations: [',
117
- ` { intent: 'health check', facade: '${facadeId}_core', op: 'health' },`,
118
- ` { intent: 'search all', facade: '${facadeId}_core', op: 'search' },`,
119
- ` { intent: 'vault stats', facade: '${facadeId}_core', op: 'vault_stats' },`,
117
+ ` { intent: 'health check', facade: '${toolPrefix}_core', op: 'health' },`,
118
+ ` { intent: 'search all', facade: '${toolPrefix}_core', op: 'search' },`,
119
+ ` { intent: 'vault stats', facade: '${toolPrefix}_core', op: 'vault_stats' },`,
120
120
  ...toolRecLines,
121
121
  ' ],',
122
122
  ` session_instruction: 'You are now ' + PERSONA.name + ', a ' + PERSONA.role + '. Stay in character for the ENTIRE session. ' +`,
@@ -10,7 +10,7 @@ import type { AgentConfig } from '../types.js';
10
10
  * backtick/template-literal escaping nightmares entirely.
11
11
  */
12
12
  export function generateClaudeMdTemplate(config: AgentConfig): string {
13
- const facadeId = config.id.replace(/-/g, '_');
13
+ const toolPrefix = config.id; // keep hyphens — matches MCP tool registration
14
14
  const marker = `${config.id}:mode`;
15
15
  const bt = '`'; // backtick — keeps template clean
16
16
 
@@ -22,28 +22,28 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
22
22
  '',
23
23
  `## ${config.name} Integration`,
24
24
  '',
25
- `**Activate:** "Hello, ${config.name}!" \u2192 ${bt}${facadeId}_core op:activate params:{ projectPath: "." }${bt}`,
26
- `**Deactivate:** "Goodbye, ${config.name}!" \u2192 ${bt}${facadeId}_core op:activate params:{ deactivate: true }${bt}`,
25
+ `**Activate:** "Hello, ${config.name}!" \u2192 ${bt}${toolPrefix}_core op:activate params:{ projectPath: "." }${bt}`,
26
+ `**Deactivate:** "Goodbye, ${config.name}!" \u2192 ${bt}${toolPrefix}_core op:activate params:{ deactivate: true }${bt}`,
27
27
  '',
28
28
  'On activation, adopt the returned persona. Stay in character until deactivated.',
29
29
  '',
30
30
  '## Session Start',
31
31
  '',
32
- `On every new session: ${bt}${facadeId}_core op:register params:{ projectPath: "." }${bt}`,
32
+ `On every new session: ${bt}${toolPrefix}_core op:register params:{ projectPath: "." }${bt}`,
33
33
  '',
34
34
  '## Facades',
35
35
  '',
36
36
  '| Need | Facade | Op |',
37
37
  '|------|--------|----|',
38
- `| Health check | ${bt}${facadeId}_core${bt} | ${bt}health${bt} |`,
39
- `| Search all | ${bt}${facadeId}_core${bt} | ${bt}search${bt} |`,
40
- `| Vault stats | ${bt}${facadeId}_core${bt} | ${bt}vault_stats${bt} |`,
41
- `| Identity | ${bt}${facadeId}_core${bt} | ${bt}identity${bt} |`,
38
+ `| Health check | ${bt}${toolPrefix}_core${bt} | ${bt}health${bt} |`,
39
+ `| Search all | ${bt}${toolPrefix}_core${bt} | ${bt}search${bt} |`,
40
+ `| Vault stats | ${bt}${toolPrefix}_core${bt} | ${bt}vault_stats${bt} |`,
41
+ `| Identity | ${bt}${toolPrefix}_core${bt} | ${bt}identity${bt} |`,
42
42
  ];
43
43
 
44
44
  // Domain-specific facade rows
45
45
  for (const d of config.domains) {
46
- const toolName = `${facadeId}_${d.replace(/-/g, '_')}`;
46
+ const toolName = `${toolPrefix}_${d.replace(/-/g, '_')}`;
47
47
  mdLines.push(`| ${d} patterns | ${bt}${toolName}${bt} | ${bt}get_patterns${bt} |`);
48
48
  mdLines.push(`| Search ${d} | ${bt}${toolName}${bt} | ${bt}search${bt} |`);
49
49
  mdLines.push(`| Capture ${d} | ${bt}${toolName}${bt} | ${bt}capture${bt} |`);
@@ -51,28 +51,28 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
51
51
 
52
52
  // Memory + Session + Export + Brain + Planning rows
53
53
  mdLines.push(
54
- `| Memory search | ${bt}${facadeId}_core${bt} | ${bt}memory_search${bt} |`,
55
- `| Memory capture | ${bt}${facadeId}_core${bt} | ${bt}memory_capture${bt} |`,
56
- `| Memory list | ${bt}${facadeId}_core${bt} | ${bt}memory_list${bt} |`,
57
- `| Session capture | ${bt}${facadeId}_core${bt} | ${bt}session_capture${bt} |`,
58
- `| Export knowledge | ${bt}${facadeId}_core${bt} | ${bt}export${bt} |`,
59
- `| Record feedback | ${bt}${facadeId}_core${bt} | ${bt}record_feedback${bt} |`,
60
- `| Rebuild vocabulary | ${bt}${facadeId}_core${bt} | ${bt}rebuild_vocabulary${bt} |`,
61
- `| Brain stats | ${bt}${facadeId}_core${bt} | ${bt}brain_stats${bt} |`,
62
- `| LLM status | ${bt}${facadeId}_core${bt} | ${bt}llm_status${bt} |`,
63
- `| Create plan | ${bt}${facadeId}_core${bt} | ${bt}create_plan${bt} |`,
64
- `| Get plan | ${bt}${facadeId}_core${bt} | ${bt}get_plan${bt} |`,
65
- `| Approve plan | ${bt}${facadeId}_core${bt} | ${bt}approve_plan${bt} |`,
66
- `| Update task | ${bt}${facadeId}_core${bt} | ${bt}update_task${bt} |`,
67
- `| Complete plan | ${bt}${facadeId}_core${bt} | ${bt}complete_plan${bt} |`,
68
- `| Route intent | ${bt}${facadeId}_core${bt} | ${bt}route_intent${bt} |`,
69
- `| Morph mode | ${bt}${facadeId}_core${bt} | ${bt}morph${bt} |`,
70
- `| Get behavior rules | ${bt}${facadeId}_core${bt} | ${bt}get_behavior_rules${bt} |`,
71
- `| Get identity | ${bt}${facadeId}_core${bt} | ${bt}get_identity${bt} |`,
72
- `| Update identity | ${bt}${facadeId}_core${bt} | ${bt}update_identity${bt} |`,
73
- `| Add guideline | ${bt}${facadeId}_core${bt} | ${bt}add_guideline${bt} |`,
74
- `| Remove guideline | ${bt}${facadeId}_core${bt} | ${bt}remove_guideline${bt} |`,
75
- `| Rollback identity | ${bt}${facadeId}_core${bt} | ${bt}rollback_identity${bt} |`,
54
+ `| Memory search | ${bt}${toolPrefix}_core${bt} | ${bt}memory_search${bt} |`,
55
+ `| Memory capture | ${bt}${toolPrefix}_core${bt} | ${bt}memory_capture${bt} |`,
56
+ `| Memory list | ${bt}${toolPrefix}_core${bt} | ${bt}memory_list${bt} |`,
57
+ `| Session capture | ${bt}${toolPrefix}_core${bt} | ${bt}session_capture${bt} |`,
58
+ `| Export knowledge | ${bt}${toolPrefix}_core${bt} | ${bt}export${bt} |`,
59
+ `| Record feedback | ${bt}${toolPrefix}_core${bt} | ${bt}record_feedback${bt} |`,
60
+ `| Rebuild vocabulary | ${bt}${toolPrefix}_core${bt} | ${bt}rebuild_vocabulary${bt} |`,
61
+ `| Brain stats | ${bt}${toolPrefix}_core${bt} | ${bt}brain_stats${bt} |`,
62
+ `| LLM status | ${bt}${toolPrefix}_core${bt} | ${bt}llm_status${bt} |`,
63
+ `| Create plan | ${bt}${toolPrefix}_core${bt} | ${bt}create_plan${bt} |`,
64
+ `| Get plan | ${bt}${toolPrefix}_core${bt} | ${bt}get_plan${bt} |`,
65
+ `| Approve plan | ${bt}${toolPrefix}_core${bt} | ${bt}approve_plan${bt} |`,
66
+ `| Update task | ${bt}${toolPrefix}_core${bt} | ${bt}update_task${bt} |`,
67
+ `| Complete plan | ${bt}${toolPrefix}_core${bt} | ${bt}complete_plan${bt} |`,
68
+ `| Route intent | ${bt}${toolPrefix}_core${bt} | ${bt}route_intent${bt} |`,
69
+ `| Morph mode | ${bt}${toolPrefix}_core${bt} | ${bt}morph${bt} |`,
70
+ `| Get behavior rules | ${bt}${toolPrefix}_core${bt} | ${bt}get_behavior_rules${bt} |`,
71
+ `| Get identity | ${bt}${toolPrefix}_core${bt} | ${bt}get_identity${bt} |`,
72
+ `| Update identity | ${bt}${toolPrefix}_core${bt} | ${bt}update_identity${bt} |`,
73
+ `| Add guideline | ${bt}${toolPrefix}_core${bt} | ${bt}add_guideline${bt} |`,
74
+ `| Remove guideline | ${bt}${toolPrefix}_core${bt} | ${bt}remove_guideline${bt} |`,
75
+ `| Rollback identity | ${bt}${toolPrefix}_core${bt} | ${bt}rollback_identity${bt} |`,
76
76
  );
77
77
 
78
78
  mdLines.push(
@@ -82,7 +82,7 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
82
82
  'A UserPromptSubmit hook auto-classifies every prompt via keyword matching.',
83
83
  `When you see a ${bt}[MODE-NAME]${bt} indicator in the system context:`,
84
84
  '',
85
- `1. Call ${bt}${facadeId}_core op:route_intent params:{ prompt: "<user message>" }${bt} to get full behavior rules`,
85
+ `1. Call ${bt}${toolPrefix}_core op:route_intent params:{ prompt: "<user message>" }${bt} to get full behavior rules`,
86
86
  '2. Follow the returned behavior rules for the detected mode',
87
87
  '3. Briefly acknowledge mode changes in your response (e.g., "Switching to FIX-MODE")',
88
88
  '',
@@ -103,7 +103,7 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
103
103
  '',
104
104
  'When seeking guidance: vault before codebase before web.',
105
105
  '',
106
- `1. Search vault \u2014 ${bt}${facadeId}_core op:search${bt}`,
106
+ `1. Search vault \u2014 ${bt}${toolPrefix}_core op:search${bt}`,
107
107
  '2. Codebase \u2014 only if vault has nothing',
108
108
  '3. Web \u2014 last resort',
109
109
  '',
@@ -115,15 +115,15 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
115
115
  '',
116
116
  'A PreCompact hook is configured to call `session_capture` before context compaction.',
117
117
  'This automatically preserves session summaries as memories for future sessions.',
118
- `To manually capture: ${bt}${facadeId}_core op:session_capture params:{ summary: "..." }${bt}`,
118
+ `To manually capture: ${bt}${toolPrefix}_core op:session_capture params:{ summary: "..." }${bt}`,
119
119
  '',
120
120
  '## Planning',
121
121
  '',
122
122
  'For multi-step tasks, use the planning system:',
123
- `1. Create: ${bt}${facadeId}_core op:create_plan params:{ objective: "...", scope: "...", tasks: [...] }${bt}`,
124
- `2. Approve: ${bt}${facadeId}_core op:approve_plan params:{ planId: "...", startExecution: true }${bt}`,
125
- `3. Track: ${bt}${facadeId}_core op:update_task params:{ planId: "...", taskId: "...", status: "completed" }${bt}`,
126
- `4. Complete: ${bt}${facadeId}_core op:complete_plan params:{ planId: "..." }${bt}`,
123
+ `1. Create: ${bt}${toolPrefix}_core op:create_plan params:{ objective: "...", scope: "...", tasks: [...] }${bt}`,
124
+ `2. Approve: ${bt}${toolPrefix}_core op:approve_plan params:{ planId: "...", startExecution: true }${bt}`,
125
+ `3. Track: ${bt}${toolPrefix}_core op:update_task params:{ planId: "...", taskId: "...", status: "completed" }${bt}`,
126
+ `4. Complete: ${bt}${toolPrefix}_core op:complete_plan params:{ planId: "..." }${bt}`,
127
127
  '',
128
128
  'Check activation response for recovered plans in `executing` state — remind the user.',
129
129
  '',
@@ -74,7 +74,7 @@ if [ ! -f "$SETTINGS_FILE" ]; then
74
74
  "PreCompact": [
75
75
  {
76
76
  "type": "prompt",
77
- "prompt": "Before context is compacted, capture a session summary by calling ${config.id.replace(/-/g, '_')}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used."
77
+ "prompt": "Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used."
78
78
  }
79
79
  ]
80
80
  }
@@ -93,7 +93,7 @@ else
93
93
  if (!settings.hooks.PreCompact) settings.hooks.PreCompact = [];
94
94
  settings.hooks.PreCompact.push({
95
95
  type: 'prompt',
96
- prompt: 'Before context is compacted, capture a session summary by calling ${config.id.replace(/-/g, '_')}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used.'
96
+ prompt: 'Before context is compacted, capture a session summary by calling ${config.id}_core op:session_capture with a brief summary of what was accomplished, the topics covered, files modified, and tools used.'
97
97
  });
98
98
  fs.writeFileSync('$SETTINGS_FILE', JSON.stringify(settings, null, 2) + '\\n');
99
99
  "