takomi 2.1.9 → 2.1.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "takomi",
3
- "version": "2.1.9",
3
+ "version": "2.1.10",
4
4
  "description": "šŸŽÆ Stop wrestling with AI. Start building with purpose. The artisan's toolkit for agent workflows, Codex skills, and original Takomi capabilities like 21st.dev integration.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/doctor.js CHANGED
@@ -23,9 +23,11 @@ export async function runDoctor({ version, cwd = process.cwd() } = {}) {
23
23
  console.log(status(report.bundled.packageReady, 'Bundled .pi assets', report.bundled.targets.root));
24
24
  console.log(status(report.bundled.checks.runtime, 'Bundled takomi-runtime', report.bundled.targets.runtime));
25
25
  console.log(status(report.bundled.checks.subagents, 'Bundled takomi-subagents', report.bundled.targets.subagents));
26
+ console.log(status(report.bundled.checks.contextManager, 'Bundled takomi-context-manager', report.bundled.targets.contextManager));
26
27
  console.log(status(report.bundled.packageIncluded, 'Package includes .pi assets', report.bundled.packageIncluded ? 'yes' : 'no'));
27
28
  console.log(status(report.installed.runtimeInstalled, 'Installed takomi-runtime', report.installed.targets.extensions));
28
29
  console.log(status(report.installed.subagentsInstalled, 'Installed takomi-subagents', report.installed.targets.extensions));
30
+ console.log(status(report.installed.contextManagerInstalled, 'Installed takomi-context-manager', report.installed.targets.extensions));
29
31
  console.log(status(await fs.pathExists(`${report.installed.targets.extensions}/oauth-router`), 'Installed oauth-router', `${report.installed.targets.extensions}`));
30
32
  console.log(status(report.installed.coreInstalled, 'Installed Takomi core', path.join(path.dirname(report.installed.targets.root), 'src', 'pi-takomi-core')));
31
33
  console.log(status(report.installed.piSubagentsModuleInstalled, 'Installed pi-subagents module', path.join(report.installed.targets.root, 'node_modules', 'pi-subagents')));
@@ -54,7 +56,7 @@ export async function runDoctor({ version, cwd = process.cwd() } = {}) {
54
56
  console.log(pc.white(' - Package .pi assets before enabling takomi install pi in releases.'));
55
57
  }
56
58
 
57
- if (!report.installed.runtimeInstalled || !report.installed.subagentsInstalled || !report.installed.coreInstalled || !report.installed.piSubagentsModuleInstalled) {
59
+ if (!report.installed.runtimeInstalled || !report.installed.subagentsInstalled || !report.installed.contextManagerInstalled || !report.installed.coreInstalled || !report.installed.piSubagentsModuleInstalled) {
58
60
  console.log(pc.white(' - Run takomi install pi to refresh the Pi harness, Takomi core, and pi-subagents runtime module.'));
59
61
  }
60
62
 
package/src/pi-harness.js CHANGED
@@ -72,6 +72,7 @@ export function getBundledPiAssetTargets() {
72
72
  root,
73
73
  runtime: path.join(root, 'extensions', 'takomi-runtime'),
74
74
  subagents: path.join(root, 'extensions', 'takomi-subagents'),
75
+ contextManager: path.join(root, 'extensions', 'takomi-context-manager'),
75
76
  prompts: path.join(root, 'prompts'),
76
77
  agents: path.join(root, 'agents'),
77
78
  themes: path.join(root, 'themes'),
@@ -162,6 +163,7 @@ export async function inspectBundledPiAssets() {
162
163
  root: await fs.pathExists(targets.root),
163
164
  runtime: await fs.pathExists(targets.runtime),
164
165
  subagents: await fs.pathExists(targets.subagents),
166
+ contextManager: await fs.pathExists(targets.contextManager),
165
167
  prompts: await fs.pathExists(targets.prompts),
166
168
  agents: await fs.pathExists(targets.agents),
167
169
  themes: await fs.pathExists(targets.themes),
@@ -186,6 +188,7 @@ export async function inspectInstalledTakomiPiHarness(home = HOME) {
186
188
  const targets = getPiGlobalTargets(home);
187
189
  const runtime = path.join(targets.extensions, 'takomi-runtime');
188
190
  const subagents = path.join(targets.extensions, 'takomi-subagents');
191
+ const contextManager = path.join(targets.extensions, 'takomi-context-manager');
189
192
  const core = path.join(path.dirname(targets.root), 'src', 'pi-takomi-core');
190
193
  const piSubagentsModule = path.join(targets.root, 'node_modules', 'pi-subagents');
191
194
 
@@ -193,6 +196,7 @@ export async function inspectInstalledTakomiPiHarness(home = HOME) {
193
196
  targets,
194
197
  runtimeInstalled: await fs.pathExists(runtime),
195
198
  subagentsInstalled: await fs.pathExists(subagents),
199
+ contextManagerInstalled: await fs.pathExists(contextManager),
196
200
  coreInstalled: await fs.pathExists(core),
197
201
  piSubagentsModuleInstalled: await fs.pathExists(piSubagentsModule),
198
202
  promptsInstalled: await fs.pathExists(targets.prompts),
@@ -104,11 +104,13 @@ export async function installPiHarnessAssets(version = 'unknown') {
104
104
  copied.readme = await copyOwnedFile(readmeSrc, path.join(targets.root, 'README.md'));
105
105
  }
106
106
 
107
- const extensionNames = ['takomi-runtime', 'takomi-subagents', 'oauth-router'];
108
- for (const name of extensionNames) {
109
- const src = path.join(srcRoot, 'extensions', name);
110
- if (await fs.pathExists(src)) {
111
- copied[`extension:${name}`] = await copyOwnedDirectory(src, path.join(targets.extensions, name));
107
+ const extensionsRoot = path.join(srcRoot, 'extensions');
108
+ if (await fs.pathExists(extensionsRoot)) {
109
+ const extensionEntries = await fs.readdir(extensionsRoot, { withFileTypes: true });
110
+ for (const entry of extensionEntries) {
111
+ if (!entry.isDirectory()) continue;
112
+ const src = path.join(extensionsRoot, entry.name);
113
+ copied[`extension:${entry.name}`] = await copyOwnedDirectory(src, path.join(targets.extensions, entry.name));
112
114
  }
113
115
  }
114
116
 
@@ -168,6 +170,7 @@ export async function validatePiHarnessInstall() {
168
170
  return {
169
171
  runtime: await fs.pathExists(path.join(targets.extensions, 'takomi-runtime')),
170
172
  subagents: await fs.pathExists(path.join(targets.extensions, 'takomi-subagents')),
173
+ contextManager: await fs.pathExists(path.join(targets.extensions, 'takomi-context-manager')),
171
174
  oauthRouter: await fs.pathExists(path.join(targets.extensions, 'oauth-router')),
172
175
  prompts: await fs.pathExists(targets.prompts),
173
176
  agents: await fs.pathExists(targets.agents),
@@ -183,7 +186,7 @@ export function printPiInstallSummary(result, validation) {
183
186
  console.log(pc.green('\nāœ” Installed Takomi Pi harness assets'));
184
187
  console.log(pc.white(` Root: ${result.targets.root}`));
185
188
  console.log(pc.white(` Manifest: ${PI_MANIFEST_PATH}`));
186
- console.log(pc.white(` Extensions: ${validation.runtime && validation.subagents && validation.oauthRouter ? 'ok' : 'check needed'}`));
189
+ console.log(pc.white(` Extensions: ${validation.runtime && validation.subagents && validation.contextManager && validation.oauthRouter ? 'ok' : 'check needed'}`));
187
190
  console.log(pc.white(` Prompts: ${validation.prompts ? 'ok' : 'missing'}`));
188
191
  console.log(pc.white(` Agents: ${validation.agents ? 'ok' : 'missing'}`));
189
192
  console.log(pc.white(` Themes: ${validation.themes ? 'ok' : 'missing'}`));