takomi 2.1.8 ā 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/.pi/README.md +8 -0
- package/README.md +10 -0
- package/package.json +1 -1
- package/src/doctor.js +3 -1
- package/src/pi-harness.js +4 -0
- package/src/pi-installer.js +9 -6
package/.pi/README.md
CHANGED
|
@@ -8,6 +8,7 @@ It is intentionally separate from the existing cross-harness assets under `asset
|
|
|
8
8
|
|
|
9
9
|
- `extensions/takomi-runtime/` - Pi runtime glue, embedded workflow playbooks, and orchestrator board tools
|
|
10
10
|
- `extensions/takomi-subagents/` - Takomi-facing subagent wrapper over Pi-style execution semantics with resumable conversation IDs
|
|
11
|
+
- `extensions/takomi-context-manager/` - Progressive context loading, skill manifests, policy packs, model-routing gates, and context diagnostics
|
|
11
12
|
- `prompts/` - Pi-native prompt shortcuts
|
|
12
13
|
- `agents/` - Pi-native specialist agent definitions, including a design-stage agent
|
|
13
14
|
|
|
@@ -39,6 +40,7 @@ Inside Pi, use:
|
|
|
39
40
|
- `/takomi subagents status|expand|collapse|fullscreen|next|prev|toggle` to inspect or reshape the active subagent stack
|
|
40
41
|
- `/takomi-status` to show lifecycle, gate, session, and active subagent state
|
|
41
42
|
- `/takomi-reset` to reset session-local Takomi runtime state
|
|
43
|
+
- `/context-report` to inspect prompt compaction, skill loading, policy gates, model routing corrections, and duplicate extension diagnostics
|
|
42
44
|
- `takomi_board` actions now include stage expansion, task updates, multi-task dispatch, and redispatch support for review loops
|
|
43
45
|
- The old standalone commands (`/takomi-genesis`, `/takomi-design`, `/takomi-build`, `/takomi-kickoff`, `/autoorch`, `/orch`, `/architect`, `/code`, `/review`, and the `/takomi-subagent*` variants) are folded into `/takomi` subcommands so slash autocomplete stays small.
|
|
44
46
|
- prompt shortcuts are suffixed with `-prompt` to avoid collisions with runtime commands, e.g. `/orch-prompt`, `/build-prompt`, `/design-prompt`, `/genesis-prompt`, `/takomi-prompt`, `/prime-prompt`
|
|
@@ -67,6 +69,7 @@ Bundled with Takomi now:
|
|
|
67
69
|
|
|
68
70
|
- `.pi/extensions/takomi-runtime/`
|
|
69
71
|
- `.pi/extensions/takomi-subagents/`
|
|
72
|
+
- `.pi/extensions/takomi-context-manager/`
|
|
70
73
|
- `.pi/prompts/`
|
|
71
74
|
- `.pi/agents/`
|
|
72
75
|
- `.pi/themes/`
|
|
@@ -112,6 +115,11 @@ So when working on packaging, agents should distinguish between:
|
|
|
112
115
|
- Active Takomi subagent work now streams through the native Pi-style result UI instead of Takomi's older below-editor stack.
|
|
113
116
|
- Use Pi's native result expansion, `Alt+T`, or `/takomi subagents expand` to inspect detailed subagent output.
|
|
114
117
|
- Takomi still tracks active runs internally for status, review continuity, and board synchronization, but it no longer opens a custom subagent fullscreen overlay.
|
|
118
|
+
- `takomi-context-manager` reduces prompt bloat by replacing the always-on skill description dump with a names-only Skill Index plus progressive `skill_manifest`/`skill_load` tools.
|
|
119
|
+
- `takomi-context-manager` treats `/takomi routing` as the source of truth for model-routing policy via `.pi/settings.json -> takomi.modelRoutingPolicyFile`.
|
|
120
|
+
- `takomi-context-manager` gates `takomi_subagent` when model-routing context has not been loaded, provides the routing policy, and tells the agent to retry.
|
|
121
|
+
- `takomi-context-manager` can correct safe wrong-provider model requests, block or pause on policy violations, and ask the user whether to retry with an approved model or stop.
|
|
122
|
+
- `takomi-context-manager` detects known duplicate global/project Takomi extension paths in `context_report` to help diagnose tool registration conflicts.
|
|
115
123
|
- `takomi_board` can:
|
|
116
124
|
- create a Genesis-first lifecycle session by default
|
|
117
125
|
- expand a lifecycle stage into additional tasks
|
package/README.md
CHANGED
|
@@ -45,6 +45,16 @@ takomi init
|
|
|
45
45
|
|
|
46
46
|
Takomi's Pi-native subagent execution and terminal UI build on **[`pi-subagents`](https://github.com/nicobailon/pi-subagents)** by **Nico Bailon**. That package provides the underlying Pi extension for delegated subagent runs, including the native subagent result renderer, live progress/status display, single/parallel/chain execution support, session/artifact handling, and related subagent tooling. Takomi adds its own lifecycle orchestration, model-routing policy, workflow metadata, board/checklist context, and agent conventions on top of that foundation.
|
|
47
47
|
|
|
48
|
+
### Context Manager
|
|
49
|
+
|
|
50
|
+
Takomi now ships a Pi-native `takomi-context-manager` extension. It reduces prompt bloat with progressive context loading:
|
|
51
|
+
|
|
52
|
+
- skill names are always visible, while descriptions and full `SKILL.md` files load only when needed
|
|
53
|
+
- `skill_manifest`, `skill_load`, `policy_manifest`, `policy_load`, and `context_report` tools expose context on demand
|
|
54
|
+
- `/takomi routing` remains the source of truth for model-routing policy
|
|
55
|
+
- `takomi_subagent` is guarded by routing-policy context and can recover from wrong-provider model choices
|
|
56
|
+
- `/context-report` shows prompt compaction, loaded skills/policies, blocked actions, model-routing corrections, and duplicate extension diagnostics
|
|
57
|
+
|
|
48
58
|
|
|
49
59
|
### Option A: Global Install (Best for Multi-IDE Users) ā
|
|
50
60
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "takomi",
|
|
3
|
-
"version": "2.1.
|
|
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),
|
package/src/pi-installer.js
CHANGED
|
@@ -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
|
|
108
|
-
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
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'}`));
|