@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.
- package/README.md +1 -1
- package/dist/autopilot/api/autopilot-api-client.js +1 -1
- package/dist/autopilot/api/autopilot-api-client.js.map +1 -1
- package/dist/cli/commands/complete.d.ts +14 -0
- package/dist/cli/commands/complete.d.ts.map +1 -0
- package/dist/cli/commands/complete.js +96 -0
- package/dist/cli/commands/complete.js.map +1 -0
- package/dist/cli/commands/docs/content/examples.d.ts.map +1 -1
- package/dist/cli/commands/docs/content/examples.js +35 -40
- package/dist/cli/commands/docs/content/examples.js.map +1 -1
- package/dist/cli/commands/docs/content/workflow.d.ts.map +1 -1
- package/dist/cli/commands/docs/content/workflow.js +9 -13
- package/dist/cli/commands/docs/content/workflow.js.map +1 -1
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +100 -14
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.types.d.ts +2 -0
- package/dist/cli/commands/init.types.d.ts.map +1 -1
- package/dist/cli/commands/init.types.js.map +1 -1
- package/dist/cli/commands/review-implementation.d.ts.map +1 -1
- package/dist/cli/commands/review-implementation.js +12 -1
- package/dist/cli/commands/review-implementation.js.map +1 -1
- package/dist/cli/commands/review-planning.d.ts +3 -0
- package/dist/cli/commands/review-planning.d.ts.map +1 -1
- package/dist/cli/commands/review-planning.js +34 -1
- package/dist/cli/commands/review-planning.js.map +1 -1
- package/dist/cli/commands/scaffold/agent-types.d.ts +1 -7
- package/dist/cli/commands/scaffold/agent-types.d.ts.map +1 -1
- package/dist/cli/commands/scaffold/agent-types.js +0 -12
- package/dist/cli/commands/scaffold/agent-types.js.map +1 -1
- package/dist/cli/commands/scaffold/types.d.ts +1 -7
- package/dist/cli/commands/scaffold/types.d.ts.map +1 -1
- package/dist/cli/commands/scaffold/types.js +2 -7
- package/dist/cli/commands/scaffold/types.js.map +1 -1
- package/dist/cli/commands/set-status.d.ts +14 -0
- package/dist/cli/commands/set-status.d.ts.map +1 -0
- package/dist/cli/commands/set-status.js +109 -0
- package/dist/cli/commands/set-status.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts +3 -2
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js +118 -61
- package/dist/cli/templates/agents/content/core/sfag-orchestrator.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts +3 -2
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js +302 -81
- package/dist/cli/templates/agents/content/core/sfag-spec-creator.js.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts +3 -2
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js +209 -83
- package/dist/cli/templates/agents/content/core/sfag-ticket-implementer.js.map +1 -1
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts +2 -2
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.d.ts.map +1 -1
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.js +84 -106
- package/dist/cli/templates/agents/content/research/sfag-package-researcher.js.map +1 -1
- package/dist/cli/templates/agents/index.d.ts.map +1 -1
- package/dist/cli/templates/agents/index.js +0 -23
- package/dist/cli/templates/agents/index.js.map +1 -1
- package/dist/cli/templates/commands.d.ts +0 -3
- package/dist/cli/templates/commands.d.ts.map +1 -1
- package/dist/cli/templates/commands.js +0 -89
- package/dist/cli/templates/commands.js.map +1 -1
- package/dist/cli/templates/content/sf-blockers.d.ts +1 -1
- package/dist/cli/templates/content/sf-blockers.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-blockers.js +5 -2
- package/dist/cli/templates/content/sf-blockers.js.map +1 -1
- package/dist/cli/templates/content/sf-commit.d.ts +1 -1
- package/dist/cli/templates/content/sf-commit.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-commit.js +11 -8
- package/dist/cli/templates/content/sf-commit.js.map +1 -1
- package/dist/cli/templates/content/sf-context.d.ts +1 -1
- package/dist/cli/templates/content/sf-context.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-context.js +16 -15
- package/dist/cli/templates/content/sf-context.js.map +1 -1
- package/dist/cli/templates/content/sf-help.d.ts +1 -1
- package/dist/cli/templates/content/sf-help.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-help.js +4 -21
- package/dist/cli/templates/content/sf-help.js.map +1 -1
- package/dist/cli/templates/content/sf-init.d.ts +1 -1
- package/dist/cli/templates/content/sf-init.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-init.js +10 -7
- package/dist/cli/templates/content/sf-init.js.map +1 -1
- package/dist/cli/templates/content/sf-reset.d.ts +1 -1
- package/dist/cli/templates/content/sf-reset.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-reset.js +10 -19
- package/dist/cli/templates/content/sf-reset.js.map +1 -1
- package/dist/cli/templates/content/sf-search.d.ts +1 -1
- package/dist/cli/templates/content/sf-search.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-search.js +5 -4
- package/dist/cli/templates/content/sf-search.js.map +1 -1
- package/dist/cli/templates/content/sf-status.d.ts +1 -1
- package/dist/cli/templates/content/sf-status.d.ts.map +1 -1
- package/dist/cli/templates/content/sf-status.js +5 -8
- package/dist/cli/templates/content/sf-status.js.map +1 -1
- package/dist/cli/ui/banner.d.ts +17 -0
- package/dist/cli/ui/banner.d.ts.map +1 -0
- package/dist/cli/ui/banner.js +105 -0
- package/dist/cli/ui/banner.js.map +1 -0
- package/dist/tools/core/admin.js +5 -5
- package/dist/tools/core/admin.js.map +1 -1
- package/dist/tools/core/epic.js +2 -2
- package/dist/tools/core/help.js +1 -1
- package/dist/tools/core/help.js.map +1 -1
- package/dist/tools/core/session.js +2 -2
- package/dist/tools/core/ticket.js +2 -2
- package/dist/tools/index.js +4 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/templates/agents/content/core/sfag-orchestrator.ts +118 -61
- package/src/cli/templates/agents/content/core/sfag-spec-creator.ts +302 -81
- package/src/cli/templates/agents/content/core/sfag-ticket-implementer.ts +209 -83
- package/src/cli/templates/agents/content/research/sfag-package-researcher.ts +84 -106
- package/src/cli/templates/agents/index.ts +0 -27
- package/src/cli/templates/commands.ts +0 -89
- package/src/cli/templates/content/sf-blockers.ts +5 -2
- package/src/cli/templates/content/sf-commit.ts +11 -8
- package/src/cli/templates/content/sf-context.ts +16 -15
- package/src/cli/templates/content/sf-help.ts +4 -21
- package/src/cli/templates/content/sf-init.ts +10 -7
- package/src/cli/templates/content/sf-reset.ts +10 -19
- package/src/cli/templates/content/sf-search.ts +5 -4
- package/src/cli/templates/content/sf-status.ts +5 -8
- package/src/cli/templates/skills/specforge-orchestrator.md +1 -1
- package/src/cli/templates/skills/specforge-worker.md +51 -19
- package/src/cli/templates/agents/content/core/sfag-implementer.ts +0 -113
- package/src/cli/templates/agents/content/task-type/sfag-api-implementer.ts +0 -132
- package/src/cli/templates/agents/content/task-type/sfag-docs-writer.ts +0 -183
- package/src/cli/templates/agents/content/task-type/sfag-frontend-builder.ts +0 -141
- package/src/cli/templates/agents/content/task-type/sfag-infra-architect.ts +0 -149
- package/src/cli/templates/agents/content/task-type/sfag-schema-designer.ts +0 -132
- package/src/cli/templates/agents/content/task-type/sfag-test-writer.ts +0 -171
- package/src/cli/templates/content/sf-autonomous.ts +0 -78
- package/src/cli/templates/content/sf-create-epics.ts +0 -129
- package/src/cli/templates/content/sf-create-spec.ts +0 -136
- package/src/cli/templates/content/sf-create-tickets.ts +0 -148
- package/src/cli/templates/content/sf-epic.ts +0 -69
- package/src/cli/templates/content/sf-import.ts +0 -88
- package/src/cli/templates/content/sf-next.ts +0 -67
- package/src/cli/templates/content/sf-review.ts +0 -67
- package/src/cli/templates/content/sf-ticket.ts +0 -76
- 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
|
-
|
|
26
|
+
// Read project config
|
|
27
|
+
const config = readFile('.specforge.json')
|
|
28
|
+
const specificationId = config.activeSpecification?.id
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
search_tickets({
|
|
29
31
|
specificationId,
|
|
30
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
15
|
+
### 1. Get Specification Context
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**Logic:**
|
|
18
18
|
\`\`\`typescript
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
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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"}
|
package/dist/tools/core/admin.js
CHANGED
|
@@ -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
|
-
-
|
|
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: ['
|
|
13
|
+
enum: ['reset_work_session', 'validate_counts'],
|
|
14
14
|
description: 'The operation to perform',
|
|
15
15
|
},
|
|
16
|
-
// For
|
|
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
|
-
|
|
44
|
+
reset_work_session: async (args, _userId) => {
|
|
45
45
|
validateRequired(args, 'specificationId');
|
|
46
|
-
return await apiClient.call('
|
|
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":"AAAA,8BAA8B;AAG9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIpD,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE;;uDAEwC;IACrD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/tools/core/admin.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAG9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIpD,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE;;uDAEwC;IACrD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;gBAC/C,WAAW,EAAE,0BAA0B;aACxC;YACD,yBAAyB;YACzB,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;YAClD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACvD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,sBAAsB;YACtB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;YACxD,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;SAC5D;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,IAA0B,EAAE,GAAG,MAAgB;IACvE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAAoB;IACxD,OAAO;QACL,kBAAkB,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YACxE,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAC1C,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAChD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC,CAAC;QACL,CAAC;QAED,eAAe,EAAE,KAAK,EAAE,IAA0B,EAAE,OAAe,EAAE,EAAE;YACrE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/tools/core/epic.js
CHANGED
|
@@ -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: {
|
package/dist/tools/core/help.js
CHANGED
|
@@ -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: ['
|
|
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":"AAAA,6BAA6B;AAG7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,gCAAgC;AAChC,MAAM,kBAAkB,GAAG;IACzB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IAC5G,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IACxG,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IAC1H,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IAC1F,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;IACxH,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE;IAC5G,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;IACxG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE;IACpG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE;IACpI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE;IACnH,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IAC/E,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACnF,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;IAChG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,
|
|
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
|
package/dist/tools/index.js
CHANGED
|
@@ -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
|
|
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: '
|
|
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
|
-
|
|
3652
|
+
reset_work_session: async (_client, args) => {
|
|
3653
3653
|
validateRequired(args, 'specificationId');
|
|
3654
|
-
return await apiClient.call('
|
|
3654
|
+
return await apiClient.call('reset_work_session', {
|
|
3655
3655
|
specificationId: args.specificationId,
|
|
3656
3656
|
ticketIds: args.ticketIds,
|
|
3657
3657
|
fromTicketId: args.fromTicketId,
|