@girardmedia/bootspring 2.4.0 → 2.5.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/dist/cli/index.cjs +737 -122
- package/dist/core/index.d.ts +46 -2
- package/dist/core.js +9 -6
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp-server.js +9 -6
- package/generators/templates/build-planning.template.js +15 -11
- package/package.json +9 -6
package/dist/core/index.d.ts
CHANGED
|
@@ -1848,7 +1848,7 @@ declare namespace projectState {
|
|
|
1848
1848
|
* @module core/task-extractor
|
|
1849
1849
|
*/
|
|
1850
1850
|
type TaskComplexity = 'low' | 'medium' | 'high';
|
|
1851
|
-
type TaskStatus = 'pending' | 'in_progress' | 'completed';
|
|
1851
|
+
type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'blocked' | 'skipped';
|
|
1852
1852
|
type TaskPhase = 'foundation' | 'mvp' | 'launch' | string;
|
|
1853
1853
|
interface Task {
|
|
1854
1854
|
id?: string;
|
|
@@ -1913,6 +1913,10 @@ interface ExtractFromDocsOptions {
|
|
|
1913
1913
|
interface SyncFromTaskQueueOptions {
|
|
1914
1914
|
replace?: boolean | undefined;
|
|
1915
1915
|
}
|
|
1916
|
+
interface SyncPlanningTasksOptions extends SyncFromTaskQueueOptions {
|
|
1917
|
+
preferTodo?: boolean | undefined;
|
|
1918
|
+
allowLegacyQueue?: boolean | undefined;
|
|
1919
|
+
}
|
|
1916
1920
|
/**
|
|
1917
1921
|
* Main extraction function - parse all seed documents
|
|
1918
1922
|
*/
|
|
@@ -1974,10 +1978,27 @@ declare function extractFromSeedFile(projectRoot: string): ExtractionResult;
|
|
|
1974
1978
|
* Parses both table format and detailed task sections
|
|
1975
1979
|
*/
|
|
1976
1980
|
declare function extractFromTaskQueue(content: string): Task[];
|
|
1981
|
+
/**
|
|
1982
|
+
* Extract tasks from TODO.md
|
|
1983
|
+
* Parses both the lightweight checklist format and the enriched metadata format.
|
|
1984
|
+
*/
|
|
1985
|
+
declare function extractFromTodo(content: string): Task[];
|
|
1977
1986
|
/**
|
|
1978
1987
|
* Load and extract from TASK_QUEUE.md in planning directory
|
|
1979
1988
|
*/
|
|
1980
1989
|
declare function extractFromTaskQueueFile(projectRoot: string): ExtractionResult;
|
|
1990
|
+
/**
|
|
1991
|
+
* Load and extract from TODO.md in planning directory
|
|
1992
|
+
*/
|
|
1993
|
+
declare function extractFromTodoFile(projectRoot: string): ExtractionResult;
|
|
1994
|
+
/**
|
|
1995
|
+
* Load planning tasks from the canonical TODO.md surface first, then fall back
|
|
1996
|
+
* to legacy TASK_QUEUE.md when allowed.
|
|
1997
|
+
*/
|
|
1998
|
+
declare function extractFromPlanningFiles(projectRoot: string, options?: {
|
|
1999
|
+
preferTodo?: boolean | undefined;
|
|
2000
|
+
allowLegacyQueue?: boolean | undefined;
|
|
2001
|
+
}): ExtractionResult;
|
|
1981
2002
|
/**
|
|
1982
2003
|
* Sync tasks from TASK_QUEUE.md to BUILD_STATE.json
|
|
1983
2004
|
* Options:
|
|
@@ -1989,6 +2010,23 @@ declare function syncFromTaskQueue(projectRoot: string, options?: SyncFromTaskQu
|
|
|
1989
2010
|
updated: number;
|
|
1990
2011
|
total: number;
|
|
1991
2012
|
};
|
|
2013
|
+
/**
|
|
2014
|
+
* Sync tasks from canonical TODO.md to BUILD_STATE.json
|
|
2015
|
+
*/
|
|
2016
|
+
declare function syncFromTodo(projectRoot: string, options?: SyncFromTaskQueueOptions): {
|
|
2017
|
+
added: number;
|
|
2018
|
+
updated: number;
|
|
2019
|
+
total: number;
|
|
2020
|
+
};
|
|
2021
|
+
/**
|
|
2022
|
+
* Sync tasks from planning source of truth into BUILD_STATE.json.
|
|
2023
|
+
* Canonical behavior is TODO.md-first with legacy TASK_QUEUE.md fallback.
|
|
2024
|
+
*/
|
|
2025
|
+
declare function syncFromPlanningFiles(projectRoot: string, options?: SyncPlanningTasksOptions): {
|
|
2026
|
+
added: number;
|
|
2027
|
+
updated: number;
|
|
2028
|
+
total: number;
|
|
2029
|
+
};
|
|
1992
2030
|
|
|
1993
2031
|
type taskExtractor_DocumentMap = DocumentMap;
|
|
1994
2032
|
type taskExtractor_ExtractFromDocsOptions = ExtractFromDocsOptions;
|
|
@@ -1999,6 +2037,7 @@ type taskExtractor_Integrations = Integrations;
|
|
|
1999
2037
|
type taskExtractor_MvpCriterion = MvpCriterion;
|
|
2000
2038
|
type taskExtractor_RoadmapExtraction = RoadmapExtraction;
|
|
2001
2039
|
type taskExtractor_SyncFromTaskQueueOptions = SyncFromTaskQueueOptions;
|
|
2040
|
+
type taskExtractor_SyncPlanningTasksOptions = SyncPlanningTasksOptions;
|
|
2002
2041
|
type taskExtractor_Task = Task;
|
|
2003
2042
|
type taskExtractor_TaskComplexity = TaskComplexity;
|
|
2004
2043
|
type taskExtractor_TaskPhase = TaskPhase;
|
|
@@ -2007,6 +2046,7 @@ declare const taskExtractor_deduplicateTasks: typeof deduplicateTasks;
|
|
|
2007
2046
|
declare const taskExtractor_estimateComplexity: typeof estimateComplexity;
|
|
2008
2047
|
declare const taskExtractor_extractAcceptanceCriteria: typeof extractAcceptanceCriteria;
|
|
2009
2048
|
declare const taskExtractor_extractFromDocs: typeof extractFromDocs;
|
|
2049
|
+
declare const taskExtractor_extractFromPlanningFiles: typeof extractFromPlanningFiles;
|
|
2010
2050
|
declare const taskExtractor_extractFromPrd: typeof extractFromPrd;
|
|
2011
2051
|
declare const taskExtractor_extractFromPreseedDir: typeof extractFromPreseedDir;
|
|
2012
2052
|
declare const taskExtractor_extractFromRoadmap: typeof extractFromRoadmap;
|
|
@@ -2015,13 +2055,17 @@ declare const taskExtractor_extractFromSeedFile: typeof extractFromSeedFile;
|
|
|
2015
2055
|
declare const taskExtractor_extractFromTaskQueue: typeof extractFromTaskQueue;
|
|
2016
2056
|
declare const taskExtractor_extractFromTaskQueueFile: typeof extractFromTaskQueueFile;
|
|
2017
2057
|
declare const taskExtractor_extractFromTechnicalSpec: typeof extractFromTechnicalSpec;
|
|
2058
|
+
declare const taskExtractor_extractFromTodo: typeof extractFromTodo;
|
|
2059
|
+
declare const taskExtractor_extractFromTodoFile: typeof extractFromTodoFile;
|
|
2018
2060
|
declare const taskExtractor_extractIntegrations: typeof extractIntegrations;
|
|
2019
2061
|
declare const taskExtractor_extractMvpCriteria: typeof extractMvpCriteria;
|
|
2020
2062
|
declare const taskExtractor_extractSection: typeof extractSection;
|
|
2021
2063
|
declare const taskExtractor_orderByDependencies: typeof orderByDependencies;
|
|
2064
|
+
declare const taskExtractor_syncFromPlanningFiles: typeof syncFromPlanningFiles;
|
|
2022
2065
|
declare const taskExtractor_syncFromTaskQueue: typeof syncFromTaskQueue;
|
|
2066
|
+
declare const taskExtractor_syncFromTodo: typeof syncFromTodo;
|
|
2023
2067
|
declare namespace taskExtractor {
|
|
2024
|
-
export { type taskExtractor_DocumentMap as DocumentMap, type taskExtractor_ExtractFromDocsOptions as ExtractFromDocsOptions, type taskExtractor_ExtractSectionOptions as ExtractSectionOptions, type taskExtractor_ExtractionMetadata as ExtractionMetadata, type taskExtractor_ExtractionResult as ExtractionResult, type taskExtractor_Integrations as Integrations, type taskExtractor_MvpCriterion as MvpCriterion, type Phase$1 as Phase, type taskExtractor_RoadmapExtraction as RoadmapExtraction, type taskExtractor_SyncFromTaskQueueOptions as SyncFromTaskQueueOptions, type taskExtractor_Task as Task, type taskExtractor_TaskComplexity as TaskComplexity, type taskExtractor_TaskPhase as TaskPhase, type taskExtractor_TaskStatus as TaskStatus, taskExtractor_deduplicateTasks as deduplicateTasks, taskExtractor_estimateComplexity as estimateComplexity, taskExtractor_extractAcceptanceCriteria as extractAcceptanceCriteria, taskExtractor_extractFromDocs as extractFromDocs, taskExtractor_extractFromPrd as extractFromPrd, taskExtractor_extractFromPreseedDir as extractFromPreseedDir, taskExtractor_extractFromRoadmap as extractFromRoadmap, taskExtractor_extractFromSeed as extractFromSeed, taskExtractor_extractFromSeedFile as extractFromSeedFile, taskExtractor_extractFromTaskQueue as extractFromTaskQueue, taskExtractor_extractFromTaskQueueFile as extractFromTaskQueueFile, taskExtractor_extractFromTechnicalSpec as extractFromTechnicalSpec, taskExtractor_extractIntegrations as extractIntegrations, taskExtractor_extractMvpCriteria as extractMvpCriteria, taskExtractor_extractSection as extractSection, taskExtractor_orderByDependencies as orderByDependencies, taskExtractor_syncFromTaskQueue as syncFromTaskQueue };
|
|
2068
|
+
export { type taskExtractor_DocumentMap as DocumentMap, type taskExtractor_ExtractFromDocsOptions as ExtractFromDocsOptions, type taskExtractor_ExtractSectionOptions as ExtractSectionOptions, type taskExtractor_ExtractionMetadata as ExtractionMetadata, type taskExtractor_ExtractionResult as ExtractionResult, type taskExtractor_Integrations as Integrations, type taskExtractor_MvpCriterion as MvpCriterion, type Phase$1 as Phase, type taskExtractor_RoadmapExtraction as RoadmapExtraction, type taskExtractor_SyncFromTaskQueueOptions as SyncFromTaskQueueOptions, type taskExtractor_SyncPlanningTasksOptions as SyncPlanningTasksOptions, type taskExtractor_Task as Task, type taskExtractor_TaskComplexity as TaskComplexity, type taskExtractor_TaskPhase as TaskPhase, type taskExtractor_TaskStatus as TaskStatus, taskExtractor_deduplicateTasks as deduplicateTasks, taskExtractor_estimateComplexity as estimateComplexity, taskExtractor_extractAcceptanceCriteria as extractAcceptanceCriteria, taskExtractor_extractFromDocs as extractFromDocs, taskExtractor_extractFromPlanningFiles as extractFromPlanningFiles, taskExtractor_extractFromPrd as extractFromPrd, taskExtractor_extractFromPreseedDir as extractFromPreseedDir, taskExtractor_extractFromRoadmap as extractFromRoadmap, taskExtractor_extractFromSeed as extractFromSeed, taskExtractor_extractFromSeedFile as extractFromSeedFile, taskExtractor_extractFromTaskQueue as extractFromTaskQueue, taskExtractor_extractFromTaskQueueFile as extractFromTaskQueueFile, taskExtractor_extractFromTechnicalSpec as extractFromTechnicalSpec, taskExtractor_extractFromTodo as extractFromTodo, taskExtractor_extractFromTodoFile as extractFromTodoFile, taskExtractor_extractIntegrations as extractIntegrations, taskExtractor_extractMvpCriteria as extractMvpCriteria, taskExtractor_extractSection as extractSection, taskExtractor_orderByDependencies as orderByDependencies, taskExtractor_syncFromPlanningFiles as syncFromPlanningFiles, taskExtractor_syncFromTaskQueue as syncFromTaskQueue, taskExtractor_syncFromTodo as syncFromTodo };
|
|
2025
2069
|
}
|
|
2026
2070
|
|
|
2027
2071
|
/**
|
package/dist/core.js
CHANGED
|
@@ -1600,7 +1600,7 @@ var require_package = __commonJS({
|
|
|
1600
1600
|
"package.json"(exports2, module2) {
|
|
1601
1601
|
module2.exports = {
|
|
1602
1602
|
name: "@girardmedia/bootspring",
|
|
1603
|
-
version: "2.
|
|
1603
|
+
version: "2.5.0",
|
|
1604
1604
|
description: "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
|
|
1605
1605
|
keywords: [
|
|
1606
1606
|
"ai",
|
|
@@ -1654,6 +1654,9 @@ var require_package = __commonJS({
|
|
|
1654
1654
|
start: "node bin/bootspring.js",
|
|
1655
1655
|
dashboard: "node bin/bootspring.js dashboard",
|
|
1656
1656
|
mcp: "node dist/mcp-server.js",
|
|
1657
|
+
"version:sync": "node scripts/sync-version-metadata.js",
|
|
1658
|
+
"verify:version-sync": "node scripts/sync-version-metadata.js --check",
|
|
1659
|
+
"release:prepare": "npm run version:sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract && npm run verify:release-gates",
|
|
1657
1660
|
pretest: "npm run build",
|
|
1658
1661
|
test: "vitest run",
|
|
1659
1662
|
"test:launch-smoke": "vitest run __tests__/unit/cli-first-run-smoke.test.js __tests__/unit/health-fresh-start.test.ts __tests__/unit/session-project-scope.test.ts __tests__/unit/auth-cli-mixed-states.test.ts __tests__/unit/api-client-project-auth-fallback.test.js __tests__/unit/cli-help-surface.test.js __tests__/unit/cli-command-manifest.test.js",
|
|
@@ -1664,7 +1667,7 @@ var require_package = __commonJS({
|
|
|
1664
1667
|
"lint:fix": "eslint . --fix",
|
|
1665
1668
|
typecheck: "tsc --noEmit",
|
|
1666
1669
|
"typecheck:active": "tsc --noEmit -p tsconfig.active.json",
|
|
1667
|
-
build: "tsup && npm run build:cli",
|
|
1670
|
+
build: "npm run version:sync && tsup && npm run build:cli",
|
|
1668
1671
|
"build:cli": "cd monorepo && pnpm build --filter @bootspring/cli && cd .. && mkdir -p dist/cli && cp monorepo/apps/cli/dist/index.cjs dist/cli/index.cjs",
|
|
1669
1672
|
"build:watch": "tsup --watch",
|
|
1670
1673
|
dev: "tsx watch src/index.ts",
|
|
@@ -1674,13 +1677,13 @@ var require_package = __commonJS({
|
|
|
1674
1677
|
"verify:thin-client-contract": "node scripts/verify-thin-client-contract.js",
|
|
1675
1678
|
"build:mcp-contract": "node scripts/export-mcp-contract.js",
|
|
1676
1679
|
"verify:mcp-contract": "node scripts/export-mcp-contract.js --check",
|
|
1677
|
-
"planning:sync": "node scripts/sync-planning-
|
|
1678
|
-
"planning:sync:check": "node scripts/sync-planning-
|
|
1679
|
-
"planning:realign": "node scripts/sync-planning-
|
|
1680
|
+
"planning:sync": "node scripts/sync-planning-state.js",
|
|
1681
|
+
"planning:sync:check": "node scripts/sync-planning-state.js --check",
|
|
1682
|
+
"planning:realign": "node scripts/sync-planning-state.js --sync-runtime",
|
|
1680
1683
|
"verify:package": "node scripts/check-package-boundaries.js",
|
|
1681
1684
|
"db:sync": "node shared/db/sync.js",
|
|
1682
1685
|
"db:sync:check": "node shared/db/sync.js --check",
|
|
1683
|
-
prepublishOnly: "npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
1686
|
+
prepublishOnly: "npm run verify:version-sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
1684
1687
|
},
|
|
1685
1688
|
devDependencies: {
|
|
1686
1689
|
"@eslint/js": "^9.39.2",
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AccessInfo, j as AgentData, k as AssistResponseData, B as BoundInvoker, l as BuildCapabilitiesOptions, C as CapabilitiesInfo, m as CapabilitiesManifest, n as ContextValidationResult, F as FilteredWorkflows, I as IntentDetectionData, o as InvocationContext, p as InvokeParallelOptions, q as InvokeSequenceOptions, r as InvokeToolOptions, s as InvokeToolResult, L as ListOptions, t as MAX_CALL_DEPTH, M as MCPCapabilities, a as MCPContent, b as MCPInputSchema, c as MCPPrompt, d as MCPPromptArgument, e as MCPPropertySchema, f as MCPResource, g as MCPTool, h as MCPToolResult, u as MCPToolResultWithMeta, O as OrchestratorStatus, P as PRDData, v as PackInfo, w as ParallelResult, x as PlatformInfo, y as PolicyInfo, z as PolicyProfile, D as ProgressInfo, E as ProjectContextDisplay, Q as QualityCheckResult, G as QualityGateResults, R as RESOURCES, H as ResourceDefinition, J as ResourceHandler, K as ResourceResponse, S as SequenceResult, N as SkillData, T as SkillsCapability, U as SuccessOptions, V as TOOLS, W as TelemetryCapability, X as TodoItem, Y as ToolCall, Z as ToolDefinition, _ as ToolHandler, $ as ToolSequenceResult, a0 as ValidationResult, a1 as WorkflowAccessContext, a2 as WorkflowDefinition, a3 as WorkflowsCapability, a4 as agentDetails, a5 as assistResponse, a6 as buildCapabilities, a7 as capabilitiesList, a8 as contextSummary, a9 as contextValidation, aa as createBoundInvoker, ab as createInvocationContext, ac as error, ad as generateProgressBar, ae as getAvailableTools, af as getCurrentContext, ag as getRegistry, ah as getToolDefinition, ai as hasTool, aj as intentDetection, ak as invokeTool, al as invokeToolParallel, am as invokeToolSequence, an as list, ao as loopStatus, ap as main, aq as orchestratorStatus, ar as qualityResults, as as resourceHandlers, at as skillDetails, au as success, av as todoList, aw as toolHandlers, ax as trackTelemetry, ay as validateDependencies, az as warning } from '../index-
|
|
1
|
+
export { A as AccessInfo, j as AgentData, k as AssistResponseData, B as BoundInvoker, l as BuildCapabilitiesOptions, C as CapabilitiesInfo, m as CapabilitiesManifest, n as ContextValidationResult, F as FilteredWorkflows, I as IntentDetectionData, o as InvocationContext, p as InvokeParallelOptions, q as InvokeSequenceOptions, r as InvokeToolOptions, s as InvokeToolResult, L as ListOptions, t as MAX_CALL_DEPTH, M as MCPCapabilities, a as MCPContent, b as MCPInputSchema, c as MCPPrompt, d as MCPPromptArgument, e as MCPPropertySchema, f as MCPResource, g as MCPTool, h as MCPToolResult, u as MCPToolResultWithMeta, O as OrchestratorStatus, P as PRDData, v as PackInfo, w as ParallelResult, x as PlatformInfo, y as PolicyInfo, z as PolicyProfile, D as ProgressInfo, E as ProjectContextDisplay, Q as QualityCheckResult, G as QualityGateResults, R as RESOURCES, H as ResourceDefinition, J as ResourceHandler, K as ResourceResponse, S as SequenceResult, N as SkillData, T as SkillsCapability, U as SuccessOptions, V as TOOLS, W as TelemetryCapability, X as TodoItem, Y as ToolCall, Z as ToolDefinition, _ as ToolHandler, $ as ToolSequenceResult, a0 as ValidationResult, a1 as WorkflowAccessContext, a2 as WorkflowDefinition, a3 as WorkflowsCapability, a4 as agentDetails, a5 as assistResponse, a6 as buildCapabilities, a7 as capabilitiesList, a8 as contextSummary, a9 as contextValidation, aa as createBoundInvoker, ab as createInvocationContext, ac as error, ad as generateProgressBar, ae as getAvailableTools, af as getCurrentContext, ag as getRegistry, ah as getToolDefinition, ai as hasTool, aj as intentDetection, ak as invokeTool, al as invokeToolParallel, am as invokeToolSequence, an as list, ao as loopStatus, ap as main, aq as orchestratorStatus, ar as qualityResults, as as resourceHandlers, at as skillDetails, au as success, av as todoList, aw as toolHandlers, ax as trackTelemetry, ay as validateDependencies, az as warning } from '../index-DvGc3BRk.js';
|
package/dist/mcp-server.js
CHANGED
|
@@ -45,7 +45,7 @@ var require_package = __commonJS({
|
|
|
45
45
|
"package.json"(exports2, module2) {
|
|
46
46
|
module2.exports = {
|
|
47
47
|
name: "@girardmedia/bootspring",
|
|
48
|
-
version: "2.
|
|
48
|
+
version: "2.5.0",
|
|
49
49
|
description: "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
|
|
50
50
|
keywords: [
|
|
51
51
|
"ai",
|
|
@@ -99,6 +99,9 @@ var require_package = __commonJS({
|
|
|
99
99
|
start: "node bin/bootspring.js",
|
|
100
100
|
dashboard: "node bin/bootspring.js dashboard",
|
|
101
101
|
mcp: "node dist/mcp-server.js",
|
|
102
|
+
"version:sync": "node scripts/sync-version-metadata.js",
|
|
103
|
+
"verify:version-sync": "node scripts/sync-version-metadata.js --check",
|
|
104
|
+
"release:prepare": "npm run version:sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract && npm run verify:release-gates",
|
|
102
105
|
pretest: "npm run build",
|
|
103
106
|
test: "vitest run",
|
|
104
107
|
"test:launch-smoke": "vitest run __tests__/unit/cli-first-run-smoke.test.js __tests__/unit/health-fresh-start.test.ts __tests__/unit/session-project-scope.test.ts __tests__/unit/auth-cli-mixed-states.test.ts __tests__/unit/api-client-project-auth-fallback.test.js __tests__/unit/cli-help-surface.test.js __tests__/unit/cli-command-manifest.test.js",
|
|
@@ -109,7 +112,7 @@ var require_package = __commonJS({
|
|
|
109
112
|
"lint:fix": "eslint . --fix",
|
|
110
113
|
typecheck: "tsc --noEmit",
|
|
111
114
|
"typecheck:active": "tsc --noEmit -p tsconfig.active.json",
|
|
112
|
-
build: "tsup && npm run build:cli",
|
|
115
|
+
build: "npm run version:sync && tsup && npm run build:cli",
|
|
113
116
|
"build:cli": "cd monorepo && pnpm build --filter @bootspring/cli && cd .. && mkdir -p dist/cli && cp monorepo/apps/cli/dist/index.cjs dist/cli/index.cjs",
|
|
114
117
|
"build:watch": "tsup --watch",
|
|
115
118
|
dev: "tsx watch src/index.ts",
|
|
@@ -119,13 +122,13 @@ var require_package = __commonJS({
|
|
|
119
122
|
"verify:thin-client-contract": "node scripts/verify-thin-client-contract.js",
|
|
120
123
|
"build:mcp-contract": "node scripts/export-mcp-contract.js",
|
|
121
124
|
"verify:mcp-contract": "node scripts/export-mcp-contract.js --check",
|
|
122
|
-
"planning:sync": "node scripts/sync-planning-
|
|
123
|
-
"planning:sync:check": "node scripts/sync-planning-
|
|
124
|
-
"planning:realign": "node scripts/sync-planning-
|
|
125
|
+
"planning:sync": "node scripts/sync-planning-state.js",
|
|
126
|
+
"planning:sync:check": "node scripts/sync-planning-state.js --check",
|
|
127
|
+
"planning:realign": "node scripts/sync-planning-state.js --sync-runtime",
|
|
125
128
|
"verify:package": "node scripts/check-package-boundaries.js",
|
|
126
129
|
"db:sync": "node shared/db/sync.js",
|
|
127
130
|
"db:sync:check": "node shared/db/sync.js --check",
|
|
128
|
-
prepublishOnly: "npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
131
|
+
prepublishOnly: "npm run verify:version-sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
129
132
|
},
|
|
130
133
|
devDependencies: {
|
|
131
134
|
"@eslint/js": "^9.39.2",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Generates planning artifacts for the autonomous build loop:
|
|
5
5
|
* - MASTER_PLAN.md - Vision + phases + progress tracker
|
|
6
6
|
* - TODO.md - Checkbox list by phase
|
|
7
|
-
* - TASK_QUEUE.md -
|
|
7
|
+
* - TASK_QUEUE.md - Legacy compatibility mirror only when explicitly requested
|
|
8
8
|
* - CONTEXT.md - Condensed context for AI iterations
|
|
9
9
|
*
|
|
10
10
|
* @package bootspring
|
|
@@ -45,11 +45,14 @@ function generateAll(projectRoot, docs, tasks, options = {}) {
|
|
|
45
45
|
fs.writeFileSync(todoPath, todo);
|
|
46
46
|
files.todo = todoPath;
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
const legacyQueuePath = path.join(planningDir, 'TASK_QUEUE.md');
|
|
49
|
+
const includeLegacyTaskQueue = options.includeLegacyTaskQueue === true;
|
|
50
|
+
|
|
51
|
+
if (includeLegacyTaskQueue) {
|
|
52
|
+
const queue = generateImplementationQueue(tasks, options);
|
|
53
|
+
fs.writeFileSync(legacyQueuePath, queue);
|
|
54
|
+
files.implementationQueue = legacyQueuePath;
|
|
55
|
+
}
|
|
53
56
|
|
|
54
57
|
// Generate CONTEXT.md
|
|
55
58
|
const context = generateContext(docs, tasks, options);
|
|
@@ -663,7 +666,7 @@ function extractTechStack(docs) {
|
|
|
663
666
|
* @param {string} projectRoot - Project root path
|
|
664
667
|
* @param {object} state - Current build state
|
|
665
668
|
*/
|
|
666
|
-
function updateFromState(projectRoot, state) {
|
|
669
|
+
function updateFromState(projectRoot, state, options = {}) {
|
|
667
670
|
if (!state || !state.implementationQueue) return;
|
|
668
671
|
|
|
669
672
|
const tasks = state.implementationQueue;
|
|
@@ -673,10 +676,11 @@ function updateFromState(projectRoot, state) {
|
|
|
673
676
|
const todo = generateTodo(tasks, { projectName: state.projectName });
|
|
674
677
|
fs.writeFileSync(path.join(planningDir, 'TODO.md'), todo);
|
|
675
678
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
679
|
+
if (options.includeLegacyTaskQueue === true) {
|
|
680
|
+
const queuePath = path.join(planningDir, 'TASK_QUEUE.md');
|
|
681
|
+
const existingQueue = fs.existsSync(queuePath)
|
|
682
|
+
? fs.readFileSync(queuePath, 'utf-8')
|
|
683
|
+
: '';
|
|
680
684
|
const existingVersionMatch = existingQueue.match(/\*\*Current Version:\*\*\s*([^\n]+)/i)
|
|
681
685
|
|| existingQueue.match(/>\s*Current Version:\s*([^\n]+)/i);
|
|
682
686
|
const queueVersion = existingVersionMatch
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@girardmedia/bootspring",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -54,6 +54,9 @@
|
|
|
54
54
|
"start": "node bin/bootspring.js",
|
|
55
55
|
"dashboard": "node bin/bootspring.js dashboard",
|
|
56
56
|
"mcp": "node dist/mcp-server.js",
|
|
57
|
+
"version:sync": "node scripts/sync-version-metadata.js",
|
|
58
|
+
"verify:version-sync": "node scripts/sync-version-metadata.js --check",
|
|
59
|
+
"release:prepare": "npm run version:sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract && npm run verify:release-gates",
|
|
57
60
|
"pretest": "npm run build",
|
|
58
61
|
"test": "vitest run",
|
|
59
62
|
"test:launch-smoke": "vitest run __tests__/unit/cli-first-run-smoke.test.js __tests__/unit/health-fresh-start.test.ts __tests__/unit/session-project-scope.test.ts __tests__/unit/auth-cli-mixed-states.test.ts __tests__/unit/api-client-project-auth-fallback.test.js __tests__/unit/cli-help-surface.test.js __tests__/unit/cli-command-manifest.test.js",
|
|
@@ -64,7 +67,7 @@
|
|
|
64
67
|
"lint:fix": "eslint . --fix",
|
|
65
68
|
"typecheck": "tsc --noEmit",
|
|
66
69
|
"typecheck:active": "tsc --noEmit -p tsconfig.active.json",
|
|
67
|
-
"build": "tsup && npm run build:cli",
|
|
70
|
+
"build": "npm run version:sync && tsup && npm run build:cli",
|
|
68
71
|
"build:cli": "cd monorepo && pnpm build --filter @bootspring/cli && cd .. && mkdir -p dist/cli && cp monorepo/apps/cli/dist/index.cjs dist/cli/index.cjs",
|
|
69
72
|
"build:watch": "tsup --watch",
|
|
70
73
|
"dev": "tsx watch src/index.ts",
|
|
@@ -74,13 +77,13 @@
|
|
|
74
77
|
"verify:thin-client-contract": "node scripts/verify-thin-client-contract.js",
|
|
75
78
|
"build:mcp-contract": "node scripts/export-mcp-contract.js",
|
|
76
79
|
"verify:mcp-contract": "node scripts/export-mcp-contract.js --check",
|
|
77
|
-
"planning:sync": "node scripts/sync-planning-
|
|
78
|
-
"planning:sync:check": "node scripts/sync-planning-
|
|
79
|
-
"planning:realign": "node scripts/sync-planning-
|
|
80
|
+
"planning:sync": "node scripts/sync-planning-state.js",
|
|
81
|
+
"planning:sync:check": "node scripts/sync-planning-state.js --check",
|
|
82
|
+
"planning:realign": "node scripts/sync-planning-state.js --sync-runtime",
|
|
80
83
|
"verify:package": "node scripts/check-package-boundaries.js",
|
|
81
84
|
"db:sync": "node shared/db/sync.js",
|
|
82
85
|
"db:sync:check": "node shared/db/sync.js --check",
|
|
83
|
-
"prepublishOnly": "npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
86
|
+
"prepublishOnly": "npm run verify:version-sync && npm run build && npm test && npm run lint --if-present && npm run verify:package && npm run verify:mcp-contract"
|
|
84
87
|
},
|
|
85
88
|
"devDependencies": {
|
|
86
89
|
"@eslint/js": "^9.39.2",
|