@girardmedia/bootspring 2.6.0 → 2.7.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.js CHANGED
@@ -3385,7 +3385,7 @@ var init_release = __esm({
3385
3385
  "../../packages/shared/src/release.ts"() {
3386
3386
  "use strict";
3387
3387
  init_cjs_shims();
3388
- BOOTSPRING_VERSION = "2.6.0";
3388
+ BOOTSPRING_VERSION = "2.7.0";
3389
3389
  BOOTSPRING_PACKAGE_NAME = "@girardmedia/bootspring";
3390
3390
  }
3391
3391
  });
@@ -45805,12 +45805,103 @@ var init_autopilot_tools = __esm({
45805
45805
  }
45806
45806
  });
45807
45807
 
45808
+ // ../../packages/mcp/src/brain-tools.ts
45809
+ function getRouter() {
45810
+ if (!routerInstance) {
45811
+ try {
45812
+ const { brain } = require("@bootspring/session-intelligence");
45813
+ routerInstance = new brain.UnifiedBrainRouter();
45814
+ } catch {
45815
+ throw new Error("Brain router requires @bootspring/session-intelligence");
45816
+ }
45817
+ }
45818
+ return routerInstance;
45819
+ }
45820
+ function registerBrainTools() {
45821
+ registerTool(brainDefinition, brainHandler);
45822
+ }
45823
+ var routerInstance, brainDefinition, brainHandler, BRAIN_TOOLS;
45824
+ var init_brain_tools = __esm({
45825
+ "../../packages/mcp/src/brain-tools.ts"() {
45826
+ "use strict";
45827
+ init_cjs_shims();
45828
+ init_registry();
45829
+ routerInstance = null;
45830
+ brainDefinition = {
45831
+ name: "bootspring_brain",
45832
+ description: "Intelligent natural language router \u2014 analyzes input and dispatches to the right Bootspring skill, workflow, agent, or pipeline. Use this to find the best action for any request.",
45833
+ inputSchema: {
45834
+ type: "object",
45835
+ properties: {
45836
+ prompt: {
45837
+ type: "string",
45838
+ description: "Natural language input to route"
45839
+ },
45840
+ autoDispatch: {
45841
+ type: "boolean",
45842
+ description: "If true and confidence > 0.85, include a dispatch instruction"
45843
+ }
45844
+ },
45845
+ required: ["prompt"]
45846
+ }
45847
+ };
45848
+ brainHandler = async (args) => {
45849
+ const prompt2 = String(args.prompt || "");
45850
+ const autoDispatch = Boolean(args.autoDispatch);
45851
+ if (!prompt2.trim()) {
45852
+ return {
45853
+ content: [{ type: "text", text: "Error: prompt is required" }],
45854
+ isError: true
45855
+ };
45856
+ }
45857
+ const router = getRouter();
45858
+ const result = router.route(prompt2);
45859
+ const lines = [];
45860
+ lines.push(`Brain Router Result`);
45861
+ lines.push(`${"=".repeat(50)}`);
45862
+ lines.push(`Target: ${result.target.name}`);
45863
+ lines.push(`Type: ${result.target.type}`);
45864
+ lines.push(`Confidence: ${result.confidence}`);
45865
+ lines.push(`Method: ${result.method}`);
45866
+ if (result.target.command) {
45867
+ lines.push(`Command: ${result.target.command}`);
45868
+ }
45869
+ lines.push(`
45870
+ Description: ${result.target.description}`);
45871
+ lines.push(`
45872
+ Explanation: ${result.explanation}`);
45873
+ if (result.alternatives.length > 0) {
45874
+ lines.push(`
45875
+ Alternatives:`);
45876
+ for (const alt of result.alternatives) {
45877
+ const cmd = alt.target.command ? ` (${alt.target.command})` : "";
45878
+ lines.push(` - ${alt.target.name} [${alt.target.type}] confidence=${alt.confidence}${cmd}`);
45879
+ }
45880
+ }
45881
+ if (autoDispatch && result.confidence >= 0.85 && result.target.command) {
45882
+ lines.push(`
45883
+ ${"=".repeat(50)}`);
45884
+ lines.push(`AUTO-DISPATCH: Confidence ${result.confidence} >= 0.85`);
45885
+ lines.push(`Execute: ${result.target.command}`);
45886
+ lines.push(
45887
+ `Use the MCP tool or CLI command above to fulfill the user's request.`
45888
+ );
45889
+ }
45890
+ return {
45891
+ content: [{ type: "text", text: lines.join("\n") }]
45892
+ };
45893
+ };
45894
+ BRAIN_TOOLS = [brainDefinition];
45895
+ }
45896
+ });
45897
+
45808
45898
  // ../../packages/mcp/src/index.ts
45809
45899
  var src_exports3 = {};
45810
45900
  __export(src_exports3, {
45811
45901
  ASSISTANT_PARITY_TOOLS: () => ASSISTANT_PARITY_TOOLS,
45812
45902
  AUDIT_TOOLS: () => AUDIT_TOOLS,
45813
45903
  AUTOPILOT_TOOLS: () => AUTOPILOT_TOOLS,
45904
+ BRAIN_TOOLS: () => BRAIN_TOOLS,
45814
45905
  COMPLIANCE_TOOLS: () => COMPLIANCE_TOOLS,
45815
45906
  DOCS_INTELLIGENCE_TOOLS: () => DOCS_INTELLIGENCE_TOOLS,
45816
45907
  MARKETPLACE_TOOLS: () => MARKETPLACE_TOOLS,
@@ -45850,6 +45941,7 @@ __export(src_exports3, {
45850
45941
  registerAssistantParityTools: () => registerAssistantParityTools,
45851
45942
  registerAuditTools: () => registerAuditTools,
45852
45943
  registerAutopilotTools: () => registerAutopilotTools,
45944
+ registerBrainTools: () => registerBrainTools,
45853
45945
  registerComplianceTools: () => registerComplianceTools,
45854
45946
  registerDocsIntelligenceTools: () => registerDocsIntelligenceTools,
45855
45947
  registerMarketplaceTools: () => registerMarketplaceTools,
@@ -45895,6 +45987,7 @@ var init_src3 = __esm({
45895
45987
  init_notification_tools();
45896
45988
  init_observer_tools();
45897
45989
  init_autopilot_tools();
45990
+ init_brain_tools();
45898
45991
  }
45899
45992
  });
45900
45993
 
@@ -77615,6 +77708,164 @@ ${COLORS.bold}Shell Completion${COLORS.reset}
77615
77708
  });
77616
77709
  }
77617
77710
 
77711
+ // src/commands/brain.ts
77712
+ init_cjs_shims();
77713
+ var _router = null;
77714
+ function getRouter2() {
77715
+ if (!_router) {
77716
+ try {
77717
+ const { brain } = require("@bootspring/session-intelligence");
77718
+ _router = new brain.UnifiedBrainRouter();
77719
+ } catch {
77720
+ return null;
77721
+ }
77722
+ }
77723
+ return _router;
77724
+ }
77725
+ function registerBrainCommand(program3) {
77726
+ const brain = program3.command("brain").description("NLU brain \u2014 natural language routing to skills, workflows, agents, and pipelines");
77727
+ brain.command("route <prompt...>").description("Route a natural language query and show the result").option("--json", "Output as JSON").option("--auto-dispatch", "Include dispatch instruction if confidence > 0.85").action(async (promptParts, opts) => {
77728
+ const router = getRouter2();
77729
+ if (!router) {
77730
+ console.error("Brain router not available. Ensure @bootspring/session-intelligence is installed.");
77731
+ process.exitCode = 1;
77732
+ return;
77733
+ }
77734
+ const prompt2 = promptParts.join(" ");
77735
+ const result = router.route(prompt2);
77736
+ if (opts.json) {
77737
+ console.log(JSON.stringify(result, null, 2));
77738
+ return;
77739
+ }
77740
+ console.log(`
77741
+ \x1B[1mBrain Router Result\x1B[0m`);
77742
+ console.log(` ${"\u2500".repeat(46)}`);
77743
+ console.log(` Target: ${result.target.name}`);
77744
+ console.log(` Type: ${result.target.type}`);
77745
+ console.log(` Confidence: ${result.confidence}`);
77746
+ console.log(` Method: ${result.method}`);
77747
+ if (result.target.command) {
77748
+ console.log(` Command: \x1B[36m${result.target.command}\x1B[0m`);
77749
+ }
77750
+ console.log(` Description: ${result.target.description}`);
77751
+ console.log(` Explanation: ${result.explanation}`);
77752
+ if (result.alternatives.length > 0) {
77753
+ console.log(`
77754
+ Alternatives:`);
77755
+ for (const alt of result.alternatives) {
77756
+ const cmd = alt.target.command ? ` \u2192 ${alt.target.command}` : "";
77757
+ console.log(` - ${alt.target.name} [${alt.target.type}] (${alt.confidence})${cmd}`);
77758
+ }
77759
+ }
77760
+ if (opts.autoDispatch && result.confidence >= 0.85 && result.target.command) {
77761
+ console.log(`
77762
+ \x1B[32mAUTO-DISPATCH\x1B[0m: Run \x1B[36m${result.target.command}\x1B[0m`);
77763
+ }
77764
+ console.log();
77765
+ });
77766
+ brain.command("status", { isDefault: true }).description("Show brain status \u2014 loaded targets, corpus size, config").option("--json", "Output as JSON").action(async (opts) => {
77767
+ const router = getRouter2();
77768
+ if (!router) {
77769
+ console.error("Brain router not available.");
77770
+ process.exitCode = 1;
77771
+ return;
77772
+ }
77773
+ let corpusSize = 0;
77774
+ let targetTypes = {};
77775
+ try {
77776
+ const { brain: brainMod } = require("@bootspring/session-intelligence");
77777
+ const corpus = brainMod.BRAIN_CORPUS;
77778
+ corpusSize = corpus.length;
77779
+ for (const t of corpus) {
77780
+ targetTypes[t.type] = (targetTypes[t.type] || 0) + 1;
77781
+ }
77782
+ } catch {
77783
+ }
77784
+ const analytics = router.getAnalytics();
77785
+ const status = {
77786
+ active: true,
77787
+ corpusSize,
77788
+ targetTypes,
77789
+ totalInvocations: analytics.totalInvocations,
77790
+ accuracyRate: analytics.accuracyRate,
77791
+ methodBreakdown: analytics.methodBreakdown
77792
+ };
77793
+ if (opts.json) {
77794
+ console.log(JSON.stringify(status, null, 2));
77795
+ return;
77796
+ }
77797
+ console.log(`
77798
+ \x1B[1mBrain Status\x1B[0m`);
77799
+ console.log(` ${"\u2500".repeat(46)}`);
77800
+ console.log(` Active: \x1B[32myes\x1B[0m`);
77801
+ console.log(` Corpus size: ${corpusSize} targets`);
77802
+ if (Object.keys(targetTypes).length > 0) {
77803
+ console.log(` Target types:`);
77804
+ for (const [type, count] of Object.entries(targetTypes)) {
77805
+ console.log(` ${type}: ${count}`);
77806
+ }
77807
+ }
77808
+ console.log(` Invocations: ${analytics.totalInvocations}`);
77809
+ console.log(` Accuracy: ${(analytics.accuracyRate * 100).toFixed(1)}%`);
77810
+ if (Object.keys(analytics.methodBreakdown).length > 0) {
77811
+ console.log(` Methods:`);
77812
+ for (const [method, count] of Object.entries(analytics.methodBreakdown)) {
77813
+ console.log(` ${method}: ${count}`);
77814
+ }
77815
+ }
77816
+ console.log();
77817
+ });
77818
+ brain.command("analytics").description("Show routing analytics \u2014 invocations, accuracy, top targets").option("--json", "Output as JSON").action(async (opts) => {
77819
+ const router = getRouter2();
77820
+ if (!router) {
77821
+ console.error("Brain router not available.");
77822
+ process.exitCode = 1;
77823
+ return;
77824
+ }
77825
+ const analytics = router.getAnalytics();
77826
+ if (opts.json) {
77827
+ console.log(JSON.stringify(analytics, null, 2));
77828
+ return;
77829
+ }
77830
+ console.log(`
77831
+ \x1B[1mBrain Analytics\x1B[0m`);
77832
+ console.log(` ${"\u2500".repeat(46)}`);
77833
+ console.log(` Total invocations: ${analytics.totalInvocations}`);
77834
+ console.log(` Correct routes: ${analytics.correctRoutes}`);
77835
+ console.log(` User overrides: ${analytics.userOverrides}`);
77836
+ console.log(` Accuracy rate: ${(analytics.accuracyRate * 100).toFixed(1)}%`);
77837
+ if (Object.keys(analytics.methodBreakdown).length > 0) {
77838
+ console.log(`
77839
+ Method breakdown:`);
77840
+ for (const [method, count] of Object.entries(analytics.methodBreakdown)) {
77841
+ console.log(` ${method}: ${count}`);
77842
+ }
77843
+ }
77844
+ if (analytics.topTargets.length > 0) {
77845
+ console.log(`
77846
+ Top targets:`);
77847
+ for (const t of analytics.topTargets) {
77848
+ console.log(` ${t.name}: ${t.count} hits`);
77849
+ }
77850
+ }
77851
+ console.log();
77852
+ });
77853
+ brain.command("reset").description("Reset brain analytics").option("--json", "Output as JSON").action(async (opts) => {
77854
+ const router = getRouter2();
77855
+ if (!router) {
77856
+ console.error("Brain router not available.");
77857
+ process.exitCode = 1;
77858
+ return;
77859
+ }
77860
+ router.resetAnalytics();
77861
+ if (opts.json) {
77862
+ console.log(JSON.stringify({ reset: true }));
77863
+ return;
77864
+ }
77865
+ console.log("Brain analytics reset.");
77866
+ });
77867
+ }
77868
+
77618
77869
  // src/index.ts
77619
77870
  var program2 = new Command();
77620
77871
  program2.name("bootspring").description("Thin CLI for Bootspring cloud MCP, hosted agents, and AI-assisted workflows").version(BOOTSPRING_VERSION);
@@ -77702,6 +77953,7 @@ registerExperimental(registerSpecCommand);
77702
77953
  registerSyncCommand(program2);
77703
77954
  registerHookCommand(program2);
77704
77955
  registerCompletionCommand(program2);
77956
+ registerBrainCommand(program2);
77705
77957
  var HERO_COMMANDS = /* @__PURE__ */ new Set([
77706
77958
  "auth",
77707
77959
  "build",
@@ -77721,7 +77973,7 @@ var COMMAND_GROUPS = {
77721
77973
  "Project": ["project", "workspace", "org", "switch", "checkpoint"],
77722
77974
  "Dev Tools": ["doctor", "health", "setup", "validate", "watch", "dashboard", "update", "hook", "completion"],
77723
77975
  "Analysis": ["analyze", "audit", "quality", "security", "diff", "report"],
77724
- "AI & Agents": ["agent", "skill", "context", "prompt", "flow"],
77976
+ "AI & Agents": ["agent", "skill", "brain", "context", "prompt", "flow"],
77725
77977
  "Observe": ["observe", "autopilot", "monitor", "session", "metrics", "telemetry"],
77726
77978
  "Docs": ["docs", "generate", "prd", "content", "plan", "suggest"],
77727
77979
  "Deploy & Ops": ["deploy", "sync", "cloud-sync", "github", "undo", "history", "changes", "log"],
@@ -31,7 +31,7 @@ var HELP_GROUPS = {
31
31
  "Project": ["project", "workspace", "org", "switch", "checkpoint"],
32
32
  "Dev Tools": ["doctor", "health", "setup", "validate", "watch", "dashboard", "update", "hook"],
33
33
  "Analysis": ["analyze", "audit", "quality", "security", "diff", "report"],
34
- "AI & Agents": ["agent", "skill", "context", "prompt", "flow"],
34
+ "AI & Agents": ["agent", "skill", "context", "prompt", "flow", "brain"],
35
35
  "Observe": ["observe", "autopilot", "monitor", "session", "metrics", "telemetry"],
36
36
  "Docs": ["docs", "generate", "prd", "content", "plan", "suggest"],
37
37
  "Deploy & Ops": ["deploy", "sync", "cloud-sync", "github", "undo", "history", "changes", "log"],
@@ -477,7 +477,7 @@ interface InstallContext {
477
477
  scriptPath: string;
478
478
  }
479
479
  declare const PACKAGE_NAME = "@girardmedia/bootspring";
480
- declare const CURRENT_VERSION: string;
480
+ declare const CURRENT_VERSION = "2.7.0";
481
481
  declare const DEFAULT_INTERVAL_MS: number;
482
482
  declare const STATE_PATH: string;
483
483
  declare function compareVersions(a: string, b: string): number;
@@ -965,8 +965,8 @@ declare const AnalyticsPluginSchema: z.ZodObject<{
965
965
  google_analytics: "google_analytics";
966
966
  }>>;
967
967
  features: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<{
968
- events: "events";
969
968
  page_views: "page_views";
969
+ events: "events";
970
970
  user_tracking: "user_tracking";
971
971
  funnels: "funnels";
972
972
  experiments: "experiments";
@@ -1124,8 +1124,8 @@ declare const PluginsSchema: z.ZodObject<{
1124
1124
  google_analytics: "google_analytics";
1125
1125
  }>>;
1126
1126
  features: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<{
1127
- events: "events";
1128
1127
  page_views: "page_views";
1128
+ events: "events";
1129
1129
  user_tracking: "user_tracking";
1130
1130
  funnels: "funnels";
1131
1131
  experiments: "experiments";
@@ -1590,8 +1590,8 @@ declare const ConfigSchema: z.ZodObject<{
1590
1590
  google_analytics: "google_analytics";
1591
1591
  }>>;
1592
1592
  features: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<{
1593
- events: "events";
1594
1593
  page_views: "page_views";
1594
+ events: "events";
1595
1595
  user_tracking: "user_tracking";
1596
1596
  funnels: "funnels";
1597
1597
  experiments: "experiments";
package/dist/core.js CHANGED
@@ -379,7 +379,7 @@ var init_release = __esm({
379
379
  "../../packages/shared/src/release.ts"() {
380
380
  "use strict";
381
381
  init_cjs_shims();
382
- BOOTSPRING_VERSION = "2.6.0";
382
+ BOOTSPRING_VERSION = "2.7.0";
383
383
  BOOTSPRING_PACKAGE_NAME = "@girardmedia/bootspring";
384
384
  }
385
385
  });
@@ -21643,7 +21643,7 @@ ${COLORS2.dim}Run "bootspring mcp" for server options${COLORS2.reset}
21643
21643
  console.log(`${COLORS2.dim}Run "bootspring mcp" for setup instructions.${COLORS2.reset}
21644
21644
  `);
21645
21645
  }
21646
- var BOOTSPRING_VERSION2 = "2.6.0";
21646
+ var BOOTSPRING_VERSION2 = "2.7.0";
21647
21647
  var BOOTSPRING_PACKAGE_NAME2 = "@girardmedia/bootspring";
21648
21648
  var REDACTED2 = "[REDACTED]";
21649
21649
  var SENSITIVE_KEY_PATTERN2 = /(?:^|[_-])(api[_-]?key|token|refresh[_-]?token|authorization|x[_-]?api[_-]?key|project[_-]?id)$/i;
@@ -21691,7 +21691,7 @@ var require_package = __commonJS({
21691
21691
  "../../../package.json"(exports2, module2) {
21692
21692
  module2.exports = {
21693
21693
  name: "bootspring-workspace",
21694
- version: "2.6.0",
21694
+ version: "2.7.0",
21695
21695
  private: true,
21696
21696
  description: "Workspace tooling for the Bootspring monorepo",
21697
21697
  keywords: [
@@ -521,4 +521,13 @@ declare function registerObserverTools(): void;
521
521
  declare const AUTOPILOT_TOOLS: ToolDefinition[];
522
522
  declare function registerAutopilotTools(): void;
523
523
 
524
- export { ASSISTANT_PARITY_TOOLS, AUDIT_TOOLS, AUTOPILOT_TOOLS, type AgentData, type AssistResponseData, type BuildCapabilitiesOptions, COMPLIANCE_TOOLS, type CapabilitiesDeps, type ContextValidationResult, DOCS_INTELLIGENCE_TOOLS, type FilteredWorkflows, type ListOptions, MARKETPLACE_TOOLS, type MCPServerOptions, type MCPToolResultWithMeta, METRICS_TOOLS, NOTIFICATION_TOOLS, OBSERVER_TOOLS, ONBOARDING_TOOLS, type OrchestratorStatus, type PRDData, type PolicyProfile, type ProgressInfo, type ProjectContextDisplay, QUALITY_INTELLIGENCE_TOOLS, type QualityGateResults, RBAC_TOOLS, RELEASE_TOOLS, type RegistryExports, SYNC_TOOLS, type SkillData, type SuccessOptions, type TodoItem, type ValidationResult, type WorkflowAccessContext, agentDetails, assistResponse, buildCapabilities, buildDefaultCapabilities, clearCache, contextSummary, contextValidation, createServer, error, generateProgressBar, getCompatibilityRegistryCandidatePaths, getLegacyRegistryCandidatePaths, getRegistryExports, getResourceHandlers, getResources, getToolHandlers, getTools, invokeTool, isRegistryPopulated, list, loadToolsFromDirectory, loopStatus, main, orchestratorStatus, qualityResults, registerAssistantParityTools, registerAuditTools, registerAutopilotTools, registerComplianceTools, registerDocsIntelligenceTools, registerMarketplaceTools, registerMetricsTools, registerNotificationTools, registerObserverTools, registerOnboardingTools, registerQualityIntelligenceTools, registerRbacTools, registerReleaseTools, registerResource, registerSyncTools, registerTool, resolveCompatibilityRegistry, resolveRuntimeRegistry, skillDetails, startStdioServer, success, todoList, trackTelemetry, validateDependencies, warning };
524
+ /**
525
+ * @bootspring/mcp — Brain NLU Router MCP Tool
526
+ * 1 tool: bootspring_brain — natural language router for skills, workflows, agents, pipelines.
527
+ * @package @bootspring/mcp
528
+ */
529
+
530
+ declare const BRAIN_TOOLS: ToolDefinition[];
531
+ declare function registerBrainTools(): void;
532
+
533
+ export { ASSISTANT_PARITY_TOOLS, AUDIT_TOOLS, AUTOPILOT_TOOLS, type AgentData, type AssistResponseData, BRAIN_TOOLS, type BuildCapabilitiesOptions, COMPLIANCE_TOOLS, type CapabilitiesDeps, type ContextValidationResult, DOCS_INTELLIGENCE_TOOLS, type FilteredWorkflows, type ListOptions, MARKETPLACE_TOOLS, type MCPServerOptions, type MCPToolResultWithMeta, METRICS_TOOLS, NOTIFICATION_TOOLS, OBSERVER_TOOLS, ONBOARDING_TOOLS, type OrchestratorStatus, type PRDData, type PolicyProfile, type ProgressInfo, type ProjectContextDisplay, QUALITY_INTELLIGENCE_TOOLS, type QualityGateResults, RBAC_TOOLS, RELEASE_TOOLS, type RegistryExports, SYNC_TOOLS, type SkillData, type SuccessOptions, type TodoItem, type ValidationResult, type WorkflowAccessContext, agentDetails, assistResponse, buildCapabilities, buildDefaultCapabilities, clearCache, contextSummary, contextValidation, createServer, error, generateProgressBar, getCompatibilityRegistryCandidatePaths, getLegacyRegistryCandidatePaths, getRegistryExports, getResourceHandlers, getResources, getToolHandlers, getTools, invokeTool, isRegistryPopulated, list, loadToolsFromDirectory, loopStatus, main, orchestratorStatus, qualityResults, registerAssistantParityTools, registerAuditTools, registerAutopilotTools, registerBrainTools, registerComplianceTools, registerDocsIntelligenceTools, registerMarketplaceTools, registerMetricsTools, registerNotificationTools, registerObserverTools, registerOnboardingTools, registerQualityIntelligenceTools, registerRbacTools, registerReleaseTools, registerResource, registerSyncTools, registerTool, resolveCompatibilityRegistry, resolveRuntimeRegistry, skillDetails, startStdioServer, success, todoList, trackTelemetry, validateDependencies, warning };
@@ -31377,7 +31377,7 @@ var init_release = __esm({
31377
31377
  "../../packages/shared/src/release.ts"() {
31378
31378
  "use strict";
31379
31379
  init_cjs_shims();
31380
- BOOTSPRING_VERSION = "2.6.0";
31380
+ BOOTSPRING_VERSION = "2.7.0";
31381
31381
  BOOTSPRING_PACKAGE_NAME = "@girardmedia/bootspring";
31382
31382
  }
31383
31383
  });
@@ -52278,7 +52278,7 @@ var require_package = __commonJS({
52278
52278
  "../../../package.json"(exports2, module2) {
52279
52279
  module2.exports = {
52280
52280
  name: "bootspring-workspace",
52281
- version: "2.6.0",
52281
+ version: "2.7.0",
52282
52282
  private: true,
52283
52283
  description: "Workspace tooling for the Bootspring monorepo",
52284
52284
  keywords: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@girardmedia/bootspring",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "Thin client for Bootspring cloud MCP, hosted agents, and paywalled workflow intelligence",
5
5
  "keywords": [
6
6
  "ai",