@specforge/mcp 3.2.2 → 3.3.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 (151) hide show
  1. package/README.md +1 -1
  2. package/dist/autopilot/api/autopilot-api-client.js +1 -1
  3. package/dist/autopilot/api/autopilot-api-client.js.map +1 -1
  4. package/dist/cli/commands/complete.d.ts +14 -0
  5. package/dist/cli/commands/complete.d.ts.map +1 -0
  6. package/dist/cli/commands/complete.js +96 -0
  7. package/dist/cli/commands/complete.js.map +1 -0
  8. package/dist/cli/commands/docs/content/examples.d.ts.map +1 -1
  9. package/dist/cli/commands/docs/content/examples.js +35 -40
  10. package/dist/cli/commands/docs/content/examples.js.map +1 -1
  11. package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -1
  12. package/dist/cli/commands/docs/content/workflow.js +9 -13
  13. package/dist/cli/commands/docs/content/workflow.js.map +1 -1
  14. package/dist/cli/commands/index.d.ts +2 -0
  15. package/dist/cli/commands/index.d.ts.map +1 -1
  16. package/dist/cli/commands/index.js +2 -0
  17. package/dist/cli/commands/index.js.map +1 -1
  18. package/dist/cli/commands/init.d.ts.map +1 -1
  19. package/dist/cli/commands/init.js +100 -14
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/init.types.d.ts +2 -0
  22. package/dist/cli/commands/init.types.d.ts.map +1 -1
  23. package/dist/cli/commands/init.types.js.map +1 -1
  24. package/dist/cli/commands/review-implementation.d.ts.map +1 -1
  25. package/dist/cli/commands/review-implementation.js +12 -1
  26. package/dist/cli/commands/review-implementation.js.map +1 -1
  27. package/dist/cli/commands/review-planning.d.ts +3 -0
  28. package/dist/cli/commands/review-planning.d.ts.map +1 -1
  29. package/dist/cli/commands/review-planning.js +34 -1
  30. package/dist/cli/commands/review-planning.js.map +1 -1
  31. package/dist/cli/commands/scaffold/agent-types.d.ts +1 -7
  32. package/dist/cli/commands/scaffold/agent-types.d.ts.map +1 -1
  33. package/dist/cli/commands/scaffold/agent-types.js +0 -12
  34. package/dist/cli/commands/scaffold/agent-types.js.map +1 -1
  35. package/dist/cli/commands/scaffold/types.d.ts +1 -7
  36. package/dist/cli/commands/scaffold/types.d.ts.map +1 -1
  37. package/dist/cli/commands/scaffold/types.js +2 -7
  38. package/dist/cli/commands/scaffold/types.js.map +1 -1
  39. package/dist/cli/commands/set-status.d.ts +14 -0
  40. package/dist/cli/commands/set-status.d.ts.map +1 -0
  41. package/dist/cli/commands/set-status.js +109 -0
  42. package/dist/cli/commands/set-status.js.map +1 -0
  43. package/dist/cli/index.d.ts.map +1 -1
  44. package/dist/cli/index.js +5 -1
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +3 -2
  47. package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -1
  48. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +118 -61
  49. package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -1
  50. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts +3 -2
  51. package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -1
  52. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +302 -81
  53. package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -1
  54. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +3 -2
  55. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -1
  56. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +209 -83
  57. package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -1
  58. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts +2 -2
  59. package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts.map +1 -1
  60. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js +84 -106
  61. package/dist/cli/templates/agents/content/research/sfag-package-researcher.js.map +1 -1
  62. package/dist/cli/templates/agents/index.d.ts.map +1 -1
  63. package/dist/cli/templates/agents/index.js +0 -23
  64. package/dist/cli/templates/agents/index.js.map +1 -1
  65. package/dist/cli/templates/commands.d.ts +0 -3
  66. package/dist/cli/templates/commands.d.ts.map +1 -1
  67. package/dist/cli/templates/commands.js +0 -89
  68. package/dist/cli/templates/commands.js.map +1 -1
  69. package/dist/cli/templates/content/sf-blockers.d.ts +1 -1
  70. package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -1
  71. package/dist/cli/templates/content/sf-blockers.js +5 -2
  72. package/dist/cli/templates/content/sf-blockers.js.map +1 -1
  73. package/dist/cli/templates/content/sf-commit.d.ts +1 -1
  74. package/dist/cli/templates/content/sf-commit.d.ts.map +1 -1
  75. package/dist/cli/templates/content/sf-commit.js +11 -8
  76. package/dist/cli/templates/content/sf-commit.js.map +1 -1
  77. package/dist/cli/templates/content/sf-context.d.ts +1 -1
  78. package/dist/cli/templates/content/sf-context.d.ts.map +1 -1
  79. package/dist/cli/templates/content/sf-context.js +16 -15
  80. package/dist/cli/templates/content/sf-context.js.map +1 -1
  81. package/dist/cli/templates/content/sf-help.d.ts +1 -1
  82. package/dist/cli/templates/content/sf-help.d.ts.map +1 -1
  83. package/dist/cli/templates/content/sf-help.js +4 -21
  84. package/dist/cli/templates/content/sf-help.js.map +1 -1
  85. package/dist/cli/templates/content/sf-init.d.ts +1 -1
  86. package/dist/cli/templates/content/sf-init.d.ts.map +1 -1
  87. package/dist/cli/templates/content/sf-init.js +10 -7
  88. package/dist/cli/templates/content/sf-init.js.map +1 -1
  89. package/dist/cli/templates/content/sf-reset.d.ts +1 -1
  90. package/dist/cli/templates/content/sf-reset.d.ts.map +1 -1
  91. package/dist/cli/templates/content/sf-reset.js +10 -19
  92. package/dist/cli/templates/content/sf-reset.js.map +1 -1
  93. package/dist/cli/templates/content/sf-search.d.ts +1 -1
  94. package/dist/cli/templates/content/sf-search.d.ts.map +1 -1
  95. package/dist/cli/templates/content/sf-search.js +5 -4
  96. package/dist/cli/templates/content/sf-search.js.map +1 -1
  97. package/dist/cli/templates/content/sf-status.d.ts +1 -1
  98. package/dist/cli/templates/content/sf-status.d.ts.map +1 -1
  99. package/dist/cli/templates/content/sf-status.js +5 -8
  100. package/dist/cli/templates/content/sf-status.js.map +1 -1
  101. package/dist/cli/ui/banner.d.ts +17 -0
  102. package/dist/cli/ui/banner.d.ts.map +1 -0
  103. package/dist/cli/ui/banner.js +105 -0
  104. package/dist/cli/ui/banner.js.map +1 -0
  105. package/dist/tools/core/admin.js +5 -5
  106. package/dist/tools/core/admin.js.map +1 -1
  107. package/dist/tools/core/epic.js +2 -2
  108. package/dist/tools/core/help.js +1 -1
  109. package/dist/tools/core/help.js.map +1 -1
  110. package/dist/tools/core/session.js +2 -2
  111. package/dist/tools/core/ticket.js +2 -2
  112. package/dist/tools/index.js +4 -4
  113. package/dist/tools/index.js.map +1 -1
  114. package/dist/types/index.d.ts +2 -2
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/dist/validation/index.js +1 -1
  117. package/dist/validation/index.js.map +1 -1
  118. package/package.json +1 -1
  119. package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +118 -61
  120. package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +302 -81
  121. package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +209 -83
  122. package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +84 -106
  123. package/src/cli/templates/agents/index.ts +0 -27
  124. package/src/cli/templates/commands.ts +0 -89
  125. package/src/cli/templates/content/sf-blockers.ts +5 -2
  126. package/src/cli/templates/content/sf-commit.ts +11 -8
  127. package/src/cli/templates/content/sf-context.ts +16 -15
  128. package/src/cli/templates/content/sf-help.ts +4 -21
  129. package/src/cli/templates/content/sf-init.ts +10 -7
  130. package/src/cli/templates/content/sf-reset.ts +10 -19
  131. package/src/cli/templates/content/sf-search.ts +5 -4
  132. package/src/cli/templates/content/sf-status.ts +5 -8
  133. package/src/cli/templates/skills/specforge-orchestrator.md +1 -1
  134. package/src/cli/templates/skills/specforge-worker.md +51 -19
  135. package/src/cli/templates/agents/content/core/sfag-implementer.ts +0 -113
  136. package/src/cli/templates/agents/content/task-type/sfag-api-implementer.ts +0 -132
  137. package/src/cli/templates/agents/content/task-type/sfag-docs-writer.ts +0 -183
  138. package/src/cli/templates/agents/content/task-type/sfag-frontend-builder.ts +0 -141
  139. package/src/cli/templates/agents/content/task-type/sfag-infra-architect.ts +0 -149
  140. package/src/cli/templates/agents/content/task-type/sfag-schema-designer.ts +0 -132
  141. package/src/cli/templates/agents/content/task-type/sfag-test-writer.ts +0 -171
  142. package/src/cli/templates/content/sf-autonomous.ts +0 -78
  143. package/src/cli/templates/content/sf-create-epics.ts +0 -129
  144. package/src/cli/templates/content/sf-create-spec.ts +0 -136
  145. package/src/cli/templates/content/sf-create-tickets.ts +0 -148
  146. package/src/cli/templates/content/sf-epic.ts +0 -69
  147. package/src/cli/templates/content/sf-import.ts +0 -88
  148. package/src/cli/templates/content/sf-next.ts +0 -67
  149. package/src/cli/templates/content/sf-review.ts +0 -67
  150. package/src/cli/templates/content/sf-ticket.ts +0 -76
  151. package/src/cli/templates/content/sf-validate.ts +0 -78
@@ -23,13 +23,14 @@ Search tickets by text, tags, status, or other filters.
23
23
 
24
24
  **MCP Calls:**
25
25
  \`\`\`typescript
26
- get_working_context()
26
+ // Read project config
27
+ const config = readFile('.specforge.json')
28
+ const specificationId = config.activeSpecification?.id
27
29
 
28
- list_tickets({
30
+ search_tickets({
29
31
  specificationId,
30
- search: extractedTerms,
32
+ query: extractedTerms,
31
33
  status: extractedStatus,
32
- epicId: extractedEpicId,
33
34
  tags: extractedTags
34
35
  })
35
36
  \`\`\`
@@ -1 +1 @@
1
- {"version":3,"file":"sf-search.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDhC,CAAC"}
1
+ {"version":3,"file":"sf-search.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-search.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DhC,CAAC"}
@@ -3,5 +3,5 @@
3
3
  *
4
4
  * Template for displaying implementation status with consolidated tools.
5
5
  */
6
- export declare const SF_STATUS_CONTENT = "# Implementation Status (SpecForge)\n\nDisplay comprehensive implementation status with consolidated progress view.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Specification ID to view status for\n\n## Task\n\n### 1. Get Working Context\n\n**MCP Calls:**\n```typescript\nget_working_context()\n\n// If $ARGUMENTS provided, switch context\nif ($ARGUMENTS) {\n set_working_context({ specificationId: \"$ARGUMENTS\" })\n}\n```\n\n### 2. Load Implementation Data\n\n**MCP Calls:**\n```typescript\nget_specification(specificationId)\nlist_epics({ specificationId })\nlist_tickets({ specificationId })\n```\n\n### 3. Display Status Overview\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nIMPLEMENTATION STATUS\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\nProgress: {done}/{total} ({percentage}%)\n\nEPICS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n} \u2502 {title} \u2502 {progress}% \u2502 {status}\n\nREADY TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 {priority}\n\nBLOCKED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 Blocked by: {dependencies}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-next to start implementation\n```\n\n## Notes\n- Shows overall progress and epic breakdown\n- Lists ready and blocked tickets\n- Use /sf-validate for system health check\n";
6
+ export declare const SF_STATUS_CONTENT = "# Implementation Status (SpecForge)\n\nDisplay comprehensive implementation status with consolidated progress view.\n\n## Arguments\n- `$ARGUMENTS` - Optional: Specification ID to view status for\n\n## Task\n\n### 1. Get Specification Context\n\n**Logic:**\n```typescript\n// Read project config\nconst config = readFile('.specforge.json')\nconst specificationId = $ARGUMENTS || config.activeSpecification?.id\n```\n\n### 2. Load Implementation Data\n\n**MCP Calls:**\n```typescript\nget_specification(specificationId)\nlist_epics({ specificationId })\nlist_tickets({ specificationId })\n```\n\n### 3. Display Status Overview\n\n**Output:**\n```\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nIMPLEMENTATION STATUS\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\nSpecification: {title}\nProgress: {done}/{total} ({percentage}%)\n\nEPICS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n} \u2502 {title} \u2502 {progress}% \u2502 {status}\n\nREADY TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 {priority}\n\nBLOCKED TICKETS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nE{n}-T{m} \u2502 {title} \u2502 Blocked by: {dependencies}\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nNext: Run /sf-next to start implementation\n```\n\n## Notes\n- Shows overall progress and epic breakdown\n- Lists ready and blocked tickets\n- Use /sf-validate for system health check\n";
7
7
  //# sourceMappingURL=sf-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sf-status.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB,8pGA4D7B,CAAC"}
1
+ {"version":3,"file":"sf-status.d.ts","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,iBAAiB,opGAyD7B,CAAC"}
@@ -12,16 +12,13 @@ Display comprehensive implementation status with consolidated progress view.
12
12
 
13
13
  ## Task
14
14
 
15
- ### 1. Get Working Context
15
+ ### 1. Get Specification Context
16
16
 
17
- **MCP Calls:**
17
+ **Logic:**
18
18
  \`\`\`typescript
19
- get_working_context()
20
-
21
- // If $ARGUMENTS provided, switch context
22
- if ($ARGUMENTS) {
23
- set_working_context({ specificationId: "$ARGUMENTS" })
24
- }
19
+ // Read project config
20
+ const config = readFile('.specforge.json')
21
+ const specificationId = $ARGUMENTS || config.activeSpecification?.id
25
22
  \`\`\`
26
23
 
27
24
  ### 2. Load Implementation Data
@@ -1 +1 @@
1
- {"version":3,"file":"sf-status.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DhC,CAAC"}
1
+ {"version":3,"file":"sf-status.js","sourceRoot":"","sources":["../../../../src/cli/templates/content/sf-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDhC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * SpecForge CLI Banner
3
+ * Purple/Violet themed ASCII art matching brand identity
4
+ *
5
+ * Usage:
6
+ * import { printBanner } from './banner.js'
7
+ * printBanner('figlet') // startup / --help
8
+ * printBanner('compact') // every command
9
+ */
10
+ interface PrintBannerOptions {
11
+ noColor?: boolean;
12
+ }
13
+ export declare function printBanner(variant?: string, options?: PrintBannerOptions): void;
14
+ export declare function getBanner(variant?: string): string;
15
+ export declare function listVariants(): string[];
16
+ export {};
17
+ //# sourceMappingURL=banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+FH,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,MAAiB,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAQ9F;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAiB,GAAG,MAAM,CAE5D;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * SpecForge CLI Banner
3
+ * Purple/Violet themed ASCII art matching brand identity
4
+ *
5
+ * Usage:
6
+ * import { printBanner } from './banner.js'
7
+ * printBanner('figlet') // startup / --help
8
+ * printBanner('compact') // every command
9
+ */
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ import { fileURLToPath } from 'node:url';
13
+ // ─── ANSI 256-color helpers ───────────────────────────────
14
+ const fg = (code) => `\x1b[38;5;${code}m`;
15
+ const RESET = '\x1b[0m';
16
+ const BOLD = '\x1b[1m';
17
+ const DIM = '\x1b[2m';
18
+ // ─── Brand palette ────────────────────────────────────────
19
+ const C = {
20
+ purpleDark: fg(54),
21
+ purple: fg(135),
22
+ violet: fg(141),
23
+ lilac: fg(183),
24
+ pink: fg(212),
25
+ gray: fg(245),
26
+ darkGray: fg(240),
27
+ white: fg(255),
28
+ // Gradient stops
29
+ g1: fg(93),
30
+ g2: fg(99),
31
+ g3: fg(105),
32
+ g4: fg(111),
33
+ g5: fg(129),
34
+ g6: fg(135),
35
+ g7: fg(141),
36
+ g8: fg(147),
37
+ };
38
+ // ─── Version ──────────────────────────────────────────────
39
+ function getVersion() {
40
+ if (process.env.SPECFORGE_VERSION) {
41
+ return process.env.SPECFORGE_VERSION;
42
+ }
43
+ try {
44
+ const __filename = fileURLToPath(import.meta.url);
45
+ const __dirname = path.dirname(__filename);
46
+ const packageJsonPath = path.resolve(__dirname, '..', '..', '..', 'package.json');
47
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
48
+ return packageJson.version || '0.1.0';
49
+ }
50
+ catch {
51
+ return '0.1.0';
52
+ }
53
+ }
54
+ const VERSION = getVersion();
55
+ const TAGLINE = 'Forge specs into working software';
56
+ // ═══════════════════════════════════════════════════════════
57
+ // BANNER VARIANTS
58
+ // ═══════════════════════════════════════════════════════════
59
+ const banners = {
60
+ // ─── Diamond block + FIGlet ──────────────────────────────
61
+ figlet: () => `
62
+ ${C.g1} ██ ${C.g1} ____ ${C.g5}_____ ${RESET}
63
+ ${C.g2} ██ ██ ${C.g1} / ___| _ __ ___ ___ ${C.g5}| ___|__ _ __ __ _ ___${RESET}
64
+ ${C.g3} ██ ${C.pink}██${C.g3} ██ ${C.g2} \\___ \\| '_ \\ / _ \\/ __|${C.g6}| |_ / _ \\| '__/ _\` |/ _ \\${RESET}
65
+ ${C.g5} ██ ██ ${C.g3} ___) | |_) | __/ (__ ${C.g7}| _| (_) | | | (_| | __/${RESET}
66
+ ${C.g7} ██ ${C.g4} |____/| .__/ \\___|\\___\\${C.g8}|_| \\___/|_| \\__, |\\___|${RESET}
67
+ ${C.darkGray} ${C.g4} |_| ${C.g8} |___/ ${RESET}
68
+ ${C.darkGray} ${TAGLINE} v${VERSION}${RESET}
69
+ `,
70
+ // ─── Compact one-liner (for every command) ───────────────
71
+ compact: () => `
72
+ ${C.violet}⚒${RESET} ${BOLD}${C.lilac}Spec${C.pink}Forge${RESET} ${C.darkGray}v${VERSION}${RESET}
73
+ `,
74
+ // ─── Sleek box ───────────────────────────────────────────
75
+ sleek: () => `
76
+ ${C.purpleDark}╔══════════════════════════════════════════╗${RESET}
77
+ ${C.purpleDark}║${RESET} ${C.purpleDark}║${RESET}
78
+ ${C.purpleDark}║${RESET} ${C.violet}⚒${RESET} ${BOLD}${C.lilac}S P E C${C.violet}F O R G E${RESET} ${C.darkGray}v${VERSION}${RESET} ${C.purpleDark}║${RESET}
79
+ ${C.purpleDark}║${RESET} ${C.darkGray}${TAGLINE}${RESET} ${C.purpleDark}║${RESET}
80
+ ${C.purpleDark}║${RESET} ${C.purpleDark}║${RESET}
81
+ ${C.purpleDark}╚══════════════════════════════════════════╝${RESET}
82
+ `,
83
+ // ─── Diamond icon + text ─────────────────────────────────
84
+ diamond: () => `
85
+ ${C.violet} ◆${RESET}
86
+ ${C.violet} ◇${C.lilac}◆${C.violet}◇${RESET} ${BOLD}${C.lilac}Spec${C.pink}Forge${RESET} ${C.darkGray}v${VERSION}${RESET}
87
+ ${C.violet} ◆${RESET} ${C.darkGray}${TAGLINE}${RESET}
88
+ `,
89
+ };
90
+ export function printBanner(variant = 'figlet', options = {}) {
91
+ const noColor = options.noColor || process.env.NO_COLOR !== undefined || !process.stdout.isTTY;
92
+ const bannerFn = banners[variant] || banners.figlet;
93
+ let output = bannerFn();
94
+ if (noColor) {
95
+ output = output.replace(/\x1b\[[0-9;]*m/g, '');
96
+ }
97
+ process.stdout.write(output);
98
+ }
99
+ export function getBanner(variant = 'figlet') {
100
+ return (banners[variant] || banners.figlet)();
101
+ }
102
+ export function listVariants() {
103
+ return Object.keys(banners);
104
+ }
105
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,17 @@ import { createOperationRouter } from './router.js';
3
3
  export const adminTool = {
4
4
  name: 'admin',
5
5
  description: `Administrative utilities. Operations:
6
- - reset_tickets: Reset ticket statuses
6
+ - reset_work_session: Reset ticket statuses
7
7
  - validate_counts: Validate and fix count aggregations`,
8
8
  inputSchema: {
9
9
  type: 'object',
10
10
  properties: {
11
11
  operation: {
12
12
  type: 'string',
13
- enum: ['reset_tickets', 'validate_counts'],
13
+ enum: ['reset_work_session', 'validate_counts'],
14
14
  description: 'The operation to perform',
15
15
  },
16
- // For reset_tickets
16
+ // For reset_work_session
17
17
  specificationId: { type: 'string', description: 'Specification ID' },
18
18
  epicId: { type: 'string', description: 'Epic ID' },
19
19
  ticketIds: { type: 'array', items: { type: 'string' } },
@@ -41,9 +41,9 @@ function validateRequired(args, ...fields) {
41
41
  }
42
42
  export function createAdminOperations(apiClient) {
43
43
  return {
44
- reset_tickets: async (args, _userId) => {
44
+ reset_work_session: async (args, _userId) => {
45
45
  validateRequired(args, 'specificationId');
46
- return await apiClient.call('reset_tickets', {
46
+ return await apiClient.call('reset_work_session', {
47
47
  specificationId: args.specificationId,
48
48
  ticketIds: args.ticketIds,
49
49
  fromTicketId: args.fromTicketId,
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/tools/core/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/tools/core/admin.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import { injectContext, injectContextRequired } from './context-helper.js';
4
4
  export const epicTool = {
5
5
  name: 'epic',
6
6
  description: `Manage epics. Operations:
7
- - create: Create a new epic in a specification
7
+ - create: Create a new epic in a specification. Assigns planningType (planning/on_flight/review) based on spec status. Auto-transitions draft to planning. Blocked when spec is completed/reviewed. Demotes ready to planning, ready_for_review to in_progress.
8
8
  - get: Get epic by ID
9
- - update: Update epic fields
9
+ - update: Update epic fields. Blocked when spec is completed/reviewed. Cannot update planning epics during in_progress. Cannot update during ready_for_review. Demotes ready to planning.
10
10
  - list: List epics with filters
11
11
  - lookup: Find epic by title or number`,
12
12
  inputSchema: {
@@ -15,7 +15,7 @@ const CONSOLIDATED_TOOLS = [
15
15
  { name: 'pattern', description: 'Manage patterns', operations: ['get', 'set'] },
16
16
  { name: 'job', description: 'Manage async jobs', operations: ['status', 'cancel'] },
17
17
  { name: 'link', description: 'Link external resources', operations: ['commit', 'pull_request'] },
18
- { name: 'admin', description: 'Admin utilities', operations: ['reset_tickets', 'validate_counts'] },
18
+ { name: 'admin', description: 'Admin utilities', operations: ['reset_work_session', 'validate_counts'] },
19
19
  { name: 'help', description: 'Get help', operations: ['tools', 'operations', 'examples'] },
20
20
  { name: 'feedback', description: 'Submit and manage feedback', operations: ['submit', 'list', 'get'] },
21
21
  { name: 'workflow_guide', description: 'Get workflow guidance for AI agents', operations: ['guide', 'status', 'next'] },
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/tools/core/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/tools/core/help.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { createOperationRouter } from './router.js';
3
3
  export const sessionTool = {
4
4
  name: 'session',
5
5
  description: `Manage work sessions for individual tickets. Each start creates a WorkSession record that tracks all session state. This is for tracking work on a SINGLE ticket. For autonomous multi-ticket implementation, use start_implementation_session instead. Operations:
6
- - start: Start working on a ticket (creates WorkSession, sets status to active, returns workSessionId)
7
- - complete: Complete work on the ticket (finalizes WorkSession, sets status to done). All acceptance criteria must be validated and all implementation steps must be completed before calling this.
6
+ - start: Start working on a ticket (creates WorkSession, sets status to active, returns workSessionId). Auto-transitions specification from ready to in_progress. Specification must be in ready or in_progress state.
7
+ - complete: Complete work on the ticket (finalizes WorkSession, sets status to done). All acceptance criteria must be validated and all implementation steps must be completed before calling this. When the last ticket is completed, auto-transitions specification to ready_for_review (if requireImplementationReview) or completed.
8
8
  - progress: Report progress percentage on current work
9
9
  - end: End the implementation session (not ticket work session)
10
10
  - report: Get session/work reports (queries WorkSession records)`,
@@ -4,9 +4,9 @@ import { injectContext } from './context-helper.js';
4
4
  export const ticketTool = {
5
5
  name: 'ticket',
6
6
  description: `Manage tickets. Operations:
7
- - create: Create a new ticket in an epic
7
+ - create: Create a new ticket in an epic. Assigns planningType (planning/on_flight/review) based on spec status. Blocked when spec is completed/reviewed. Demotes ready to planning, ready_for_review to in_progress. On-flight tickets require on-flight epics; review tickets require review or on-flight epics.
8
8
  - get: Get ticket by ID
9
- - update: Update ticket fields
9
+ - update: Update ticket fields. Blocked when spec is completed/reviewed. Cannot update planning tickets during in_progress. Cannot update during ready_for_review. Demotes ready to planning.
10
10
  - list: List tickets with filters
11
11
  - search: Search tickets by query
12
12
  - validate: Validate acceptance criteria
@@ -970,7 +970,7 @@ IMPORTANT: All acceptance criteria must be validated and all implementation step
970
970
  },
971
971
  blockReason: {
972
972
  type: 'string',
973
- description: 'Set a blocker on this ticket. Requires a prior discovery via report_discovery.',
973
+ description: 'Set a blocker on this ticket. Requires a prior discovery via discover_work_session.',
974
974
  },
975
975
  clearBlockReason: {
976
976
  type: 'boolean',
@@ -2245,7 +2245,7 @@ At least one scope filter (projectId, specificationId, or epicId) is required.`,
2245
2245
  },
2246
2246
  },
2247
2247
  {
2248
- name: 'reset_tickets',
2248
+ name: 'reset_work_session',
2249
2249
  description: 'Reset tickets to pending/ready status (calculated from dependencies). Returns statusCalculation showing how many became pending vs ready.',
2250
2250
  inputSchema: {
2251
2251
  type: 'object',
@@ -3649,9 +3649,9 @@ export function createToolHandlers(apiClient) {
3649
3649
  atomic: args.atomic,
3650
3650
  });
3651
3651
  },
3652
- reset_tickets: async (_client, args) => {
3652
+ reset_work_session: async (_client, args) => {
3653
3653
  validateRequired(args, 'specificationId');
3654
- return await apiClient.call('reset_tickets', {
3654
+ return await apiClient.call('reset_work_session', {
3655
3655
  specificationId: args.specificationId,
3656
3656
  ticketIds: args.ticketIds,
3657
3657
  fromTicketId: args.fromTicketId,