@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.
- package/CHANGELOG.md +21 -0
- package/dist/config/license-plans.json +65 -361
- package/dist/engine/core-bridge.js +35 -4
- package/dist/engine/hooks/file-watcher.d.ts +6 -0
- package/dist/engine/hooks/file-watcher.js +69 -16
- package/dist/tools/git/hook-ops.js +23 -9
- package/dist/tools/tool-registry/group-infra.js +22 -0
- package/package.json +7 -7
- package/dist/engine/escalator/index.d.ts +0 -5
- package/dist/engine/escalator/index.js +0 -5
- package/dist/engine/freeze/retro-audit.d.ts +0 -6
- package/dist/engine/freeze/retro-audit.js +0 -24
- package/dist/engine/heal/backup.d.ts +0 -9
- package/dist/engine/heal/backup.js +0 -21
- package/dist/engine/idioma-validator/index.d.ts +0 -17
- package/dist/engine/idioma-validator/index.js +0 -89
- package/dist/engine/saga/index.d.ts +0 -4
- package/dist/engine/saga/index.js +0 -4
- package/dist/engine/spec-state-machine/index.d.ts +0 -3
- package/dist/engine/spec-state-machine/index.js +0 -2
- package/dist/engine/spec-summary-html/dashboard-renderer.d.ts +0 -6
- package/dist/engine/spec-summary-html/dashboard-renderer.js +0 -333
- package/dist/engine/triagier/index.d.ts +0 -5
- package/dist/engine/triagier/index.js +0 -5
- package/dist/engine/universal-rules/index.d.ts +0 -5
- package/dist/engine/universal-rules/index.js +0 -6
- package/dist/testing/cassette/index.d.ts +0 -23
- package/dist/testing/cassette/index.js +0 -26
- package/dist/tools/domain-bundle-handler.d.ts +0 -37
- package/dist/tools/domain-bundle-handler.js +0 -71
- package/dist/tools/figma/rules-file.d.ts +0 -5
- package/dist/tools/figma/rules-file.js +0 -45
- package/dist/tools/heal-planu-root.d.ts +0 -8
- package/dist/tools/heal-planu-root.js +0 -144
- package/dist/tools/opencode-host-adapter.d.ts +0 -3
- package/dist/tools/opencode-host-adapter.js +0 -33
- package/dist/tools/plan-team-distribution.d.ts +0 -3
- package/dist/tools/plan-team-distribution.js +0 -71
- package/dist/tools/reconcile-status-json.d.ts +0 -4
- package/dist/tools/reconcile-status-json.js +0 -209
- package/dist/tools/register-all-tools.d.ts +0 -8
- package/dist/tools/register-all-tools.js +0 -239
- package/dist/tools/tool-registry/group-analysis-monitoring.d.ts +0 -3
- package/dist/tools/tool-registry/group-analysis-monitoring.js +0 -942
- package/dist/tools/tool-registry/group-integrations.d.ts +0 -3
- package/dist/tools/tool-registry/group-integrations.js +0 -1046
- package/dist/tools/tool-registry/group-misc.d.ts +0 -3
- package/dist/tools/tool-registry/group-misc.js +0 -1367
- package/dist/tools/tool-registry/group-platform.d.ts +0 -3
- package/dist/tools/tool-registry/group-platform.js +0 -1681
- package/dist/tools/tool-registry/group-session-knowledge.d.ts +0 -3
- package/dist/tools/tool-registry/group-session-knowledge.js +0 -1416
- package/dist/tools/tool-registry/group-spec-ops.d.ts +0 -3
- package/dist/tools/tool-registry/group-spec-ops.js +0 -917
- package/dist/tools/workspace-overview.d.ts +0 -4
- package/dist/tools/workspace-overview.js +0 -316
- package/dist/transports/middleware/index.d.ts +0 -9
- package/dist/transports/middleware/index.js +0 -7
- package/dist/transports/middleware/with-sandbox.d.ts +0 -21
- package/dist/transports/middleware/with-sandbox.js +0 -68
- package/dist/types/heal.d.ts +0 -18
- package/dist/types/heal.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## [4.1.3] - 2026-05-21
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
- Make the TypeScript file watcher fallback portable across operating systems by avoiding non-portable recursive `fs.watch` mode.
|
|
5
|
+
- Keep the native-core fallback path non-fatal when a platform-specific binary is unavailable.
|
|
6
|
+
|
|
7
|
+
### Tests
|
|
8
|
+
- Add coverage to prevent reintroducing recursive watcher mode in the portable fallback.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## [4.1.2] - 2026-05-21
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
- Remove unused legacy Planu files from the runtime surface and keep license tool registration strict.
|
|
15
|
+
- Restore missing OAuth MCP registrations for `start_oauth_flow`, `oauth_status`, and `configure_oauth`.
|
|
16
|
+
- Harden generated Git hooks so changed-file JSON generation avoids awk portability failures and integer parsing warnings.
|
|
17
|
+
|
|
18
|
+
### Tests
|
|
19
|
+
- Add hook-generation coverage for portable post-commit changed-file handling.
|
|
20
|
+
|
|
21
|
+
|
|
1
22
|
## [4.1.1] - 2026-05-21
|
|
2
23
|
|
|
3
24
|
### Features
|
|
@@ -18,510 +18,214 @@
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"freeTools": [
|
|
21
|
-
"add_comment",
|
|
22
|
-
"analyze_performance_impact",
|
|
23
|
-
"analyze_spec_size",
|
|
24
|
-
"approval_status",
|
|
25
|
-
"capture_idea",
|
|
26
|
-
"check_config_health",
|
|
27
|
-
"check_parallel_safety",
|
|
28
|
-
"check_spec_lock",
|
|
29
|
-
"check_versions",
|
|
30
|
-
"clarify_requirements",
|
|
31
|
-
"configure_figma",
|
|
32
|
-
"configure_telemetry",
|
|
33
|
-
"consult_docs",
|
|
34
|
-
"create_rule",
|
|
35
|
-
"create_skill",
|
|
36
|
-
"create_spec",
|
|
37
|
-
"delete_decision",
|
|
38
|
-
"delete_pattern",
|
|
39
|
-
"delete_project",
|
|
40
|
-
"delete_spec",
|
|
41
|
-
"detect_drift",
|
|
42
|
-
"discard_idea",
|
|
43
|
-
"estimate",
|
|
44
|
-
"export_specs_markdown",
|
|
45
|
-
"facilitate",
|
|
46
|
-
"filesystem_hooks_status",
|
|
47
|
-
"generate_docs",
|
|
48
|
-
"generate_execution_plan",
|
|
49
|
-
"generate_spec_dashboard",
|
|
50
|
-
"generate_tests",
|
|
51
|
-
"heal_spec_docs",
|
|
52
|
-
"init_constitution",
|
|
53
|
-
"init_project",
|
|
54
|
-
"learn_pattern",
|
|
55
|
-
"list_backlog",
|
|
56
|
-
"list_comments",
|
|
57
|
-
"list_lessons",
|
|
58
|
-
"list_locks",
|
|
59
|
-
"list_registered_projects",
|
|
60
|
-
"list_specs",
|
|
61
|
-
"list_templates",
|
|
62
|
-
"lock_spec",
|
|
63
|
-
"log_lesson",
|
|
64
|
-
"manage_git",
|
|
65
|
-
"manage_trash",
|
|
66
|
-
"planu_status",
|
|
67
|
-
"pr_status",
|
|
68
|
-
"promote_idea",
|
|
69
|
-
"record_actual",
|
|
70
|
-
"register_project_path",
|
|
71
|
-
"registry_install",
|
|
72
|
-
"registry_search",
|
|
73
|
-
"search_specs",
|
|
74
|
-
"search_suggestions",
|
|
75
|
-
"session_checkpoint",
|
|
76
|
-
"session_handoff",
|
|
77
|
-
"set_locale",
|
|
78
|
-
"set_work_mode",
|
|
79
|
-
"skill_install",
|
|
80
|
-
"skill_search",
|
|
81
|
-
"slack_status",
|
|
82
|
-
"submit_feedback",
|
|
83
|
-
"suggest_criteria",
|
|
84
|
-
"suggest_stack",
|
|
85
|
-
"summarize_spec",
|
|
86
|
-
"analytics_report",
|
|
87
|
-
"bump_spec_version",
|
|
88
|
-
"observatory_insights",
|
|
89
|
-
"manage_drift",
|
|
90
|
-
"tdd_scaffold",
|
|
91
|
-
"token_usage",
|
|
92
|
-
"tokens",
|
|
93
|
-
"triage_request",
|
|
94
|
-
"unlock_spec",
|
|
95
|
-
"unregister_project_path",
|
|
96
|
-
"update_status",
|
|
97
|
-
"update_status_batch",
|
|
98
|
-
"validate",
|
|
99
|
-
"worker_status",
|
|
100
|
-
"security_scan",
|
|
101
|
-
"set_context_profile",
|
|
102
|
-
"get_context_profile",
|
|
103
|
-
"list_context_profiles",
|
|
104
|
-
"detect_project_dna",
|
|
105
|
-
"preview_hooks",
|
|
106
|
-
"configure_sentry",
|
|
107
|
-
"sentry_status",
|
|
108
|
-
"generate_pr_description",
|
|
109
|
-
"configure_supabase",
|
|
110
|
-
"supabase_status",
|
|
111
|
-
"preview_release_notes",
|
|
112
|
-
"discover_skills_from_registries",
|
|
113
|
-
"start_oauth_flow",
|
|
114
|
-
"oauth_status",
|
|
115
|
-
"scan_crash_risks",
|
|
116
|
-
"compliance_gate_status",
|
|
117
|
-
"audit_schema_type_parity",
|
|
118
|
-
"check_update_status",
|
|
119
|
-
"enable_auto_update",
|
|
120
|
-
"configure_tdd_policy",
|
|
121
|
-
"generate_edge_tests",
|
|
122
|
-
"tdd_status",
|
|
123
|
-
"autopilot_audit",
|
|
124
|
-
"configure_permissions",
|
|
125
|
-
"install_plugins"
|
|
126
|
-
],
|
|
127
|
-
"proTools": [
|
|
128
21
|
"activate_group",
|
|
129
|
-
"add_figma_file",
|
|
130
22
|
"agent_run_history",
|
|
131
|
-
"
|
|
132
|
-
"analyze_breaking_changes",
|
|
133
|
-
"analyze_code_impact",
|
|
134
|
-
"analyze_figma_flows",
|
|
23
|
+
"analyze_performance_impact",
|
|
135
24
|
"analyze_spec_dependencies",
|
|
136
|
-
"
|
|
137
|
-
"apply_merge",
|
|
138
|
-
"apply_migration_cleanup",
|
|
139
|
-
"apply_template",
|
|
140
|
-
"approve_checkpoint",
|
|
25
|
+
"approval_status",
|
|
141
26
|
"approve_spec",
|
|
142
|
-
"approve_testimonial",
|
|
143
27
|
"architecture_lint",
|
|
144
|
-
"archive_spec_context",
|
|
145
28
|
"assess_merge_risk",
|
|
146
29
|
"assign_role",
|
|
147
|
-
"audit",
|
|
148
30
|
"audit_claude_config",
|
|
149
31
|
"audit_log_export",
|
|
32
|
+
"audit_schema_type_parity",
|
|
150
33
|
"audit_specs_drift",
|
|
151
|
-
"audit_stack",
|
|
152
34
|
"audit_trail",
|
|
153
|
-
"
|
|
154
|
-
"auto_fix_validation",
|
|
155
|
-
"auto_reconcile",
|
|
156
|
-
"auto_remediate_compliance",
|
|
157
|
-
"bootstrap_project_intelligence",
|
|
158
|
-
"bootstrap_skills",
|
|
159
|
-
"branch_spec",
|
|
160
|
-
"bulk_import",
|
|
161
|
-
"bulk_project_operations",
|
|
162
|
-
"calibrate_estimates",
|
|
163
|
-
"capture_learning",
|
|
35
|
+
"bump_spec_version",
|
|
164
36
|
"challenge_spec",
|
|
165
|
-
"characterize_legacy_code",
|
|
166
|
-
"check_api_compatibility",
|
|
167
|
-
"check_auto_promotion",
|
|
168
37
|
"check_compliance",
|
|
169
|
-
"
|
|
38
|
+
"check_config_health",
|
|
39
|
+
"check_parallel_safety",
|
|
170
40
|
"check_readiness",
|
|
171
41
|
"check_spec_accuracy",
|
|
172
|
-
"
|
|
173
|
-
"
|
|
42
|
+
"check_update_status",
|
|
43
|
+
"check_versions",
|
|
44
|
+
"clarify_requirements",
|
|
174
45
|
"compliance_coverage_report",
|
|
175
46
|
"compliance_gap_analysis",
|
|
47
|
+
"compliance_gate_status",
|
|
176
48
|
"compliance_score_report",
|
|
177
|
-
"compress_spec_history",
|
|
178
49
|
"config_health",
|
|
179
50
|
"configure_approval_policy",
|
|
180
|
-
"configure_auto_promotion",
|
|
181
|
-
"configure_autopilot",
|
|
182
|
-
"configure_checkpoint_policy",
|
|
183
|
-
"configure_code_graph",
|
|
184
51
|
"configure_compliance",
|
|
185
|
-
"configure_crash_rules",
|
|
186
52
|
"configure_deploy_target",
|
|
187
|
-
"configure_drift_monitoring",
|
|
188
|
-
"configure_figma_webhook",
|
|
189
|
-
"configure_filesystem_hooks",
|
|
190
|
-
"configure_hooks",
|
|
191
|
-
"configure_llm_providers",
|
|
192
53
|
"configure_memory",
|
|
193
54
|
"configure_oauth",
|
|
194
55
|
"configure_observability",
|
|
195
|
-
"configure_release_notes",
|
|
196
56
|
"configure_roles",
|
|
197
|
-
"configure_skill_registries",
|
|
198
|
-
"configure_slack",
|
|
199
|
-
"configure_spec_hooks",
|
|
200
57
|
"configure_squad",
|
|
58
|
+
"configure_tdd_policy",
|
|
59
|
+
"configure_telemetry",
|
|
201
60
|
"configure_webhook",
|
|
202
61
|
"configure_workers",
|
|
62
|
+
"consult_docs",
|
|
203
63
|
"context_budget",
|
|
204
|
-
"context_budget_config",
|
|
205
|
-
"context_window_status",
|
|
206
|
-
"contribute_context",
|
|
207
64
|
"convert_to_bdd",
|
|
208
|
-
"cookbook_apply",
|
|
209
|
-
"cookbook_contribute",
|
|
210
|
-
"cookbook_get",
|
|
211
|
-
"cookbook_list",
|
|
212
|
-
"cookbook_search",
|
|
213
65
|
"coverage_gap_analyzer",
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"
|
|
66
|
+
"create_rule",
|
|
67
|
+
"create_skill",
|
|
68
|
+
"create_spec",
|
|
217
69
|
"data_governance",
|
|
218
70
|
"data_retention_policy",
|
|
219
|
-
"debt_forecast",
|
|
220
71
|
"decompose_spec",
|
|
221
72
|
"define_spec_lint_rule",
|
|
222
73
|
"define_ui_contract",
|
|
223
74
|
"delete_spec_lint_rule",
|
|
224
|
-
"dependency_health",
|
|
225
|
-
"dependency_impact_report",
|
|
226
75
|
"deploy_spec",
|
|
227
76
|
"deploy_status",
|
|
228
|
-
"design_schema",
|
|
229
77
|
"detect_agent",
|
|
230
|
-
"
|
|
231
|
-
"detect_deprecations",
|
|
232
|
-
"detect_duplication",
|
|
233
|
-
"detect_hyrum_risks",
|
|
234
|
-
"diff_spec_versions",
|
|
235
|
-
"disable_spec_hook",
|
|
78
|
+
"detect_drift",
|
|
236
79
|
"discover_docs_url",
|
|
237
80
|
"discover_mcps",
|
|
238
81
|
"discover_registry",
|
|
239
|
-
"doc_compliance_report",
|
|
240
|
-
"drift_alert_rules",
|
|
241
|
-
"drift_summary_report",
|
|
242
|
-
"e2e_test_status",
|
|
243
82
|
"ears_lint",
|
|
244
83
|
"ecosystem_status",
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
"enrich_specs_from_figma",
|
|
84
|
+
"enable_auto_update",
|
|
85
|
+
"estimate",
|
|
248
86
|
"estimate_ai_cost",
|
|
249
|
-
"estimation_accuracy_report",
|
|
250
87
|
"eval_rule",
|
|
251
88
|
"eval_skill",
|
|
252
|
-
"event_contracts",
|
|
253
89
|
"export_audit_trail",
|
|
254
|
-
"export_gherkin",
|
|
255
|
-
"export_session",
|
|
256
90
|
"export_spec",
|
|
257
|
-
"export_spec_bundle",
|
|
258
|
-
"export_specs_csv",
|
|
259
91
|
"expose_spec_as_prompt",
|
|
260
|
-
"
|
|
261
|
-
"extract_lessons_from_text",
|
|
262
|
-
"figma_status",
|
|
263
|
-
"figma_visual_diff_report",
|
|
264
|
-
"fix_crash_risks",
|
|
265
|
-
"flag_spec_gap",
|
|
266
|
-
"force_status_analytics",
|
|
92
|
+
"facilitate",
|
|
267
93
|
"gc_data_projects",
|
|
268
|
-
"generate_adr",
|
|
269
|
-
"generate_annotations",
|
|
270
94
|
"generate_api_client",
|
|
271
95
|
"generate_attestation",
|
|
272
96
|
"generate_automation_guide",
|
|
273
97
|
"generate_batch_script",
|
|
274
|
-
"generate_changelog",
|
|
275
98
|
"generate_checklist",
|
|
276
|
-
"generate_ci",
|
|
277
99
|
"generate_compliance_report",
|
|
278
100
|
"generate_compliance_tests",
|
|
279
101
|
"generate_diagram",
|
|
102
|
+
"generate_docs",
|
|
280
103
|
"generate_docs_site",
|
|
281
|
-
"
|
|
282
|
-
"
|
|
283
|
-
"generate_figma_rules_file",
|
|
284
|
-
"generate_hooks_for_stack",
|
|
104
|
+
"generate_edge_tests",
|
|
105
|
+
"generate_execution_plan",
|
|
285
106
|
"generate_ide_config",
|
|
286
|
-
"generate_infrastructure",
|
|
287
107
|
"generate_orchestration_script",
|
|
288
|
-
"generate_planu_ci",
|
|
289
108
|
"generate_proposal",
|
|
290
|
-
"generate_release_notes",
|
|
291
|
-
"generate_rls_spec",
|
|
292
109
|
"generate_rules",
|
|
293
110
|
"generate_skill",
|
|
294
|
-
"
|
|
295
|
-
"generate_spec_from_commit_range",
|
|
296
|
-
"generate_spec_from_design",
|
|
297
|
-
"generate_spec_from_diff",
|
|
111
|
+
"generate_spec_dashboard",
|
|
298
112
|
"generate_spec_from_issue",
|
|
299
|
-
"generate_spec_from_pr",
|
|
300
|
-
"generate_specs_from_figma_file",
|
|
301
|
-
"generate_steering_file",
|
|
302
113
|
"generate_sub_agent",
|
|
303
|
-
"
|
|
114
|
+
"generate_tests",
|
|
304
115
|
"generate_validation_schema",
|
|
305
|
-
"get_figma_context_for_spec",
|
|
306
|
-
"git_diff_to_spec_impact",
|
|
307
|
-
"global_rules_status",
|
|
308
116
|
"graph_specs",
|
|
309
117
|
"guided_tour",
|
|
310
|
-
"
|
|
311
|
-
"
|
|
312
|
-
"
|
|
313
|
-
"housekeeping_sweep",
|
|
314
|
-
"import_figma_project",
|
|
315
|
-
"import_gherkin",
|
|
316
|
-
"import_spec",
|
|
317
|
-
"import_spec_bundle",
|
|
318
|
-
"inject_component_context",
|
|
319
|
-
"inject_criteria",
|
|
320
|
-
"inject_quality_gates",
|
|
118
|
+
"heal_spec_docs",
|
|
119
|
+
"init_constitution",
|
|
120
|
+
"init_project",
|
|
321
121
|
"integrate_pm",
|
|
322
122
|
"issue_reviewer_token",
|
|
323
|
-
"
|
|
324
|
-
"knowledge_summary",
|
|
123
|
+
"learn_pattern",
|
|
325
124
|
"legal_compliance_report",
|
|
326
|
-
"link_pr_to_spec",
|
|
327
|
-
"list_domain_bundles",
|
|
328
|
-
"list_figma_files",
|
|
329
|
-
"list_figma_frames",
|
|
330
|
-
"list_figma_responsive_frames",
|
|
331
125
|
"list_groups",
|
|
332
|
-
"
|
|
333
|
-
"list_sessions",
|
|
334
|
-
"list_spec_bindings",
|
|
335
|
-
"list_spec_hooks",
|
|
126
|
+
"list_registered_projects",
|
|
336
127
|
"list_spec_lint_rules",
|
|
337
128
|
"list_spec_prompts",
|
|
338
|
-
"
|
|
339
|
-
"list_steering_files",
|
|
340
|
-
"list_storybook_components",
|
|
341
|
-
"list_tech_debt",
|
|
342
|
-
"list_testimonials",
|
|
129
|
+
"list_specs",
|
|
343
130
|
"living_reconcile_spec",
|
|
344
|
-
"living_spec_coverage",
|
|
345
|
-
"living_spec_status",
|
|
346
|
-
"living_spec_watch",
|
|
347
|
-
"llm_provider_status",
|
|
348
|
-
"log_decision",
|
|
349
131
|
"manage_context",
|
|
350
|
-
"
|
|
351
|
-
"manage_hooks",
|
|
132
|
+
"manage_git",
|
|
352
133
|
"manage_plugins",
|
|
353
|
-
"manage_scope",
|
|
354
|
-
"mark_as_spec_source",
|
|
355
134
|
"memory_status",
|
|
356
|
-
"merge_hooks",
|
|
357
|
-
"merge_preview",
|
|
358
|
-
"merge_spec_branch",
|
|
359
|
-
"migrate_tech",
|
|
360
135
|
"multi_agent_review",
|
|
361
136
|
"onboarding_checklist",
|
|
362
137
|
"onboarding_progress",
|
|
363
|
-
"optimize_context",
|
|
364
|
-
"opencode_host_adapter",
|
|
365
|
-
"optimize_spec_scheduling",
|
|
366
138
|
"orchestrate",
|
|
367
|
-
"
|
|
368
|
-
"orchestrate_runtime",
|
|
139
|
+
"oauth_status",
|
|
369
140
|
"outbound_webhook_status",
|
|
370
141
|
"package_handoff",
|
|
371
142
|
"paradigm_report",
|
|
372
|
-
"
|
|
373
|
-
"plan_mode",
|
|
374
|
-
"plan_team_distribution",
|
|
375
|
-
"plan_upgrade",
|
|
376
|
-
"planu_session_checkpoint",
|
|
143
|
+
"planu_status",
|
|
377
144
|
"publish_registry",
|
|
378
145
|
"quick_start",
|
|
379
|
-
"reality_check",
|
|
380
146
|
"recommend_model",
|
|
381
147
|
"reconcile_hooks",
|
|
382
|
-
"reconcile_interactive_question_hooks",
|
|
383
148
|
"reconcile_rules",
|
|
384
149
|
"reconcile_skills",
|
|
385
150
|
"reconcile_spec",
|
|
386
151
|
"reconcile_universal_rules",
|
|
387
152
|
"red_team",
|
|
388
|
-
"
|
|
389
|
-
"
|
|
153
|
+
"register_project_path",
|
|
154
|
+
"registry_install",
|
|
390
155
|
"registry_login",
|
|
391
156
|
"registry_logout",
|
|
392
157
|
"registry_publish",
|
|
158
|
+
"registry_search",
|
|
393
159
|
"registry_whoami",
|
|
394
|
-
"reject_checkpoint",
|
|
395
|
-
"remove_figma_file",
|
|
396
|
-
"remove_figma_webhook",
|
|
397
|
-
"remove_slack",
|
|
398
160
|
"remove_webhook",
|
|
399
161
|
"render_spec_for_provider",
|
|
400
162
|
"repair_frontmatter_drift",
|
|
401
|
-
"reply_comment",
|
|
402
163
|
"request_changes",
|
|
403
|
-
"request_context",
|
|
404
|
-
"require_checkpoint",
|
|
405
|
-
"resolve_comment",
|
|
406
|
-
"resolve_drift_violations",
|
|
407
|
-
"resolve_feedback",
|
|
408
|
-
"resolve_sync_conflict",
|
|
409
|
-
"resolve_tech_debt",
|
|
410
|
-
"restore_archived_context",
|
|
411
|
-
"restore_session",
|
|
412
164
|
"reverse_engineer",
|
|
413
|
-
"reverse_engineer_tests",
|
|
414
|
-
"review_pr",
|
|
415
165
|
"rewrite_criteria_ears",
|
|
416
|
-
"rollback_release",
|
|
417
166
|
"run_mutation_hints",
|
|
418
167
|
"run_spec_lint",
|
|
419
|
-
"run_validation_loop",
|
|
420
168
|
"scaffold_plugin",
|
|
421
169
|
"scan_orphan_spec_refs",
|
|
422
170
|
"scan_project",
|
|
423
|
-
"seams_detector",
|
|
424
171
|
"search_all_projects",
|
|
425
|
-
"security_check",
|
|
426
172
|
"security_report",
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
430
|
-
"
|
|
431
|
-
"sentry_errors_report",
|
|
432
|
-
"similar_problems_finder",
|
|
433
|
-
"simplicity_metric",
|
|
434
|
-
"simulate_parallel_execution",
|
|
435
|
-
"slack_notify",
|
|
173
|
+
"set_locale",
|
|
174
|
+
"set_work_mode",
|
|
175
|
+
"skill_install",
|
|
176
|
+
"skill_search",
|
|
436
177
|
"solid_check",
|
|
437
|
-
"spec_obesity_healer",
|
|
438
|
-
"smart_merge_conflict_resolver",
|
|
439
|
-
"snapshot_spec_hashes",
|
|
440
178
|
"spec_coverage",
|
|
441
|
-
"
|
|
442
|
-
"spec_effectiveness_score",
|
|
443
|
-
"spec_health_check",
|
|
444
|
-
"spec_history",
|
|
445
|
-
"spec_quality_score",
|
|
446
|
-
"spec_usage_report",
|
|
447
|
-
"spec_version_history",
|
|
448
|
-
"split_spec",
|
|
179
|
+
"spec_obesity_healer",
|
|
449
180
|
"squad_status",
|
|
450
|
-
"
|
|
181
|
+
"ssr_back_migration",
|
|
182
|
+
"start_oauth_flow",
|
|
451
183
|
"start_onboarding",
|
|
452
|
-
"stop_hooks",
|
|
453
|
-
"suggest_deletions",
|
|
454
184
|
"suggest_mcp_server",
|
|
455
185
|
"suggest_mcps",
|
|
456
|
-
"
|
|
186
|
+
"suggest_stack",
|
|
457
187
|
"suggest_token_optimizer",
|
|
458
188
|
"suggest_tooling",
|
|
459
|
-
"
|
|
189
|
+
"summarize_spec",
|
|
460
190
|
"sync_ai_configs",
|
|
461
|
-
"sync_code_to_spec",
|
|
462
|
-
"sync_figma_changes",
|
|
463
|
-
"sync_figma_code_connect",
|
|
464
|
-
"sync_figma_tokens_to_code",
|
|
465
|
-
"sync_spec_from_code",
|
|
466
191
|
"sync_spec_state",
|
|
467
|
-
"
|
|
468
|
-
"
|
|
469
|
-
"sync_supabase_schema",
|
|
470
|
-
"team_analytics",
|
|
471
|
-
"tech_debt_budget",
|
|
472
|
-
"tech_debt_report",
|
|
192
|
+
"tdd_scaffold",
|
|
193
|
+
"tdd_status",
|
|
473
194
|
"telemetry_health",
|
|
474
|
-
"test_spec_hook",
|
|
475
|
-
"three_way_merge",
|
|
476
|
-
"token_intelligence",
|
|
477
195
|
"token_optimizer_status",
|
|
478
|
-
"token_savings_report",
|
|
479
|
-
"track_tech_debt",
|
|
480
|
-
"type_safety_gate",
|
|
481
196
|
"transform_code",
|
|
482
|
-
"
|
|
483
|
-
"
|
|
197
|
+
"triage_request",
|
|
198
|
+
"type_safety_gate",
|
|
199
|
+
"unregister_project_path",
|
|
484
200
|
"update_registry",
|
|
485
|
-
"
|
|
201
|
+
"update_status",
|
|
202
|
+
"update_status_batch",
|
|
203
|
+
"validate",
|
|
486
204
|
"validate_api_contract",
|
|
487
205
|
"validate_browser",
|
|
488
206
|
"validate_criteria_quality",
|
|
489
207
|
"validate_docs_registry",
|
|
490
|
-
"validate_team_results",
|
|
491
|
-
"validate_token_consistency",
|
|
492
208
|
"validate_workflow",
|
|
493
|
-
"velocity_report",
|
|
494
|
-
"velocity_trend",
|
|
495
|
-
"verify_spec_compliance",
|
|
496
|
-
"version_spec",
|
|
497
209
|
"verify_integrations",
|
|
498
|
-
"
|
|
499
|
-
"
|
|
500
|
-
"workload_distribution",
|
|
501
|
-
"workspace_alerts",
|
|
502
|
-
"workspace_health",
|
|
503
|
-
"workspace_overview",
|
|
504
|
-
"workspace_report",
|
|
505
|
-
"workspace_search",
|
|
506
|
-
"project_overview",
|
|
507
|
-
"reconcile_status_json",
|
|
508
|
-
"ssr_back_migration"
|
|
210
|
+
"verify_spec_compliance",
|
|
211
|
+
"worker_status"
|
|
509
212
|
],
|
|
213
|
+
"proTools": ["audit", "design_schema", "generate_adr", "security_check"],
|
|
510
214
|
"alwaysAllowed": [
|
|
511
215
|
"activate_license",
|
|
216
|
+
"configure_compliance_gate",
|
|
512
217
|
"deactivate_license",
|
|
218
|
+
"fix_schema_type_parity",
|
|
513
219
|
"license_status",
|
|
514
|
-
"
|
|
515
|
-
"usage_report",
|
|
516
|
-
"tool_usage_report",
|
|
220
|
+
"pin_version",
|
|
517
221
|
"start_dashboard",
|
|
518
|
-
"stop_dashboard",
|
|
519
222
|
"start_webhook",
|
|
223
|
+
"stop_dashboard",
|
|
520
224
|
"stop_webhook",
|
|
521
|
-
"
|
|
522
|
-
"
|
|
523
|
-
"
|
|
524
|
-
"
|
|
225
|
+
"tool_usage_report",
|
|
226
|
+
"usage_report",
|
|
227
|
+
"usage_stats",
|
|
228
|
+
"webhook_status"
|
|
525
229
|
],
|
|
526
230
|
"variantMapping": {
|
|
527
231
|
"Planu Pro": "pro",
|
|
@@ -180,6 +180,7 @@ const getNative = () => process.env.DISABLE_NATIVE_CORE === '1' ? null : nativeM
|
|
|
180
180
|
const PROJECT_ID_RE = /^[a-f0-9]{16,64}$/;
|
|
181
181
|
const SPEC_ANNOTATION_RE = /@spec\s+(SPEC-\d+)(?:\s+AC:([\d,]+))?(?:\s+(.*))?/;
|
|
182
182
|
const SCANNABLE_EXTS = new Set(['.ts', '.js', '.tsx', '.jsx', '.rs', '.py', '.go']);
|
|
183
|
+
const MAX_TS_WATCHERS = 128;
|
|
183
184
|
const IGNORED_DIRS = new Set([
|
|
184
185
|
'node_modules',
|
|
185
186
|
'.git',
|
|
@@ -671,11 +672,41 @@ export function startNativeWatcher(rootPath, callback) {
|
|
|
671
672
|
n.startProjectWatcher(rootPath, callback);
|
|
672
673
|
return;
|
|
673
674
|
}
|
|
674
|
-
// TS fallback:
|
|
675
|
+
// TS fallback: watch each existing directory. Node's `recursive: true` is not
|
|
676
|
+
// portable across all OS/libc combinations, and unsupported platforms must not
|
|
677
|
+
// crash the MCP server when the native watcher is unavailable.
|
|
675
678
|
const fs = nodeFs;
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
+
let watcherCount = 0;
|
|
680
|
+
const watchDir = (absDir, relDir) => {
|
|
681
|
+
if (watcherCount >= MAX_TS_WATCHERS) {
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
684
|
+
const watcher = fs.watch(absDir, {}, (event, filename) => {
|
|
685
|
+
callback(null, `${event}:${join(relDir, filename?.toString() ?? '')}`);
|
|
686
|
+
});
|
|
687
|
+
watcherCount++;
|
|
688
|
+
watcher.on('error', (err) => {
|
|
689
|
+
callback(err, '');
|
|
690
|
+
});
|
|
691
|
+
};
|
|
692
|
+
const walkDirs = (absDir, relDir) => {
|
|
693
|
+
watchDir(absDir, relDir);
|
|
694
|
+
let entries;
|
|
695
|
+
try {
|
|
696
|
+
entries = readdirSync(absDir, { withFileTypes: true });
|
|
697
|
+
}
|
|
698
|
+
catch {
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
701
|
+
for (const entry of entries) {
|
|
702
|
+
if (!entry.isDirectory() || IGNORED_DIRS.has(entry.name)) {
|
|
703
|
+
continue;
|
|
704
|
+
}
|
|
705
|
+
const childRel = join(relDir, entry.name);
|
|
706
|
+
walkDirs(join(absDir, entry.name), childRel);
|
|
707
|
+
}
|
|
708
|
+
};
|
|
709
|
+
walkDirs(rootPath, '');
|
|
679
710
|
}
|
|
680
711
|
export const isNativeActive = () => nativeModule !== null && process.env.DISABLE_NATIVE_CORE !== '1';
|
|
681
712
|
export const nativeLoadDiagnostic = () => loadDiagnostic;
|
|
@@ -18,9 +18,11 @@ export declare function matchesGlobPattern(filePath: string, pattern: string): b
|
|
|
18
18
|
export declare function matchesPatterns(filePath: string, include?: string[], exclude?: string[]): boolean;
|
|
19
19
|
export declare class FileWatcher extends EventEmitter {
|
|
20
20
|
private watcher;
|
|
21
|
+
private readonly watchers;
|
|
21
22
|
private readonly rootDir;
|
|
22
23
|
private readonly include;
|
|
23
24
|
private readonly exclude;
|
|
25
|
+
private readonly maxWatchers;
|
|
24
26
|
/** Track known files to distinguish create vs modify */
|
|
25
27
|
private readonly knownFiles;
|
|
26
28
|
private closed;
|
|
@@ -42,6 +44,10 @@ export declare class FileWatcher extends EventEmitter {
|
|
|
42
44
|
* Graceful shutdown: release all handles.
|
|
43
45
|
*/
|
|
44
46
|
close(): void;
|
|
47
|
+
private startTypeScriptWatcher;
|
|
48
|
+
private watchDirectory;
|
|
49
|
+
private watchSubdirectories;
|
|
50
|
+
private emitWatcherError;
|
|
45
51
|
private handleFsEvent;
|
|
46
52
|
private determineEventType;
|
|
47
53
|
}
|