@planu/cli 4.1.1 → 4.1.3

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 (62) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/config/license-plans.json +65 -361
  3. package/dist/engine/core-bridge.js +35 -4
  4. package/dist/engine/hooks/file-watcher.d.ts +6 -0
  5. package/dist/engine/hooks/file-watcher.js +69 -16
  6. package/dist/tools/git/hook-ops.js +23 -9
  7. package/dist/tools/tool-registry/group-infra.js +22 -0
  8. package/package.json +7 -7
  9. package/dist/engine/escalator/index.d.ts +0 -5
  10. package/dist/engine/escalator/index.js +0 -5
  11. package/dist/engine/freeze/retro-audit.d.ts +0 -6
  12. package/dist/engine/freeze/retro-audit.js +0 -24
  13. package/dist/engine/heal/backup.d.ts +0 -9
  14. package/dist/engine/heal/backup.js +0 -21
  15. package/dist/engine/idioma-validator/index.d.ts +0 -17
  16. package/dist/engine/idioma-validator/index.js +0 -89
  17. package/dist/engine/saga/index.d.ts +0 -4
  18. package/dist/engine/saga/index.js +0 -4
  19. package/dist/engine/spec-state-machine/index.d.ts +0 -3
  20. package/dist/engine/spec-state-machine/index.js +0 -2
  21. package/dist/engine/spec-summary-html/dashboard-renderer.d.ts +0 -6
  22. package/dist/engine/spec-summary-html/dashboard-renderer.js +0 -333
  23. package/dist/engine/triagier/index.d.ts +0 -5
  24. package/dist/engine/triagier/index.js +0 -5
  25. package/dist/engine/universal-rules/index.d.ts +0 -5
  26. package/dist/engine/universal-rules/index.js +0 -6
  27. package/dist/testing/cassette/index.d.ts +0 -23
  28. package/dist/testing/cassette/index.js +0 -26
  29. package/dist/tools/domain-bundle-handler.d.ts +0 -37
  30. package/dist/tools/domain-bundle-handler.js +0 -71
  31. package/dist/tools/figma/rules-file.d.ts +0 -5
  32. package/dist/tools/figma/rules-file.js +0 -45
  33. package/dist/tools/heal-planu-root.d.ts +0 -8
  34. package/dist/tools/heal-planu-root.js +0 -144
  35. package/dist/tools/opencode-host-adapter.d.ts +0 -3
  36. package/dist/tools/opencode-host-adapter.js +0 -33
  37. package/dist/tools/plan-team-distribution.d.ts +0 -3
  38. package/dist/tools/plan-team-distribution.js +0 -71
  39. package/dist/tools/reconcile-status-json.d.ts +0 -4
  40. package/dist/tools/reconcile-status-json.js +0 -209
  41. package/dist/tools/register-all-tools.d.ts +0 -8
  42. package/dist/tools/register-all-tools.js +0 -239
  43. package/dist/tools/tool-registry/group-analysis-monitoring.d.ts +0 -3
  44. package/dist/tools/tool-registry/group-analysis-monitoring.js +0 -942
  45. package/dist/tools/tool-registry/group-integrations.d.ts +0 -3
  46. package/dist/tools/tool-registry/group-integrations.js +0 -1046
  47. package/dist/tools/tool-registry/group-misc.d.ts +0 -3
  48. package/dist/tools/tool-registry/group-misc.js +0 -1367
  49. package/dist/tools/tool-registry/group-platform.d.ts +0 -3
  50. package/dist/tools/tool-registry/group-platform.js +0 -1681
  51. package/dist/tools/tool-registry/group-session-knowledge.d.ts +0 -3
  52. package/dist/tools/tool-registry/group-session-knowledge.js +0 -1416
  53. package/dist/tools/tool-registry/group-spec-ops.d.ts +0 -3
  54. package/dist/tools/tool-registry/group-spec-ops.js +0 -917
  55. package/dist/tools/workspace-overview.d.ts +0 -4
  56. package/dist/tools/workspace-overview.js +0 -316
  57. package/dist/transports/middleware/index.d.ts +0 -9
  58. package/dist/transports/middleware/index.js +0 -7
  59. package/dist/transports/middleware/with-sandbox.d.ts +0 -21
  60. package/dist/transports/middleware/with-sandbox.js +0 -68
  61. package/dist/types/heal.d.ts +0 -18
  62. package/dist/types/heal.js +0 -3
@@ -1,239 +0,0 @@
1
- // register-all-tools.ts — Single entry point to register ALL MCP tools.
2
- // Consolidates the four former groups (Core, Extended, LatestSpec, Integration)
3
- // that previously lived inline in index.ts.
4
- //
5
- // Phase 1 (refactor/declarative-registry): 25 tools migrated to coreToolsRegistry.
6
- // Removed register-* files: generate-batch-script, generate-automation-guide,
7
- // multi-agent-review, diagram-tools, parallel-safety-tools, performance-analysis-tools,
8
- // status-tool, workflow-tools, transform-tools, telemetry-tools, telemetry-health-tools,
9
- // observability-tools, model-tools, export-tools, decompose-tools, facilitator-tools,
10
- // scan-tools, ai-cost-tools, heal-spec-docs, convert-to-bdd,
11
- // spec-from-issue, ide-tools, living-specs-tools, runtime-security-tools.
12
- //
13
- // Phase 2 (refactor/registry-phase2): 53 tools migrated to group-infra.ts.
14
- // Removed register-* files: license-tools, usage-tools, webhook-tools,
15
- // outbound-webhook-tools, dashboard-tools, auto-update-tools, deploy-tools,
16
- // cross-repo-search-tools, browser-validate-tools, worker-tools, plugin-tools,
17
- // registry-tools, tool-groups, rbac-tools, workspace-tools, memory-config-tools,
18
- // onboarding-tools, docs-registry-tools, well-known-tools, skill-registry-tools.
19
- //
20
- // Phase 3 (refactor/registry-phase3): ~120 remaining register-*.ts files migrated
21
- // to 7 thematic group files: group-spec-ops, group-quality-compliance,
22
- // group-analysis-monitoring, group-integrations, group-session-knowledge,
23
- // group-platform, group-misc.
24
- import { registerResources } from '../resources/registry.js';
25
- import { registerFromEntries } from './tool-entry.js';
26
- import coreToolsRegistry from './tool-registry/core-tools.js';
27
- import { registerInfraGroupTools } from './tool-registry/group-infra.js';
28
- import { registerSpecOpsGroupTools } from './tool-registry/group-spec-ops.js';
29
- import { registerQualityComplianceGroupTools } from './tool-registry/group-quality-compliance.js';
30
- import { registerAnalysisMonitoringGroupTools } from './tool-registry/group-analysis-monitoring.js';
31
- import { registerIntegrationsGroupTools } from './tool-registry/group-integrations.js';
32
- import { registerSessionKnowledgeGroupTools } from './tool-registry/group-session-knowledge.js';
33
- import { registerPlatformGroupTools } from './tool-registry/group-platform.js';
34
- import { registerMiscGroupTools } from './tool-registry/group-misc.js';
35
- // Barrel files — these delegate to sub-modules and must NOT be deleted
36
- import { registerSpecTools } from './register-spec-tools.js';
37
- import { registerPlatformTools } from './register-platform-tools.js';
38
- // Prompts
39
- import { registerPrompts } from '../prompts/index.js';
40
- // SPEC-737: rollback_release tool
41
- import { z } from 'zod';
42
- import { safe } from './safe-handler.js';
43
- import { handleRollbackRelease } from './rollback-release.js';
44
- // Agent squad handlers (autopilot event bus subscriptions — not MCP tools)
45
- import { registerAgentSquadHandlers } from './register-agent-squad-tools.js';
46
- // SPEC-745: heal_planu_root 3-tier policy
47
- import { registerHealPlanuRootTool } from './heal-planu-root.js';
48
- // SPEC-779: Universal rules + skills tools
49
- import { handleCreateRule } from './create-rule.js';
50
- import { handleCreateSkill } from './create-skill.js';
51
- import { handleReconcileUniversalRules } from './reconcile-universal-rules.js';
52
- function registerUniversalRulesTools(s) {
53
- s.registerTool('create_rule', {
54
- description: 'Create a host-aware rule file for a Planu project. ' +
55
- 'For Claude Code, writes to `.claude/rules/{name}.md`. ' +
56
- 'For Codex, inserts a delimited block in `AGENTS.md`. ' +
57
- 'For Gemini, inserts a delimited block in `.gemini/conventions.md`. ' +
58
- 'Use host: "auto" to detect the current host automatically.',
59
- inputSchema: {
60
- projectPath: z
61
- .string()
62
- .describe('Absolute path to the project root where the rule will be written'),
63
- name: z
64
- .string()
65
- .min(1)
66
- .describe('Rule identifier — kebab-case, no extension (e.g. "team-style"). ' +
67
- 'Used as the filename for Claude Code and as the block id for Codex/Gemini.'),
68
- content: z.string().min(1).describe('Markdown body of the rule (no frontmatter required)'),
69
- host: z
70
- .enum(['claude-code', 'codex', 'gemini', 'auto'])
71
- .default('auto')
72
- .describe('Target host. Valid values: "claude-code" (writes .claude/rules/{name}.md), ' +
73
- '"codex" (writes AGENTS.md block), "gemini" (writes .gemini/conventions.md block), ' +
74
- '"auto" (detect from environment).'),
75
- overwriteExisting: z
76
- .boolean()
77
- .optional()
78
- .describe('When true, overwrite an existing file with different content. ' +
79
- 'When false/omitted, returns an error if the file already exists with different content.'),
80
- },
81
- annotations: { readOnlyHint: false, destructiveHint: false, title: 'Create Rule' },
82
- }, safe((args) => handleCreateRule(args)));
83
- s.registerTool('create_skill', {
84
- description: 'Create a host-aware skill for a Planu project. ' +
85
- 'For Claude Code, writes to `.claude/skills/{name}/SKILL.md` with YAML frontmatter. ' +
86
- 'For Codex, inserts a skill block in `AGENTS.md`. ' +
87
- 'For Gemini, writes to `.gemini/skills/{name}.md`. ' +
88
- 'Use host: "auto" to detect the current host automatically.',
89
- inputSchema: {
90
- projectPath: z
91
- .string()
92
- .describe('Absolute path to the project root where the skill will be written'),
93
- name: z
94
- .string()
95
- .min(1)
96
- .describe('Skill identifier — kebab-case, no extension (e.g. "planu-status-check"). ' +
97
- 'Used as the directory name for Claude Code.'),
98
- content: z.string().min(1).describe('Markdown body of the skill instructions'),
99
- host: z
100
- .enum(['claude-code', 'codex', 'gemini', 'auto'])
101
- .default('auto')
102
- .describe('Target host. Valid values: "claude-code" (writes .claude/skills/{name}/SKILL.md), ' +
103
- '"codex" (writes AGENTS.md skill block), ' +
104
- '"gemini" (writes .gemini/skills/{name}.md), ' +
105
- '"auto" (detect from environment).'),
106
- overwriteExisting: z
107
- .boolean()
108
- .optional()
109
- .describe('When true, overwrite an existing skill with different content. ' +
110
- 'When false/omitted, returns an error if the skill already exists.'),
111
- description: z
112
- .string()
113
- .optional()
114
- .describe('Short one-line description for the skill YAML frontmatter'),
115
- },
116
- annotations: { readOnlyHint: false, destructiveHint: false, title: 'Create Skill' },
117
- }, safe((args) => handleCreateSkill(args)));
118
- s.registerTool('reconcile_universal_rules', {
119
- description: 'Install any missing Planu universal rules without touching user-modified ones. ' +
120
- 'Reads the catalog, compares against .planu-rules-manifest.json, and installs only the ' +
121
- 'rules that are new. Skips rules already installed or user-modified (content-hash mismatch). ' +
122
- 'Run this after a Planu upgrade to pick up new catalog entries.',
123
- inputSchema: {
124
- projectPath: z
125
- .string()
126
- .optional()
127
- .describe('Absolute path to the project root (defaults to cwd)'),
128
- host: z
129
- .enum(['claude-code', 'codex', 'gemini'])
130
- .optional()
131
- .describe('Target host. Valid values: "claude-code", "codex", "gemini". ' +
132
- 'Defaults to auto-detected host from environment.'),
133
- },
134
- annotations: {
135
- readOnlyHint: false,
136
- destructiveHint: false,
137
- title: 'Reconcile Universal Rules',
138
- },
139
- }, safe((args) => handleReconcileUniversalRules(args)));
140
- }
141
- /**
142
- * Registers all MCP tools onto the server instance.
143
- * Previously split across registerCoreTools / registerExtendedTools /
144
- * registerLatestSpecTools / registerIntegrationTools in index.ts.
145
- */
146
- export function registerAllTools(s) {
147
- // ── Resources ──────────────────────────────────────────────────────────────
148
- registerResources(s);
149
- // ── Declarative registry (Phase 1 — 25 tools) ─────────────────────────────
150
- registerFromEntries(s, coreToolsRegistry);
151
- // ── Infra group (Phase 2 — 53 tools) ──────────────────────────────────────
152
- // Covers: license, usage, webhook, dashboard, auto-update, deploy,
153
- // cross-repo-search, browser-validate, workers, plugins, registry,
154
- // tool-groups, rbac, workspace, memory-config, onboarding, docs-registry
155
- registerInfraGroupTools(s);
156
- // ── Spec barrel (delegates to register-spec-tools sub-modules) ─────────────
157
- registerSpecTools(s);
158
- // ── Platform barrel (delegates to register-platform-tools sub-modules) ─────
159
- registerPlatformTools(s);
160
- // ── Spec Ops group (Phase 3A) ─────────────────────────────────────────────
161
- // Covers: spec-export, spec-split, spec-quality-score, spec-search, spec-lock,
162
- // spec-hooks, spec-source, versioning, diff-spec, spec-diff-visual,
163
- // merge-risk, domain-criteria, domain-bundle
164
- registerSpecOpsGroupTools(s);
165
- // ── Quality & Compliance group (Phase 3B) ─────────────────────────────────
166
- // Covers: compliance, compliance-audit, compliance-gate, compliance-test,
167
- // security, audit-trail, schema-parity, schema-generator, tdd, coverage,
168
- // eval-skill, ears, spec-lint, readiness, approval, governance,
169
- // validate_api_contract, tdd_scaffold, coverage_gap_analyzer,
170
- // run_mutation_hints, generate_orchestration_plan
171
- registerQualityComplianceGroupTools(s);
172
- // ── Analysis & Monitoring group (Phase 3C) ────────────────────────────────
173
- // Covers: analytics-report (unified + shims), code-impact, dependency-impact,
174
- // tech-debt, drift-monitor, manage-drift (unified + shims), code-graph,
175
- // estimation-accuracy, team-analytics, spec-scheduler, crash-shield,
176
- // self-healing, auto-remediation, auto-promoter
177
- registerAnalysisMonitoringGroupTools(s);
178
- // ── Integrations group (Phase 3D) ─────────────────────────────────────────
179
- // Covers: github, slack, figma, storybook, sentry, supabase, oauth, ci,
180
- // pr-description, e2e-test-generator, api-spec-generator,
181
- // generate-spec-from-design, living-spec, living-spec-advanced
182
- registerIntegrationsGroupTools(s);
183
- // ── Session & Knowledge group (Phase 3E) ──────────────────────────────────
184
- // Covers: session-tools, checkpoint-tool, checkpoints, autopilot-tools,
185
- // autopilot, learning, lessons, knowledge-base, backlog, agent, agent-squad,
186
- // orchestrator, delete, delete-first, legacy, elicitation, context,
187
- // context-manager, scope
188
- registerSessionKnowledgeGroupTools(s);
189
- // ── Platform group (Phase 3F) ─────────────────────────────────────────────
190
- // Covers: migration, apply-migration-cleanup, stack, template, search, import,
191
- // hooks, filesystem-hooks, dep-audit, changelog, event, feedback, comments,
192
- // memory, infrastructure, global-rules, plan-mode, quality-gates, verifier,
193
- // context-profile
194
- registerPlatformGroupTools(s);
195
- // ── Misc group (Phase 3G) ─────────────────────────────────────────────────
196
- // Covers: team, llm-provider, spec-observability, workspace-dashboard,
197
- // hook-generator, project-dna, steering, skill-bootstrap, release-notes,
198
- // tokens (unified + shims), validation-loop, spec-cookbook, doc-compliance,
199
- // spec-prompt, test-reverse-engineer, governance, reconcile-rules,
200
- // reconcile-skills, reconcile-hooks, ai-ecosystem-status, sync-ai-configs,
201
- // sync-spec-state, generate-dashboard, generate-proposal, export-pdf
202
- registerMiscGroupTools(s);
203
- // ── SPEC-737: rollback_release ───────────────────────────────────────────────
204
- s.registerTool('rollback_release', {
205
- description: 'Roll back a published @planu/cli release. Removes the npm dist-tag, deletes the git tag ' +
206
- 'locally and remotely, writes a post-mortem skeleton, and records a transition-log entry. ' +
207
- 'Use this when a post-publish smoke test or downstream user discovers a critical regression.',
208
- inputSchema: {
209
- version: z
210
- .string()
211
- .regex(/^\d+\.\d+\.\d+/, 'Must be a semver version like 1.94.0')
212
- .describe('Version to roll back (e.g. 1.94.0, without the v prefix)'),
213
- reason: z.string().min(1).max(1000).describe('Why this rollback is happening'),
214
- allowAged: z
215
- .boolean()
216
- .optional()
217
- .describe('Allow rolling back versions older than 30 days (default: false)'),
218
- dryRun: z
219
- .boolean()
220
- .optional()
221
- .describe('When true, log what would happen but do not execute (default: false)'),
222
- projectId: z.string().max(500).optional().describe('Project ID for transition-log entry'),
223
- },
224
- annotations: {
225
- readOnlyHint: false,
226
- destructiveHint: true,
227
- title: 'Rollback Release',
228
- },
229
- }, safe((args) => handleRollbackRelease(args)));
230
- // ── SPEC-745: heal_planu_root 3-tier ─────────────────────────────────────
231
- registerHealPlanuRootTool(s);
232
- // ── SPEC-779: Universal rules + skills tools ─────────────────────────────
233
- registerUniversalRulesTools(s);
234
- // ── Prompts ────────────────────────────────────────────────────────────────
235
- registerPrompts(s);
236
- // ── Autopilot event bus handlers (not MCP tools, no server.registerTool) ──
237
- registerAgentSquadHandlers();
238
- }
239
- //# sourceMappingURL=register-all-tools.js.map
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerAnalysisMonitoringGroupTools(s: McpServer): void;
3
- //# sourceMappingURL=group-analysis-monitoring.d.ts.map