@planu/cli 4.14.1 → 5.0.0

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 (424) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/LICENSE +55 -12
  3. package/README.md +10 -2
  4. package/dist/cli/commands/install.d.ts +1 -12
  5. package/dist/cli/commands/install.js +9 -65
  6. package/dist/cli/commands/job.js +4 -3
  7. package/dist/cli/commands/spec.js +2 -2
  8. package/dist/cli/commands/validate.js +2 -2
  9. package/dist/cli/router.js +1 -3
  10. package/dist/config/environment-schema.json +1 -3
  11. package/dist/config/official-sdd-tools.d.ts +4 -0
  12. package/dist/config/official-sdd-tools.js +35 -0
  13. package/dist/config/product-public.d.ts +139 -3
  14. package/dist/config/product-public.js +8 -1
  15. package/dist/config/product-public.json +7 -36
  16. package/dist/config/registries/hosts/codex.json +20 -363
  17. package/dist/config/release-policy.json +84 -2
  18. package/dist/config/runtime-policy.json +12 -1
  19. package/dist/config/skill-templates/planu-resume-work.md +2 -2
  20. package/dist/core/index.d.ts +1 -1
  21. package/dist/core/spec-validator.d.ts +4 -4
  22. package/dist/core/spec-validator.js +1 -1
  23. package/dist/engine/abortable-process-runner.d.ts +20 -2
  24. package/dist/engine/abortable-process-runner.js +243 -74
  25. package/dist/engine/ambiguity-scorer.js +4 -26
  26. package/dist/engine/auth/scope-mapper.js +1 -7
  27. package/dist/engine/autopilot/state-updater.js +4 -4
  28. package/dist/engine/cascade-hooks/hooks/review-enricher.hook.js +9 -6
  29. package/dist/engine/cascade-hooks/state-drift-detector.d.ts +3 -3
  30. package/dist/engine/cascade-hooks/state-drift-detector.js +1 -1
  31. package/dist/engine/ci-generator/planu-config.js +1 -7
  32. package/dist/engine/clarification-gate/gate.d.ts +3 -3
  33. package/dist/engine/code-scanner/layer-scanner.js +6 -22
  34. package/dist/engine/core-bridge.d.ts +3 -3
  35. package/dist/engine/cost-guardrails.d.ts +1 -1
  36. package/dist/engine/cost-guardrails.js +1 -1
  37. package/dist/engine/criterion-identity.d.ts +1 -0
  38. package/dist/engine/criterion-identity.js +7 -0
  39. package/dist/engine/dashboard/data-loader.js +2 -7
  40. package/dist/engine/dashboard/templates-layout.js +0 -3
  41. package/dist/engine/dashboard/templates-project.js +1 -13
  42. package/dist/engine/docs-site-generator/data-collector.d.ts +1 -1
  43. package/dist/engine/docs-site-generator/data-collector.js +7 -28
  44. package/dist/engine/docs-site-generator/tools-renderer.js +3 -10
  45. package/dist/engine/evidence-gates/artifact-reader.d.ts +10 -1
  46. package/dist/engine/evidence-gates/artifact-reader.js +115 -2
  47. package/dist/engine/evidence-gates/lifecycle-gate.js +4 -3
  48. package/dist/engine/evidence-gates/reconciliation-freshness.d.ts +11 -0
  49. package/dist/engine/evidence-gates/reconciliation-freshness.js +72 -0
  50. package/dist/engine/evidence-index/done-drift.d.ts +1 -1
  51. package/dist/engine/evidence-index/done-drift.js +40 -18
  52. package/dist/engine/execution/context.js +3 -0
  53. package/dist/engine/execution/durable-job-heartbeat-runtime.d.ts +4 -0
  54. package/dist/engine/execution/durable-job-heartbeat-runtime.js +400 -0
  55. package/dist/engine/execution/job-runtime.d.ts +30 -0
  56. package/dist/engine/execution/job-runtime.js +114 -6
  57. package/dist/engine/execution/public-job-sanitizer.d.ts +4 -0
  58. package/dist/engine/execution/public-job-sanitizer.js +31 -0
  59. package/dist/engine/execution/validate-job-executor.d.ts +12 -1
  60. package/dist/engine/execution/validate-job-executor.js +549 -86
  61. package/dist/engine/execution/validate-job-payload.js +107 -50
  62. package/dist/engine/execution/validate-job-recovery.js +1 -1
  63. package/dist/engine/execution/validate-worker-runtime.d.ts +5 -0
  64. package/dist/engine/execution/validate-worker-runtime.js +90 -2
  65. package/dist/engine/execution/validate-worker-thread.js +17 -24
  66. package/dist/engine/handoff-artifacts/schemas.d.ts +2 -1
  67. package/dist/engine/handoff-artifacts/schemas.js +33 -0
  68. package/dist/engine/handoff-packager.d.ts +19 -0
  69. package/dist/engine/handoff-packager.js +415 -13
  70. package/dist/engine/hooks/effort-configurator.js +1 -1
  71. package/dist/engine/impact-detector/test-break-predictor.js +3 -3
  72. package/dist/engine/impact-detector/tool-registration.js +1 -1
  73. package/dist/engine/implementation-contract/renderer.js +23 -8
  74. package/dist/engine/lifecycle-reconciliation-io.d.ts +11 -0
  75. package/dist/engine/lifecycle-reconciliation-io.js +180 -0
  76. package/dist/engine/lifecycle-reconciliation.d.ts +16 -0
  77. package/dist/engine/lifecycle-reconciliation.js +406 -0
  78. package/dist/engine/local-first/tool-classification.js +2 -0
  79. package/dist/engine/macos-keychain-native-port.d.ts +5 -0
  80. package/dist/engine/macos-keychain-native-port.js +19 -7
  81. package/dist/engine/migrations/remove-commercial-state.d.ts +3 -0
  82. package/dist/engine/migrations/remove-commercial-state.js +343 -0
  83. package/dist/engine/network-policy.js +1 -0
  84. package/dist/engine/planu-core.darwin-arm64.node.manifest.json +7 -7
  85. package/dist/engine/planu-core.darwin-arm64.node.sbom.json +10 -10
  86. package/dist/engine/planu-core.darwin-x64.node.manifest.json +7 -7
  87. package/dist/engine/planu-core.darwin-x64.node.sbom.json +10 -10
  88. package/dist/engine/planu-core.linux-arm64-gnu.node.manifest.json +7 -7
  89. package/dist/engine/planu-core.linux-arm64-gnu.node.sbom.json +10 -10
  90. package/dist/engine/planu-core.linux-arm64-musl.node.manifest.json +7 -7
  91. package/dist/engine/planu-core.linux-arm64-musl.node.sbom.json +10 -10
  92. package/dist/engine/planu-core.linux-x64-gnu.node.manifest.json +7 -7
  93. package/dist/engine/planu-core.linux-x64-gnu.node.sbom.json +10 -10
  94. package/dist/engine/planu-core.linux-x64-musl.node.manifest.json +7 -7
  95. package/dist/engine/planu-core.linux-x64-musl.node.sbom.json +10 -10
  96. package/dist/engine/planu-core.win32-arm64-msvc.node.manifest.json +7 -7
  97. package/dist/engine/planu-core.win32-arm64-msvc.node.sbom.json +10 -10
  98. package/dist/engine/planu-core.win32-x64-msvc.node.manifest.json +7 -7
  99. package/dist/engine/planu-core.win32-x64-msvc.node.sbom.json +10 -10
  100. package/dist/engine/readiness-checker.d.ts +1 -16
  101. package/dist/engine/readiness-checker.js +27 -88
  102. package/dist/engine/runtime-policy.d.ts +2 -0
  103. package/dist/engine/runtime-policy.js +42 -5
  104. package/dist/engine/runtime-security/rate-limiter.js +0 -1
  105. package/dist/engine/safety/contained-project-file.d.ts +3 -0
  106. package/dist/engine/safety/contained-project-file.js +23 -0
  107. package/dist/engine/scope-boundaries/contradiction-checker.js +63 -1
  108. package/dist/engine/scope-boundaries/scope-validator.js +45 -7
  109. package/dist/engine/session/checkpoint-writer.js +0 -9
  110. package/dist/engine/spec-format/acceptance-criteria.d.ts +6 -2
  111. package/dist/engine/spec-format/acceptance-criteria.js +77 -18
  112. package/dist/engine/spec-format/markdown-sections.d.ts +14 -0
  113. package/dist/engine/spec-format/markdown-sections.js +105 -0
  114. package/dist/engine/spec-format/read-technical-section.js +33 -5
  115. package/dist/engine/spec-format/technical-md-populator.js +3 -2
  116. package/dist/engine/spec-format/unified-spec-builder.d.ts +7 -0
  117. package/dist/engine/spec-format/unified-spec-builder.js +202 -0
  118. package/dist/engine/spec-migrator/canonical-deduplicator.d.ts +18 -0
  119. package/dist/engine/spec-migrator/canonical-deduplicator.js +479 -0
  120. package/dist/engine/spec-migrator/filesystem-import.d.ts +4 -8
  121. package/dist/engine/spec-migrator/filesystem-import.js +121 -14
  122. package/dist/engine/spec-migrator/frontmatter-parser.js +32 -15
  123. package/dist/engine/spec-migrator/index.d.ts +1 -0
  124. package/dist/engine/spec-migrator/index.js +1 -0
  125. package/dist/engine/spec-state-machine/transition-spec.d.ts +6 -1
  126. package/dist/engine/spec-state-machine/transition-spec.js +10 -1
  127. package/dist/engine/technical-enricher/index.js +16 -8
  128. package/dist/engine/technical-enricher/render-enriched.d.ts +1 -0
  129. package/dist/engine/technical-enricher/render-enriched.js +42 -14
  130. package/dist/engine/telemetry/health-checker.js +53 -17
  131. package/dist/engine/telemetry/telemetry-client.js +26 -8
  132. package/dist/engine/text-signal-boundaries.d.ts +2 -0
  133. package/dist/engine/text-signal-boundaries.js +25 -2
  134. package/dist/engine/time/relative-date.d.ts +3 -0
  135. package/dist/engine/time/relative-date.js +16 -0
  136. package/dist/engine/timing/budget.d.ts +11 -0
  137. package/dist/engine/timing/budget.js +27 -9
  138. package/dist/engine/token-optimizer/analytics.d.ts +1 -1
  139. package/dist/engine/token-optimizer/analytics.js +5 -6
  140. package/dist/engine/usage-tracker/core.d.ts +2 -2
  141. package/dist/engine/usage-tracker/core.js +1 -2
  142. package/dist/engine/usage-tracker/index.d.ts +0 -3
  143. package/dist/engine/usage-tracker/index.js +0 -3
  144. package/dist/engine/usage-tracker/stats.d.ts +2 -2
  145. package/dist/engine/usage-tracker/stats.js +1 -28
  146. package/dist/engine/validation/durable-validation.d.ts +1 -1
  147. package/dist/engine/validation/durable-validation.js +3 -82
  148. package/dist/engine/validation/validation-freshness.d.ts +11 -1
  149. package/dist/engine/validation/validation-freshness.js +231 -91
  150. package/dist/engine/validation/validation-receipt.d.ts +9 -6
  151. package/dist/engine/validation/validation-receipt.js +84 -24
  152. package/dist/engine/validation/validation-source-digest.d.ts +2 -0
  153. package/dist/engine/validation/validation-source-digest.js +86 -0
  154. package/dist/engine/validation/validation-submission.d.ts +5 -4
  155. package/dist/engine/validation/validation-submission.js +25 -11
  156. package/dist/engine/validation/validation-worktree.d.ts +21 -0
  157. package/dist/engine/validation/validation-worktree.js +260 -0
  158. package/dist/engine/validation-impact-planner.d.ts +14 -2
  159. package/dist/engine/validation-impact-planner.js +0 -3
  160. package/dist/engine/validator/dor-dod.d.ts +1 -0
  161. package/dist/engine/validator/dor-dod.js +5 -3
  162. package/dist/engine/validator/extractors.d.ts +1 -5
  163. package/dist/engine/validator/extractors.js +24 -69
  164. package/dist/engine/validator/spec-compliance-runner.d.ts +12 -24
  165. package/dist/engine/validator/spec-compliance-runner.js +429 -211
  166. package/dist/engine/validator.js +35 -22
  167. package/dist/index.js +4 -16
  168. package/dist/resources/usage-stats-resource.js +2 -18
  169. package/dist/security/adapters/linux-secret-service.js +7 -3
  170. package/dist/security/adapters/windows-credential-manager.js +6 -4
  171. package/dist/server/routes/specs.js +10 -0
  172. package/dist/storage/base-store.d.ts +1 -1
  173. package/dist/storage/base-store.js +1 -1
  174. package/dist/storage/feedback-remote.d.ts +2 -3
  175. package/dist/storage/feedback-remote.js +45 -31
  176. package/dist/storage/global-store.d.ts +1 -17
  177. package/dist/storage/global-store.js +1 -42
  178. package/dist/storage/index.d.ts +0 -2
  179. package/dist/storage/index.js +0 -2
  180. package/dist/storage/migrations/canonical-storage.js +124 -11
  181. package/dist/storage/runtime-db.d.ts +9 -0
  182. package/dist/storage/runtime-db.js +64 -8
  183. package/dist/storage/spec-store.d.ts +14 -2
  184. package/dist/storage/spec-store.js +104 -14
  185. package/dist/storage/status-store/atomic-status-write.d.ts +5 -0
  186. package/dist/storage/status-store/atomic-status-write.js +57 -0
  187. package/dist/storage/status-store/file-lock.js +30 -11
  188. package/dist/storage/status-store/self-healing.js +3 -3
  189. package/dist/storage/status-store/version-sync.d.ts +2 -1
  190. package/dist/storage/status-store/version-sync.js +35 -40
  191. package/dist/storage/usage-store.d.ts +1 -5
  192. package/dist/storage/usage-store.js +0 -35
  193. package/dist/tools/auto-update-handler.d.ts +3 -3
  194. package/dist/tools/auto-update-handler.js +3 -3
  195. package/dist/tools/challenge-spec/resilience-challenge-scenarios.d.ts +2 -1
  196. package/dist/tools/challenge-spec/resilience-challenge-scenarios.js +10 -7
  197. package/dist/tools/challenge-spec/scenario-collector.js +1 -1
  198. package/dist/tools/challenge-spec/scenarios-data.js +1 -1
  199. package/dist/tools/challenge-spec/scenarios-utils.d.ts +1 -1
  200. package/dist/tools/challenge-spec/scenarios-utils.js +35 -11
  201. package/dist/tools/challenge-spec.js +5 -5
  202. package/dist/tools/check-readiness.js +1 -1
  203. package/dist/tools/configure-telemetry.js +30 -2
  204. package/dist/tools/create-spec/spec-builder.js +0 -11
  205. package/dist/tools/create-spec.d.ts +1 -0
  206. package/dist/tools/create-spec.js +444 -239
  207. package/dist/tools/git/branch-ops.d.ts +1 -1
  208. package/dist/tools/git/branch-ops.js +3 -2
  209. package/dist/tools/init-project/handler.js +10 -12
  210. package/dist/tools/init-project/host-assets-writer.js +26 -1
  211. package/dist/tools/init-project/lint-scaffolder.d.ts +3 -3
  212. package/dist/tools/init-project/migration-runner.d.ts +2 -4
  213. package/dist/tools/init-project/migration-runner.js +3 -2
  214. package/dist/tools/init-project/portable-index-reconciler.d.ts +4 -0
  215. package/dist/tools/init-project/portable-index-reconciler.js +14 -0
  216. package/dist/tools/init-project/result-builder.js +1 -3
  217. package/dist/tools/jobs/handlers.js +38 -6
  218. package/dist/tools/list-specs.js +5 -26
  219. package/dist/tools/merge-risk-handler.js +2 -2
  220. package/dist/tools/package-handoff.js +2 -0
  221. package/dist/tools/reconcile-spec.js +0 -27
  222. package/dist/tools/register-agent-squad-tools.js +2 -2
  223. package/dist/tools/register-platform-tools/design-stack-tools.js +11 -11
  224. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +7 -7
  225. package/dist/tools/register-sdd-tools.d.ts +1 -1
  226. package/dist/tools/register-sdd-tools.js +2 -29
  227. package/dist/tools/register-spec-tools/analysis-tools.js +8 -8
  228. package/dist/tools/register-spec-tools/core-spec-tools.js +17 -8
  229. package/dist/tools/safe-handler.d.ts +5 -13
  230. package/dist/tools/safe-handler.js +7 -23
  231. package/dist/tools/schemas/index.d.ts +1 -1
  232. package/dist/tools/schemas/index.js +1 -1
  233. package/dist/tools/schemas/output-schemas.d.ts +0 -23
  234. package/dist/tools/schemas/output-schemas.js +0 -28
  235. package/dist/tools/schemas/spec.d.ts +4 -0
  236. package/dist/tools/schemas/spec.js +3 -0
  237. package/dist/tools/schemas/validate-output-schema.d.ts +11 -0
  238. package/dist/tools/schemas/validate-output-schema.js +7 -0
  239. package/dist/tools/spec-prompt-handler.js +3 -3
  240. package/dist/tools/sync-spec-state-handler.d.ts +1 -1
  241. package/dist/tools/sync-spec-state-handler.js +1 -1
  242. package/dist/tools/tool-entry.d.ts +4 -4
  243. package/dist/tools/tool-entry.js +3 -3
  244. package/dist/tools/tool-registry/core-tools.js +31 -15
  245. package/dist/tools/tool-registry/group-infra.js +27 -110
  246. package/dist/tools/tool-registry/group-quality-compliance.js +26 -26
  247. package/dist/tools/tool-registry/inventory.d.ts +2 -0
  248. package/dist/tools/tool-registry/inventory.js +2 -0
  249. package/dist/tools/tool-registry-helpers.d.ts +3 -3
  250. package/dist/tools/tool-registry-helpers.js +3 -3
  251. package/dist/tools/tool-usage-report/registered-tools.d.ts +1 -1
  252. package/dist/tools/tool-usage-report/registered-tools.js +3 -15
  253. package/dist/tools/update-status/approval-gates.js +3 -0
  254. package/dist/tools/update-status/done-receipt-verifier.js +40 -27
  255. package/dist/tools/update-status/evidence-gate.js +36 -1
  256. package/dist/tools/update-status/file-sync.d.ts +2 -1
  257. package/dist/tools/update-status/file-sync.js +57 -6
  258. package/dist/tools/update-status/index.d.ts +2 -0
  259. package/dist/tools/update-status/index.js +95 -58
  260. package/dist/tools/update-status/response-builder.js +3 -3
  261. package/dist/tools/update-status/side-effects.d.ts +2 -0
  262. package/dist/tools/update-status/side-effects.js +2 -2
  263. package/dist/tools/update-status/transition-guard.js +32 -15
  264. package/dist/tools/update-status-actions.d.ts +4 -2
  265. package/dist/tools/update-status-actions.js +16 -14
  266. package/dist/tools/usage-report.js +1 -16
  267. package/dist/tools/usage-stats.js +1 -18
  268. package/dist/tools/usage-tracking.d.ts +4 -0
  269. package/dist/tools/usage-tracking.js +20 -0
  270. package/dist/tools/validate-lint.d.ts +1 -0
  271. package/dist/tools/validate-lint.js +1 -1
  272. package/dist/tools/validate.d.ts +2 -1
  273. package/dist/tools/validate.js +114 -34
  274. package/dist/transports/http-transport.js +6 -8
  275. package/dist/transports/mcp-types.d.ts +0 -2
  276. package/dist/transports/session-context.js +1 -1
  277. package/dist/types/cascade-hooks.d.ts +1 -1
  278. package/dist/types/ci.d.ts +0 -4
  279. package/dist/types/clarification-token.d.ts +1 -1
  280. package/dist/types/claude-code-runtime.d.ts +0 -27
  281. package/dist/types/commercial-migration.d.ts +17 -0
  282. package/dist/types/commercial-migration.js +2 -0
  283. package/dist/types/common/primitives.d.ts +0 -2
  284. package/dist/types/core-bridge.d.ts +4 -10
  285. package/dist/types/dashboard.d.ts +3 -7
  286. package/dist/types/docs.d.ts +0 -1
  287. package/dist/types/durable-job.d.ts +4 -4
  288. package/dist/types/durable-validation.d.ts +100 -2
  289. package/dist/types/durable-validation.js +165 -1
  290. package/dist/types/errors/structured-error.d.ts +3 -3
  291. package/dist/types/estimation.d.ts +2 -0
  292. package/dist/types/evidence-gates.d.ts +9 -1
  293. package/dist/types/execution.d.ts +2 -0
  294. package/dist/types/gemini-integration.d.ts +0 -11
  295. package/dist/types/handoff-artifacts.d.ts +41 -0
  296. package/dist/types/hooks-advanced.d.ts +0 -13
  297. package/dist/types/impact-detection.d.ts +2 -2
  298. package/dist/types/index.d.ts +2 -6
  299. package/dist/types/index.js +1 -5
  300. package/dist/types/kiro-integration.d.ts +0 -6
  301. package/dist/types/network-policy.d.ts +1 -1
  302. package/dist/types/project/lint-scaffolder.d.ts +1 -1
  303. package/dist/types/runtime-policy.d.ts +11 -0
  304. package/dist/types/session-safeguard.d.ts +0 -31
  305. package/dist/types/spec/canonical-repair.d.ts +81 -0
  306. package/dist/types/spec/canonical-repair.js +2 -0
  307. package/dist/types/spec/core.d.ts +14 -0
  308. package/dist/types/spec/index.d.ts +1 -0
  309. package/dist/types/spec/index.js +1 -0
  310. package/dist/types/spec/inputs.d.ts +29 -0
  311. package/dist/types/spec-format.d.ts +24 -0
  312. package/dist/types/telemetry.d.ts +4 -1
  313. package/dist/types/transport.d.ts +0 -2
  314. package/dist/types/usage.d.ts +1 -36
  315. package/dist/types/usage.js +1 -1
  316. package/dist/types/validate-worker.d.ts +6 -0
  317. package/dist/types/validation-receipt.d.ts +1 -1
  318. package/dist/types/validation.d.ts +2 -2
  319. package/package.json +16 -12
  320. package/planu-native.json +1 -1
  321. package/planu-plugin.json +23 -40
  322. package/scripts/lib/pending-release-file.mjs +93 -0
  323. package/src/i18n/messages/en.json +0 -41
  324. package/src/i18n/messages/es.json +0 -41
  325. package/src/i18n/messages/pt.json +0 -41
  326. package/dist/cli/commands/activate.d.ts +0 -14
  327. package/dist/cli/commands/activate.js +0 -174
  328. package/dist/config/license-plans.json +0 -251
  329. package/dist/config/product-public.ts +0 -148
  330. package/dist/config/server-instructions.ts +0 -121
  331. package/dist/config/version-defaults.ts +0 -76
  332. package/dist/config/version.ts +0 -21
  333. package/dist/engine/ai-integration/gemini/settings-generator.d.ts +0 -4
  334. package/dist/engine/ai-integration/gemini/settings-generator.js +0 -195
  335. package/dist/engine/ai-integration/kiro/hooks-generator.d.ts +0 -6
  336. package/dist/engine/ai-integration/kiro/hooks-generator.js +0 -75
  337. package/dist/engine/hooks/full-spectrum-generator.d.ts +0 -32
  338. package/dist/engine/hooks/full-spectrum-generator.js +0 -117
  339. package/dist/engine/license-validator/config-loader.d.ts +0 -5
  340. package/dist/engine/license-validator/config-loader.js +0 -16
  341. package/dist/engine/license-validator/core.d.ts +0 -15
  342. package/dist/engine/license-validator/core.js +0 -151
  343. package/dist/engine/license-validator/fingerprint.d.ts +0 -3
  344. package/dist/engine/license-validator/fingerprint.js +0 -17
  345. package/dist/engine/license-validator/lemon-squeezy.d.ts +0 -5
  346. package/dist/engine/license-validator/lemon-squeezy.js +0 -55
  347. package/dist/engine/license-validator.d.ts +0 -5
  348. package/dist/engine/license-validator.js +0 -6
  349. package/dist/engine/product-intelligence/index.d.ts +0 -7
  350. package/dist/engine/product-intelligence/index.js +0 -211
  351. package/dist/engine/session/auto-save.d.ts +0 -18
  352. package/dist/engine/session/auto-save.js +0 -98
  353. package/dist/engine/session/context-snapshot.d.ts +0 -8
  354. package/dist/engine/session/context-snapshot.js +0 -49
  355. package/dist/engine/session/memory-sync.d.ts +0 -12
  356. package/dist/engine/session/memory-sync.js +0 -34
  357. package/dist/engine/session/session-diff.d.ts +0 -11
  358. package/dist/engine/session/session-diff.js +0 -42
  359. package/dist/engine/session/session-merge.d.ts +0 -12
  360. package/dist/engine/session/session-merge.js +0 -55
  361. package/dist/engine/session-safeguard/checkpoint-runner.d.ts +0 -4
  362. package/dist/engine/session-safeguard/checkpoint-runner.js +0 -70
  363. package/dist/engine/session-safeguard/learnings-buffer.d.ts +0 -15
  364. package/dist/engine/session-safeguard/learnings-buffer.js +0 -91
  365. package/dist/engine/session-safeguard/precompaction-drain.d.ts +0 -10
  366. package/dist/engine/session-safeguard/precompaction-drain.js +0 -82
  367. package/dist/engine/session-safeguard/unpushed-detector.d.ts +0 -7
  368. package/dist/engine/session-safeguard/unpushed-detector.js +0 -59
  369. package/dist/engine/spec-changelog/core.d.ts +0 -16
  370. package/dist/engine/spec-changelog/core.js +0 -176
  371. package/dist/engine/spec-changelog/diff.d.ts +0 -18
  372. package/dist/engine/spec-changelog/diff.js +0 -121
  373. package/dist/engine/spec-changelog/index.d.ts +0 -3
  374. package/dist/engine/spec-changelog/index.js +0 -4
  375. package/dist/engine/trial-engine.d.ts +0 -5
  376. package/dist/engine/trial-engine.js +0 -14
  377. package/dist/engine/usage-tracker/rate-check.d.ts +0 -7
  378. package/dist/engine/usage-tracker/rate-check.js +0 -18
  379. package/dist/engine/usage-tracker/rate-limiter.d.ts +0 -14
  380. package/dist/engine/usage-tracker/rate-limiter.js +0 -73
  381. package/dist/engine/usage-tracker/trial.d.ts +0 -27
  382. package/dist/engine/usage-tracker/trial.js +0 -49
  383. package/dist/engine/webhook/event-handlers.d.ts +0 -25
  384. package/dist/engine/webhook/event-handlers.js +0 -89
  385. package/dist/engine/webhook/index.d.ts +0 -4
  386. package/dist/engine/webhook/index.js +0 -5
  387. package/dist/engine/webhook/server.d.ts +0 -12
  388. package/dist/engine/webhook/server.js +0 -249
  389. package/dist/engine/webhook/signature.d.ts +0 -16
  390. package/dist/engine/webhook/signature.js +0 -49
  391. package/dist/storage/license-store.d.ts +0 -6
  392. package/dist/storage/license-store.js +0 -63
  393. package/dist/storage/session-store.d.ts +0 -20
  394. package/dist/storage/session-store.js +0 -136
  395. package/dist/tools/activate-license.d.ts +0 -6
  396. package/dist/tools/activate-license.js +0 -132
  397. package/dist/tools/checkpoint-handler.d.ts +0 -3
  398. package/dist/tools/checkpoint-handler.js +0 -130
  399. package/dist/tools/export-session.d.ts +0 -3
  400. package/dist/tools/export-session.js +0 -90
  401. package/dist/tools/license-gate.d.ts +0 -18
  402. package/dist/tools/license-gate.js +0 -222
  403. package/dist/tools/license-status.d.ts +0 -3
  404. package/dist/tools/license-status.js +0 -93
  405. package/dist/tools/list-sessions.d.ts +0 -3
  406. package/dist/tools/list-sessions.js +0 -46
  407. package/dist/tools/planu-session-checkpoint.d.ts +0 -6
  408. package/dist/tools/planu-session-checkpoint.js +0 -42
  409. package/dist/tools/restore-session.d.ts +0 -3
  410. package/dist/tools/restore-session.js +0 -71
  411. package/dist/tools/spec-history.d.ts +0 -3
  412. package/dist/tools/spec-history.js +0 -59
  413. package/dist/tools/webhook.d.ts +0 -6
  414. package/dist/tools/webhook.js +0 -150
  415. package/dist/types/changelog.d.ts +0 -49
  416. package/dist/types/changelog.js +0 -3
  417. package/dist/types/licensing.d.ts +0 -109
  418. package/dist/types/licensing.js +0 -4
  419. package/dist/types/product-intelligence.d.ts +0 -60
  420. package/dist/types/product-intelligence.js +0 -3
  421. package/dist/types/session.d.ts +0 -84
  422. package/dist/types/session.js +0 -3
  423. package/dist/types/webhook.d.ts +0 -62
  424. package/dist/types/webhook.js +0 -4
@@ -346,45 +346,6 @@
346
346
  "actionFailed": "{action} failed: {details}",
347
347
  "error": "Manage trash failed: {message}"
348
348
  },
349
- "activate_license": {
350
- "description": "Activate or deactivate a Planu Pro license key to unlock all tools and increased limits.",
351
- "keyRequired": "Error: licenseKey is required.",
352
- "activationFailed": "License activation failed: {error}",
353
- "activatedSuccess": "License activated successfully!",
354
- "plan": "Plan: {tier}",
355
- "customer": "Customer: {name}",
356
- "instance": "Instance: {name}",
357
- "proAccess": "You now have access to all 65 Planu tools and increased limits.",
358
- "tierAccess": "You now have {tier} access with all tools and unlimited projects/specs.",
359
- "commonCauses": "Common causes:",
360
- "causeInvalidKey": "Invalid license key — check for typos",
361
- "causeAlreadyActivated": "License already activated on another machine — deactivate first",
362
- "causeNetwork": "Network issue — check your internet connection",
363
- "deactivationCancelled": "Deactivation cancelled. Set confirm: true to proceed.",
364
- "noActiveLicense": "No active license found. You are on the Free plan.",
365
- "deactivatedSuccess": "License deactivated successfully.",
366
- "deactivatedFreePlan": "You are now on the Free plan ({count} tools, 2 projects, 5 active specs).",
367
- "keyReusable": "Your license key can be activated on another machine."
368
- },
369
- "license_status": {
370
- "description": "Check your current license status, tier, limits, and available tools.",
371
- "title": "Planu License Status",
372
- "version": "Version:",
373
- "plan": "Plan:",
374
- "customer": "Customer:",
375
- "variant": "Variant:",
376
- "activated": "Activated:",
377
- "lastValidated": "Last validated:",
378
- "toolsAvailable": "Tools available:",
379
- "limitsTitle": "Limits",
380
- "projects": "Projects:",
381
- "activeSpecs": "Active specs:",
382
- "perProject": "per project",
383
- "activationSlots": "Activation slots:",
384
- "upgradeTitle": "Upgrade",
385
- "upgradeMessage": "Unlock all {count} tools, 10 projects, and unlimited specs.",
386
- "activateHint": "Already have a key? Use `activate_license` to activate it."
387
- },
388
349
  "spec_templates": {
389
350
  "description": "List and browse available spec templates — filter by category, complexity, or tags.",
390
351
  "listTitle": "Available Spec Templates",
@@ -502,8 +463,6 @@
502
463
  "approvedChanges": "Approved Changes",
503
464
  "pendingChanges": "Pending Changes",
504
465
  "versionCreated": "Version Created",
505
- "changelogUpdated": "Changelog Updated",
506
- "yes": "Yes",
507
466
  "livingSpec": "Living Spec",
508
467
  "coverage": "coverage",
509
468
  "nextValidate": "Run `validate` to check implementation coverage",
@@ -346,45 +346,6 @@
346
346
  "actionFailed": "{action} falló: {details}",
347
347
  "error": "Error al gestionar papelera: {message}"
348
348
  },
349
- "activate_license": {
350
- "description": "Activar o desactivar una clave de licencia Planu Pro para desbloquear todas las herramientas y límites aumentados.",
351
- "keyRequired": "Error: licenseKey es requerido.",
352
- "activationFailed": "Error al activar licencia: {error}",
353
- "activatedSuccess": "¡Licencia activada exitosamente!",
354
- "plan": "Plan: {tier}",
355
- "customer": "Cliente: {name}",
356
- "instance": "Instancia: {name}",
357
- "proAccess": "Ahora tienes acceso a las 65 herramientas de Planu y límites aumentados.",
358
- "tierAccess": "Ahora tienes acceso {tier} con todas las herramientas y proyectos/specs ilimitados.",
359
- "commonCauses": "Causas comunes:",
360
- "causeInvalidKey": "Clave de licencia inválida — verifica errores de tipeo",
361
- "causeAlreadyActivated": "Licencia ya activada en otra máquina — desactívala primero",
362
- "causeNetwork": "Problema de red — verifica tu conexión a internet",
363
- "deactivationCancelled": "Desactivación cancelada. Establece confirm: true para proceder.",
364
- "noActiveLicense": "No se encontró licencia activa. Estás en el plan Free.",
365
- "deactivatedSuccess": "Licencia desactivada exitosamente.",
366
- "deactivatedFreePlan": "Ahora estás en el plan Free ({count} herramientas, 2 proyectos, 5 specs activas).",
367
- "keyReusable": "Tu clave de licencia puede ser activada en otra máquina."
368
- },
369
- "license_status": {
370
- "description": "Verificar el estado actual de tu licencia, tier, límites y herramientas disponibles.",
371
- "title": "Estado de Licencia Planu",
372
- "version": "Versión:",
373
- "plan": "Plan:",
374
- "customer": "Cliente:",
375
- "variant": "Variante:",
376
- "activated": "Activada:",
377
- "lastValidated": "Última validación:",
378
- "toolsAvailable": "Herramientas disponibles:",
379
- "limitsTitle": "Límites",
380
- "projects": "Proyectos:",
381
- "activeSpecs": "Specs activas:",
382
- "perProject": "por proyecto",
383
- "activationSlots": "Slots de activación:",
384
- "upgradeTitle": "Upgrade",
385
- "upgradeMessage": "Desbloquea las {count} herramientas, 10 proyectos y specs ilimitadas.",
386
- "activateHint": "¿Ya tienes una clave? Usa `activate_license` para activarla."
387
- },
388
349
  "spec_templates": {
389
350
  "description": "Listar y explorar plantillas de specs disponibles — filtrar por categoría, complejidad o tags.",
390
351
  "listTitle": "Plantillas de Specs Disponibles",
@@ -502,8 +463,6 @@
502
463
  "approvedChanges": "Cambios Aprobados",
503
464
  "pendingChanges": "Cambios Pendientes",
504
465
  "versionCreated": "Versión Creada",
505
- "changelogUpdated": "Changelog Actualizado",
506
- "yes": "Sí",
507
466
  "livingSpec": "Spec Viva",
508
467
  "coverage": "cobertura",
509
468
  "nextValidate": "Ejecuta `validate` para verificar la cobertura de implementación",
@@ -346,45 +346,6 @@
346
346
  "actionFailed": "{action} falhou: {details}",
347
347
  "error": "Erro ao gerenciar lixeira: {message}"
348
348
  },
349
- "activate_license": {
350
- "description": "Ativar ou desativar uma chave de licença Planu Pro para desbloquear todas as ferramentas e limites aumentados.",
351
- "keyRequired": "Erro: licenseKey é obrigatório.",
352
- "activationFailed": "Falha na ativação da licença: {error}",
353
- "activatedSuccess": "Licença ativada com sucesso!",
354
- "plan": "Plano: {tier}",
355
- "customer": "Cliente: {name}",
356
- "instance": "Instância: {name}",
357
- "proAccess": "Agora você tem acesso a todas as 65 ferramentas do Planu e limites aumentados.",
358
- "tierAccess": "Agora você tem acesso {tier} com todas as ferramentas e projetos/specs ilimitados.",
359
- "commonCauses": "Causas comuns:",
360
- "causeInvalidKey": "Chave de licença inválida — verifique erros de digitação",
361
- "causeAlreadyActivated": "Licença já ativada em outra máquina — desative primeiro",
362
- "causeNetwork": "Problema de rede — verifique sua conexão com a internet",
363
- "deactivationCancelled": "Desativação cancelada. Defina confirm: true para prosseguir.",
364
- "noActiveLicense": "Nenhuma licença ativa encontrada. Você está no plano Free.",
365
- "deactivatedSuccess": "Licença desativada com sucesso.",
366
- "deactivatedFreePlan": "Agora você está no plano Free ({count} ferramentas, 2 projetos, 5 specs ativas).",
367
- "keyReusable": "Sua chave de licença pode ser ativada em outra máquina."
368
- },
369
- "license_status": {
370
- "description": "Verificar o status atual da sua licença, tier, limites e ferramentas disponíveis.",
371
- "title": "Status da Licença Planu",
372
- "version": "Versão:",
373
- "plan": "Plano:",
374
- "customer": "Cliente:",
375
- "variant": "Variante:",
376
- "activated": "Ativada:",
377
- "lastValidated": "Última validação:",
378
- "toolsAvailable": "Ferramentas disponíveis:",
379
- "limitsTitle": "Limites",
380
- "projects": "Projetos:",
381
- "activeSpecs": "Specs ativas:",
382
- "perProject": "por projeto",
383
- "activationSlots": "Slots de ativação:",
384
- "upgradeTitle": "Upgrade",
385
- "upgradeMessage": "Desbloqueie todas as {count} ferramentas, 10 projetos e specs ilimitadas.",
386
- "activateHint": "Já tem uma chave? Use `activate_license` para ativá-la."
387
- },
388
349
  "spec_templates": {
389
350
  "description": "Listar e explorar modelos de specs disponíveis — filtrar por categoria, complexidade ou tags.",
390
351
  "listTitle": "Modelos de Specs Disponíveis",
@@ -502,8 +463,6 @@
502
463
  "approvedChanges": "Mudanças Aprovadas",
503
464
  "pendingChanges": "Mudanças Pendentes",
504
465
  "versionCreated": "Versão Criada",
505
- "changelogUpdated": "Changelog Atualizado",
506
- "yes": "Sim",
507
466
  "livingSpec": "Spec Viva",
508
467
  "coverage": "cobertura",
509
468
  "nextValidate": "Execute `validate` para verificar a cobertura da implementação",
@@ -1,14 +0,0 @@
1
- import type { CliCommand } from '../../types/cli.js';
2
- type ToolFormat = 'standard' | 'zed';
3
- interface ConfigTarget {
4
- name: string;
5
- path: string;
6
- format: ToolFormat;
7
- }
8
- declare function buildTargets(): ConfigTarget[];
9
- declare function hasPlanu(config: unknown, format: ToolFormat): boolean;
10
- declare function updateStandardToken(filePath: string, licenseKey: string): void;
11
- declare function updateZedToken(filePath: string, licenseKey: string): void;
12
- export { buildTargets, hasPlanu, updateStandardToken, updateZedToken };
13
- export declare const activateCommand: CliCommand;
14
- //# sourceMappingURL=activate.d.ts.map
@@ -1,174 +0,0 @@
1
- // cli/commands/activate.ts — planu activate <key>: add/update license in all installed configs (SPEC-237)
2
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
3
- import { homedir } from 'node:os';
4
- import { join } from 'node:path';
5
- import { bold, green, yellow, dim, cyan } from '../colors.js';
6
- import { activateLicense } from '../../engine/license-validator.js';
7
- // ---------------------------------------------------------------------------
8
- // Constants — same paths as install.ts
9
- // ---------------------------------------------------------------------------
10
- const PLANU_KEY = 'planu';
11
- function buildTargets() {
12
- const home = homedir();
13
- return [
14
- {
15
- name: 'Claude Code',
16
- path: join(home, '.claude.json'),
17
- format: 'standard',
18
- },
19
- {
20
- name: 'Cursor',
21
- path: join(home, '.cursor', 'mcp.json'),
22
- format: 'standard',
23
- },
24
- {
25
- name: 'Windsurf',
26
- path: join(home, '.codeium', 'windsurf', 'mcp_config.json'),
27
- format: 'standard',
28
- },
29
- {
30
- name: 'Zed',
31
- path: join(home, '.config', 'zed', 'settings.json'),
32
- format: 'zed',
33
- },
34
- {
35
- name: 'Cline',
36
- path: join(home, '.vscode', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
37
- format: 'standard',
38
- },
39
- {
40
- name: 'Continue',
41
- path: join(home, '.continue', 'config.json'),
42
- format: 'standard',
43
- },
44
- ];
45
- }
46
- // ---------------------------------------------------------------------------
47
- // Helpers
48
- // ---------------------------------------------------------------------------
49
- function readJson(filePath) {
50
- if (!existsSync(filePath)) {
51
- return null;
52
- }
53
- const raw = readFileSync(filePath, 'utf-8').trim();
54
- if (!raw) {
55
- return null;
56
- }
57
- return JSON.parse(raw);
58
- }
59
- function hasPlanu(config, format) {
60
- if (format === 'zed') {
61
- const zed = config;
62
- return Boolean(zed.context_servers?.[PLANU_KEY]);
63
- }
64
- const std = config;
65
- return Boolean(std.mcpServers?.[PLANU_KEY]);
66
- }
67
- function updateStandardToken(filePath, licenseKey) {
68
- const parsed = readJson(filePath);
69
- if (!parsed) {
70
- return;
71
- }
72
- const raw = parsed;
73
- const entry = raw.mcpServers?.[PLANU_KEY];
74
- if (!entry) {
75
- return;
76
- }
77
- entry.env = { ...(entry.env ?? {}), SDD_OWNER_TOKEN: licenseKey };
78
- writeFileSync(filePath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
79
- }
80
- function updateZedToken(filePath, licenseKey) {
81
- const parsed = readJson(filePath);
82
- if (!parsed) {
83
- return;
84
- }
85
- const raw = parsed;
86
- const entry = raw.context_servers?.[PLANU_KEY];
87
- if (!entry) {
88
- return;
89
- }
90
- entry.env = { ...(entry.env ?? {}), SDD_OWNER_TOKEN: licenseKey };
91
- writeFileSync(filePath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
92
- }
93
- // Exported for tests
94
- export { buildTargets, hasPlanu, updateStandardToken, updateZedToken };
95
- // ---------------------------------------------------------------------------
96
- // Command
97
- // ---------------------------------------------------------------------------
98
- export const activateCommand = {
99
- name: 'activate',
100
- description: 'Activate a Pro license key in all installed Planu configs',
101
- usage: 'planu activate <license-key>',
102
- async run(args, _flags) {
103
- const licenseKey = args[0];
104
- if (!licenseKey) {
105
- process.stderr.write(`${yellow('!')} Usage: planu activate <license-key>\n` +
106
- `Example: planu activate PLN-XXXX-XXXX-XXXX\n`);
107
- process.exitCode = 1;
108
- return;
109
- }
110
- process.stdout.write(`\n${bold('Planu License Activation')}\n\n`);
111
- process.stdout.write(`${dim('Validating license key...')}\n`);
112
- // Validate key via license API
113
- let customerEmail;
114
- let variantName;
115
- try {
116
- const result = await activateLicense(licenseKey, 'planu-cli');
117
- if (!result.activated) {
118
- const errMsg = result.error ?? 'Invalid license key';
119
- process.stderr.write(`${yellow('!')} License validation failed: ${errMsg}\n`);
120
- process.exitCode = 1;
121
- return;
122
- }
123
- customerEmail = result.meta.customer_email;
124
- variantName = result.meta.variant_name;
125
- }
126
- catch (err) {
127
- const msg = err instanceof Error ? err.message : String(err);
128
- process.stderr.write(`${yellow('!')} License API error: ${msg}\n`);
129
- process.exitCode = 1;
130
- return;
131
- }
132
- process.stdout.write(`${green('+')} ${variantName} license — ${customerEmail}\n\n`);
133
- process.stdout.write(`${cyan('Updating Planu configs:')}\n`);
134
- const targets = buildTargets();
135
- let updated = 0;
136
- for (const target of targets) {
137
- let config;
138
- try {
139
- config = readJson(target.path);
140
- }
141
- catch {
142
- process.stdout.write(` ${yellow('!')} ${target.name}: could not read config\n`);
143
- continue;
144
- }
145
- if (config === null || !hasPlanu(config, target.format)) {
146
- process.stdout.write(` ${dim('\u25a1')} ${target.name} — Planu not installed here\n`);
147
- continue;
148
- }
149
- try {
150
- if (target.format === 'zed') {
151
- updateZedToken(target.path, licenseKey);
152
- }
153
- else {
154
- updateStandardToken(target.path, licenseKey);
155
- }
156
- process.stdout.write(` ${green('+')} ${target.name} — updated\n`);
157
- updated++;
158
- }
159
- catch (err) {
160
- const msg = err instanceof Error ? err.message : String(err);
161
- process.stdout.write(` ${yellow('!')} ${target.name}: failed to write — ${msg}\n`);
162
- }
163
- }
164
- process.stdout.write('\n');
165
- if (updated === 0) {
166
- process.stdout.write(`${yellow('!')} Planu is not installed in any tool. Run ${cyan('planu install')} first.\n\n`);
167
- process.exitCode = 1;
168
- return;
169
- }
170
- process.stdout.write(`${green('+')} License activated in ${String(updated)} config(s). ` +
171
- `${dim('Restart your AI tools to apply.')}\n\n`);
172
- },
173
- };
174
- //# sourceMappingURL=activate.js.map
@@ -1,251 +0,0 @@
1
- {
2
- "tiers": {
3
- "free": {
4
- "maxProjects": 2,
5
- "maxActiveSpecs": 5
6
- },
7
- "pro": {
8
- "maxProjects": 10,
9
- "maxActiveSpecs": 999999
10
- },
11
- "team": {
12
- "maxProjects": 999999,
13
- "maxActiveSpecs": 999999
14
- },
15
- "enterprise": {
16
- "maxProjects": 999999,
17
- "maxActiveSpecs": 999999
18
- }
19
- },
20
- "freeTools": [
21
- "activate_group",
22
- "agent_run_history",
23
- "analyze_performance_impact",
24
- "analyze_spec_dependencies",
25
- "approval_status",
26
- "approve_spec",
27
- "architecture_lint",
28
- "assess_merge_risk",
29
- "assign_role",
30
- "audit_claude_config",
31
- "audit_log_export",
32
- "audit_schema_type_parity",
33
- "audit_specs_drift",
34
- "audit_trail",
35
- "bump_spec_version",
36
- "cancel_job",
37
- "challenge_spec",
38
- "check_compliance",
39
- "check_config_health",
40
- "check_parallel_safety",
41
- "check_readiness",
42
- "check_spec_accuracy",
43
- "check_update_status",
44
- "check_versions",
45
- "clarify_requirements",
46
- "code_graph_status",
47
- "compliance_coverage_report",
48
- "compliance_gap_analysis",
49
- "compliance_gate_status",
50
- "compliance_score_report",
51
- "config_health",
52
- "configure_approval_policy",
53
- "configure_code_graph",
54
- "configure_compliance",
55
- "configure_deploy_target",
56
- "configure_memory",
57
- "configure_oauth",
58
- "configure_observability",
59
- "configure_roles",
60
- "configure_squad",
61
- "configure_tdd_policy",
62
- "configure_telemetry",
63
- "configure_webhook",
64
- "configure_workers",
65
- "consult_docs",
66
- "context_budget",
67
- "convert_to_bdd",
68
- "coverage_gap_analyzer",
69
- "create_rule",
70
- "create_skill",
71
- "create_spec",
72
- "data_governance",
73
- "data_retention_policy",
74
- "decompose_spec",
75
- "define_spec_lint_rule",
76
- "define_ui_contract",
77
- "delete_spec_lint_rule",
78
- "deploy_spec",
79
- "deploy_status",
80
- "detect_agent",
81
- "detect_drift",
82
- "discover_docs_url",
83
- "discover_mcps",
84
- "discover_registry",
85
- "dogfood_watch",
86
- "ears_lint",
87
- "ecosystem_status",
88
- "enable_auto_update",
89
- "estimate",
90
- "estimate_ai_cost",
91
- "eval_rule",
92
- "eval_skill",
93
- "export_audit_trail",
94
- "export_spec",
95
- "expose_spec_as_prompt",
96
- "facilitate",
97
- "feedback_status",
98
- "gc_data_projects",
99
- "generate_api_client",
100
- "generate_attestation",
101
- "generate_automation_guide",
102
- "generate_batch_script",
103
- "generate_checklist",
104
- "generate_compliance_report",
105
- "generate_compliance_tests",
106
- "generate_diagram",
107
- "generate_docs",
108
- "generate_docs_site",
109
- "generate_edge_tests",
110
- "generate_execution_plan",
111
- "generate_ide_config",
112
- "generate_orchestration_script",
113
- "generate_proposal",
114
- "generate_rules",
115
- "generate_skill",
116
- "generate_spec_dashboard",
117
- "generate_spec_from_issue",
118
- "generate_sub_agent",
119
- "generate_tests",
120
- "generate_validation_schema",
121
- "graph_specs",
122
- "get_job",
123
- "guided_tour",
124
- "heal_spec_docs",
125
- "init_constitution",
126
- "init_project",
127
- "integrate_pm",
128
- "issue_reviewer_token",
129
- "learn_pattern",
130
- "legal_compliance_report",
131
- "list_groups",
132
- "list_registered_projects",
133
- "list_spec_lint_rules",
134
- "list_spec_prompts",
135
- "list_specs",
136
- "living_reconcile_spec",
137
- "manage_context",
138
- "manage_git",
139
- "manage_plugins",
140
- "memory_status",
141
- "multi_agent_review",
142
- "onboarding_checklist",
143
- "onboarding_progress",
144
- "orchestrate",
145
- "oauth_status",
146
- "outbound_webhook_status",
147
- "package_handoff",
148
- "paradigm_report",
149
- "planu_status",
150
- "publish_registry",
151
- "quick_start",
152
- "recommend_model",
153
- "reconcile_hooks",
154
- "reconcile_rules",
155
- "reconcile_skills",
156
- "reconcile_spec",
157
- "reconcile_universal_rules",
158
- "red_team",
159
- "register_project_path",
160
- "registry_install",
161
- "registry_login",
162
- "registry_logout",
163
- "registry_publish",
164
- "registry_search",
165
- "registry_whoami",
166
- "remove_webhook",
167
- "render_spec_for_provider",
168
- "repair_frontmatter_drift",
169
- "request_changes",
170
- "resolve_feedback",
171
- "restart_job",
172
- "reverse_engineer",
173
- "rewrite_criteria_ears",
174
- "run_mutation_hints",
175
- "run_spec_lint",
176
- "scaffold_plugin",
177
- "scan_orphan_spec_refs",
178
- "scan_project",
179
- "search_all_projects",
180
- "security_report",
181
- "set_locale",
182
- "set_work_mode",
183
- "skill_install",
184
- "skill_search",
185
- "solid_check",
186
- "spec_coverage",
187
- "spec_obesity_healer",
188
- "squad_status",
189
- "ssr_back_migration",
190
- "start_oauth_flow",
191
- "start_onboarding",
192
- "storage_export",
193
- "storage_import",
194
- "storage_paths",
195
- "suggest_mcp_server",
196
- "suggest_mcps",
197
- "suggest_stack",
198
- "suggest_token_optimizer",
199
- "suggest_tooling",
200
- "summarize_spec",
201
- "submit_feedback",
202
- "sync_ai_configs",
203
- "sync_feedback",
204
- "sync_spec_state",
205
- "tdd_scaffold",
206
- "tdd_status",
207
- "telemetry_health",
208
- "token_optimizer_status",
209
- "transform_code",
210
- "triage_feedback",
211
- "triage_request",
212
- "type_safety_gate",
213
- "unregister_project_path",
214
- "update_registry",
215
- "update_status",
216
- "update_status_batch",
217
- "validate",
218
- "validate_api_contract",
219
- "validate_browser",
220
- "validate_criteria_quality",
221
- "validate_docs_registry",
222
- "validate_workflow",
223
- "verify_integrations",
224
- "verify_spec_compliance",
225
- "watch_job",
226
- "worker_status"
227
- ],
228
- "proTools": ["audit", "design_schema", "generate_adr", "security_check"],
229
- "alwaysAllowed": [
230
- "activate_license",
231
- "configure_compliance_gate",
232
- "deactivate_license",
233
- "fix_schema_type_parity",
234
- "license_status",
235
- "pin_version",
236
- "start_dashboard",
237
- "start_webhook",
238
- "stop_dashboard",
239
- "stop_webhook",
240
- "tool_usage_report",
241
- "usage_report",
242
- "usage_stats",
243
- "webhook_status"
244
- ],
245
- "variantMapping": {
246
- "Planu Pro": "pro",
247
- "Planu Team": "team"
248
- },
249
- "upgradeUrl": "https://planu.dev/pricing",
250
- "freeUntil": "2026-05-13"
251
- }