@girardmedia/bootspring 2.0.21 → 2.0.23

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 (159) hide show
  1. package/bin/bootspring.js +5 -0
  2. package/cli/org.js +474 -0
  3. package/cli/preseed/index.js +16 -0
  4. package/cli/preseed/interactive.js +143 -0
  5. package/cli/preseed/templates.js +227 -0
  6. package/cli/preseed.js +9 -301
  7. package/cli/seed/builders/ai-context-builder.js +85 -0
  8. package/cli/seed/builders/index.js +13 -0
  9. package/cli/seed/builders/seed-builder.js +272 -0
  10. package/cli/seed/extractors/content-extractors.js +383 -0
  11. package/cli/seed/extractors/index.js +47 -0
  12. package/cli/seed/extractors/metadata-extractors.js +167 -0
  13. package/cli/seed/extractors/section-extractor.js +54 -0
  14. package/cli/seed/extractors/stack-extractors.js +228 -0
  15. package/cli/seed/index.js +18 -0
  16. package/cli/seed/utils/folder-structure.js +84 -0
  17. package/cli/seed/utils/index.js +11 -0
  18. package/cli/seed.js +23 -1074
  19. package/core/api-client.js +77 -0
  20. package/core/entitlements.js +36 -0
  21. package/core/organizations.js +223 -0
  22. package/core/policies.js +51 -6
  23. package/core/policy-matrix.js +303 -0
  24. package/core/project-context.js +1 -0
  25. package/dist/cli/index.d.ts +3 -0
  26. package/dist/cli/index.js +3220 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/context-McpJQa_2.d.ts +5710 -0
  29. package/dist/core/index.d.ts +635 -0
  30. package/dist/core/index.js +2593 -0
  31. package/dist/core/index.js.map +1 -0
  32. package/dist/index-QqbeEiDm.d.ts +857 -0
  33. package/dist/index-UiYCgwiH.d.ts +174 -0
  34. package/dist/index.d.ts +453 -0
  35. package/dist/index.js +44228 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/mcp/index.d.ts +1 -0
  38. package/dist/mcp/index.js +41173 -0
  39. package/dist/mcp/index.js.map +1 -0
  40. package/generators/index.ts +82 -0
  41. package/intelligence/orchestrator/config/failure-signatures.js +48 -0
  42. package/intelligence/orchestrator/config/index.js +23 -0
  43. package/intelligence/orchestrator/config/pack-lifecycle.js +262 -0
  44. package/intelligence/orchestrator/config/phases.js +111 -0
  45. package/intelligence/orchestrator/config/remediation.js +150 -0
  46. package/intelligence/orchestrator/config/workflows.js +168 -0
  47. package/intelligence/orchestrator/core/index.js +16 -0
  48. package/intelligence/orchestrator/core/state-manager.js +88 -0
  49. package/intelligence/orchestrator/core/telemetry.js +24 -0
  50. package/intelligence/orchestrator/index.js +17 -0
  51. package/intelligence/orchestrator.js +17 -512
  52. package/mcp/contracts/mcp-contract.v1.json +1 -1
  53. package/package.json +16 -3
  54. package/src/cli/agent.ts +703 -0
  55. package/src/cli/analyze.ts +640 -0
  56. package/src/cli/audit.ts +707 -0
  57. package/src/cli/auth.ts +930 -0
  58. package/src/cli/billing.ts +364 -0
  59. package/src/cli/build.ts +1089 -0
  60. package/src/cli/business.ts +508 -0
  61. package/src/cli/checkpoint-utils.ts +236 -0
  62. package/src/cli/checkpoint.ts +757 -0
  63. package/src/cli/cloud-sync.ts +534 -0
  64. package/src/cli/content.ts +273 -0
  65. package/src/cli/context.ts +667 -0
  66. package/src/cli/dashboard.ts +133 -0
  67. package/src/cli/deploy.ts +704 -0
  68. package/src/cli/doctor.ts +480 -0
  69. package/src/cli/fundraise.ts +494 -0
  70. package/src/cli/generate.ts +346 -0
  71. package/src/cli/github-cmd.ts +566 -0
  72. package/src/cli/health.ts +599 -0
  73. package/src/cli/index.ts +113 -0
  74. package/src/cli/init.ts +838 -0
  75. package/src/cli/legal.ts +495 -0
  76. package/src/cli/log.ts +316 -0
  77. package/src/cli/loop.ts +1660 -0
  78. package/src/cli/manager.ts +878 -0
  79. package/src/cli/mcp.ts +275 -0
  80. package/src/cli/memory.ts +346 -0
  81. package/src/cli/metrics.ts +590 -0
  82. package/src/cli/monitor.ts +960 -0
  83. package/src/cli/mvp.ts +662 -0
  84. package/src/cli/onboard.ts +663 -0
  85. package/src/cli/orchestrator.ts +622 -0
  86. package/src/cli/plugin.ts +483 -0
  87. package/src/cli/prd.ts +671 -0
  88. package/src/cli/preseed-start.ts +1633 -0
  89. package/src/cli/preseed.ts +2434 -0
  90. package/src/cli/project.ts +526 -0
  91. package/src/cli/quality.ts +885 -0
  92. package/src/cli/security.ts +1079 -0
  93. package/src/cli/seed.ts +1224 -0
  94. package/src/cli/skill.ts +537 -0
  95. package/src/cli/suggest.ts +1225 -0
  96. package/src/cli/switch.ts +518 -0
  97. package/src/cli/task.ts +780 -0
  98. package/src/cli/telemetry.ts +172 -0
  99. package/src/cli/todo.ts +627 -0
  100. package/src/cli/types.ts +15 -0
  101. package/src/cli/update.ts +334 -0
  102. package/src/cli/visualize.ts +609 -0
  103. package/src/cli/watch.ts +895 -0
  104. package/src/cli/workspace.ts +709 -0
  105. package/src/core/action-recorder.ts +673 -0
  106. package/src/core/analyze-workflow.ts +1453 -0
  107. package/src/core/api-client.ts +1120 -0
  108. package/src/core/audit-workflow.ts +1681 -0
  109. package/src/core/auth.ts +471 -0
  110. package/src/core/build-orchestrator.ts +509 -0
  111. package/src/core/build-state.ts +621 -0
  112. package/src/core/checkpoint-engine.ts +482 -0
  113. package/src/core/config.ts +1285 -0
  114. package/src/core/context-loader.ts +694 -0
  115. package/src/core/context.ts +410 -0
  116. package/src/core/deploy-workflow.ts +1085 -0
  117. package/src/core/entitlements.ts +322 -0
  118. package/src/core/github-sync.ts +720 -0
  119. package/src/core/index.ts +981 -0
  120. package/src/core/ingest.ts +1186 -0
  121. package/src/core/metrics-engine.ts +886 -0
  122. package/src/core/mvp.ts +847 -0
  123. package/src/core/onboard-workflow.ts +1293 -0
  124. package/src/core/policies.ts +81 -0
  125. package/src/core/preseed-workflow.ts +1163 -0
  126. package/src/core/preseed.ts +1826 -0
  127. package/src/core/project-context.ts +380 -0
  128. package/src/core/project-state.ts +699 -0
  129. package/src/core/r2-sync.ts +691 -0
  130. package/src/core/scaffold.ts +1715 -0
  131. package/src/core/session.ts +286 -0
  132. package/src/core/task-extractor.ts +799 -0
  133. package/src/core/telemetry.ts +371 -0
  134. package/src/core/tier-enforcement.ts +737 -0
  135. package/src/core/utils.ts +437 -0
  136. package/src/index.ts +29 -0
  137. package/src/intelligence/agent-collab.ts +2376 -0
  138. package/src/intelligence/auto-suggest.ts +713 -0
  139. package/src/intelligence/content-gen.ts +1351 -0
  140. package/src/intelligence/cross-project.ts +1692 -0
  141. package/src/intelligence/git-memory.ts +529 -0
  142. package/src/intelligence/index.ts +318 -0
  143. package/src/intelligence/orchestrator.ts +534 -0
  144. package/src/intelligence/prd.ts +466 -0
  145. package/src/intelligence/recommendations.ts +982 -0
  146. package/src/intelligence/workflow-composer.ts +1472 -0
  147. package/src/mcp/capabilities.ts +233 -0
  148. package/src/mcp/index.ts +37 -0
  149. package/src/mcp/registry.ts +1268 -0
  150. package/src/mcp/response-formatter.ts +797 -0
  151. package/src/mcp/server.ts +240 -0
  152. package/src/types/agent.ts +69 -0
  153. package/src/types/config.ts +86 -0
  154. package/src/types/context.ts +77 -0
  155. package/src/types/index.ts +53 -0
  156. package/src/types/mcp.ts +91 -0
  157. package/src/types/skills.ts +47 -0
  158. package/src/types/workflow.ts +155 -0
  159. package/generators/index.js +0 -18
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Bootspring Telemetry Command
3
+ * Inspect and upload telemetry events.
4
+ *
5
+ * @package bootspring
6
+ * @module cli/telemetry
7
+ */
8
+
9
+ import * as utils from '../core/utils';
10
+ import * as telemetry from '../core/telemetry';
11
+ import type { ListEventsOptions, UploadOptions } from '../core/telemetry';
12
+
13
+ // =============================================================================
14
+ // Types
15
+ // =============================================================================
16
+
17
+ /**
18
+ * List command options
19
+ */
20
+ interface ListOptions {
21
+ event?: string | undefined;
22
+ limit?: number | undefined;
23
+ }
24
+
25
+ /**
26
+ * Upload command options
27
+ */
28
+ interface UploadCommandOptions {
29
+ endpoint?: string | undefined;
30
+ token?: string | undefined;
31
+ event?: string | undefined;
32
+ limit?: number | undefined;
33
+ clear?: boolean | undefined;
34
+ }
35
+
36
+ // =============================================================================
37
+ // Command Functions
38
+ // =============================================================================
39
+
40
+ /**
41
+ * Show telemetry status
42
+ */
43
+ function showStatus(): void {
44
+ const status = telemetry.getStatus();
45
+ console.log(`
46
+ ${utils.COLORS.cyan}${utils.COLORS.bold}Telemetry Status${utils.COLORS.reset}
47
+ ${utils.COLORS.dim}File: ${status.file}${utils.COLORS.reset}
48
+ ${utils.COLORS.dim}Events: ${status.count}${utils.COLORS.reset}
49
+ ${utils.COLORS.dim}Last event: ${status.lastEventAt ?? 'none'}${utils.COLORS.reset}
50
+ `);
51
+ }
52
+
53
+ /**
54
+ * List telemetry events
55
+ */
56
+ function listEvents(options: ListOptions = {}): void {
57
+ const listOptions: ListEventsOptions = {
58
+ event: options.event,
59
+ limit: options.limit
60
+ };
61
+
62
+ const records = telemetry.listEvents(listOptions);
63
+ if (records.length === 0) {
64
+ utils.print.warning('No telemetry events found');
65
+ return;
66
+ }
67
+
68
+ records.forEach(record => {
69
+ console.log(`${utils.COLORS.cyan}${record.timestamp}${utils.COLORS.reset} ${record.event}`);
70
+ });
71
+ console.log(`\n${utils.COLORS.dim}${records.length} event(s)${utils.COLORS.reset}`);
72
+ }
73
+
74
+ /**
75
+ * Upload telemetry events
76
+ */
77
+ async function upload(options: UploadCommandOptions = {}): Promise<void> {
78
+ const spinner = utils.createSpinner('Uploading telemetry events').start();
79
+ try {
80
+ const uploadOptions: UploadOptions = {
81
+ endpoint: options.endpoint,
82
+ token: options.token,
83
+ event: options.event,
84
+ limit: options.limit,
85
+ clearOnSuccess: options.clear
86
+ };
87
+
88
+ const result = await telemetry.uploadEvents(uploadOptions);
89
+ spinner.succeed(`Uploaded ${result.uploaded} event(s)`);
90
+ utils.print.dim(`Endpoint: ${result.endpoint}`);
91
+ utils.print.dim(`Remaining local events: ${result.remaining}`);
92
+ } catch (error) {
93
+ spinner.fail(`Upload failed: ${error instanceof Error ? error.message : String(error)}`);
94
+ }
95
+ }
96
+
97
+ /**
98
+ * Clear telemetry events
99
+ */
100
+ function clear(): void {
101
+ const result = telemetry.clearEvents();
102
+ utils.print.success(`Cleared ${result.cleared} event(s)`);
103
+ }
104
+
105
+ /**
106
+ * Show help
107
+ */
108
+ function help(): void {
109
+ console.log(`
110
+ ${utils.COLORS.cyan}${utils.COLORS.bold}Bootspring Telemetry${utils.COLORS.reset}
111
+
112
+ ${utils.COLORS.cyan}Usage:${utils.COLORS.reset}
113
+ bootspring telemetry <command> [options]
114
+
115
+ ${utils.COLORS.cyan}Commands:${utils.COLORS.reset}
116
+ ${utils.COLORS.cyan}status${utils.COLORS.reset} Show telemetry status
117
+ ${utils.COLORS.cyan}list${utils.COLORS.reset} List telemetry events
118
+ ${utils.COLORS.cyan}upload${utils.COLORS.reset} Upload events to endpoint
119
+ ${utils.COLORS.cyan}clear${utils.COLORS.reset} Clear local event log
120
+
121
+ ${utils.COLORS.cyan}Options:${utils.COLORS.reset}
122
+ ${utils.COLORS.cyan}--event <name>${utils.COLORS.reset} Filter by event name
123
+ ${utils.COLORS.cyan}--limit <n>${utils.COLORS.reset} Limit listed/uploaded events
124
+ ${utils.COLORS.cyan}--endpoint <url>${utils.COLORS.reset} Upload endpoint override
125
+ ${utils.COLORS.cyan}--token <value>${utils.COLORS.reset} Upload bearer token
126
+ ${utils.COLORS.cyan}--clear${utils.COLORS.reset} Clear local events on successful upload
127
+ `);
128
+ }
129
+
130
+ // =============================================================================
131
+ // Main Entry Point
132
+ // =============================================================================
133
+
134
+ /**
135
+ * Run telemetry command
136
+ */
137
+ export async function run(args: string[]): Promise<void> {
138
+ const parsed = utils.parseArgs(args);
139
+ const command = parsed._[0] ?? 'status';
140
+
141
+ switch (command) {
142
+ case 'status':
143
+ showStatus();
144
+ break;
145
+ case 'list':
146
+ listEvents({
147
+ event: parsed.event as string | undefined,
148
+ limit: parsed.limit ? Number(parsed.limit) : undefined
149
+ });
150
+ break;
151
+ case 'upload':
152
+ await upload({
153
+ endpoint: parsed.endpoint as string | undefined,
154
+ token: parsed.token as string | undefined,
155
+ event: parsed.event as string | undefined,
156
+ limit: parsed.limit ? Number(parsed.limit) : undefined,
157
+ clear: Boolean(parsed.clear)
158
+ });
159
+ break;
160
+ case 'clear':
161
+ clear();
162
+ break;
163
+ case 'help':
164
+ case '--help':
165
+ case '-h':
166
+ help();
167
+ break;
168
+ default:
169
+ utils.print.error(`Unknown telemetry command: ${command}`);
170
+ help();
171
+ }
172
+ }