@bradygaster/squad-sdk 0.6.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/README.md +296 -296
  2. package/dist/adapter/client.d.ts +225 -0
  3. package/dist/adapter/client.d.ts.map +1 -0
  4. package/dist/adapter/client.js +397 -0
  5. package/dist/adapter/client.js.map +1 -0
  6. package/dist/adapter/errors.d.ts +260 -0
  7. package/dist/adapter/errors.d.ts.map +1 -0
  8. package/dist/adapter/errors.js +362 -0
  9. package/dist/adapter/errors.js.map +1 -0
  10. package/dist/adapter/types.d.ts +779 -0
  11. package/dist/adapter/types.d.ts.map +1 -0
  12. package/dist/adapter/types.js +11 -0
  13. package/dist/adapter/types.js.map +1 -0
  14. package/dist/agents/charter-compiler.d.ts +102 -0
  15. package/dist/agents/charter-compiler.d.ts.map +1 -0
  16. package/dist/agents/charter-compiler.js +157 -0
  17. package/dist/agents/charter-compiler.js.map +1 -0
  18. package/dist/agents/history-shadow.d.ts +80 -0
  19. package/dist/agents/history-shadow.d.ts.map +1 -0
  20. package/dist/agents/history-shadow.js +239 -0
  21. package/dist/agents/history-shadow.js.map +1 -0
  22. package/dist/agents/index.d.ts +68 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +74 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/agents/lifecycle.d.ts +138 -0
  27. package/dist/agents/lifecycle.d.ts.map +1 -0
  28. package/dist/agents/lifecycle.js +258 -0
  29. package/dist/agents/lifecycle.js.map +1 -0
  30. package/dist/agents/model-selector.d.ts +80 -0
  31. package/dist/agents/model-selector.d.ts.map +1 -0
  32. package/dist/agents/model-selector.js +198 -0
  33. package/dist/agents/model-selector.js.map +1 -0
  34. package/dist/agents/onboarding.d.ts +65 -0
  35. package/dist/agents/onboarding.d.ts.map +1 -0
  36. package/dist/agents/onboarding.js +373 -0
  37. package/dist/agents/onboarding.js.map +1 -0
  38. package/dist/build/bundle.d.ts +32 -0
  39. package/dist/build/bundle.d.ts.map +1 -0
  40. package/dist/build/bundle.js +97 -0
  41. package/dist/build/bundle.js.map +1 -0
  42. package/dist/build/ci-pipeline.d.ts +51 -0
  43. package/dist/build/ci-pipeline.d.ts.map +1 -0
  44. package/dist/build/ci-pipeline.js +180 -0
  45. package/dist/build/ci-pipeline.js.map +1 -0
  46. package/dist/build/github-dist.d.ts +37 -0
  47. package/dist/build/github-dist.d.ts.map +1 -0
  48. package/dist/build/github-dist.js +117 -0
  49. package/dist/build/github-dist.js.map +1 -0
  50. package/dist/build/index.d.ts +11 -0
  51. package/dist/build/index.d.ts.map +1 -0
  52. package/dist/build/index.js +11 -0
  53. package/dist/build/index.js.map +1 -0
  54. package/dist/build/install-migration.d.ts +28 -0
  55. package/dist/build/install-migration.d.ts.map +1 -0
  56. package/dist/build/install-migration.js +103 -0
  57. package/dist/build/install-migration.js.map +1 -0
  58. package/dist/build/npm-package.d.ts +54 -0
  59. package/dist/build/npm-package.d.ts.map +1 -0
  60. package/dist/build/npm-package.js +128 -0
  61. package/dist/build/npm-package.js.map +1 -0
  62. package/dist/build/release.d.ts +108 -0
  63. package/dist/build/release.d.ts.map +1 -0
  64. package/dist/build/release.js +295 -0
  65. package/dist/build/release.js.map +1 -0
  66. package/dist/build/versioning.d.ts +38 -0
  67. package/dist/build/versioning.d.ts.map +1 -0
  68. package/dist/build/versioning.js +113 -0
  69. package/dist/build/versioning.js.map +1 -0
  70. package/dist/casting/casting-engine.d.ts +60 -0
  71. package/dist/casting/casting-engine.d.ts.map +1 -0
  72. package/dist/casting/casting-engine.js +223 -0
  73. package/dist/casting/casting-engine.js.map +1 -0
  74. package/dist/casting/casting-history.d.ts +54 -0
  75. package/dist/casting/casting-history.d.ts.map +1 -0
  76. package/dist/casting/casting-history.js +63 -0
  77. package/dist/casting/casting-history.js.map +1 -0
  78. package/dist/casting/index.d.ts +46 -0
  79. package/dist/casting/index.d.ts.map +1 -0
  80. package/dist/casting/index.js +37 -0
  81. package/dist/casting/index.js.map +1 -0
  82. package/dist/client/event-bus.d.ts +29 -0
  83. package/dist/client/event-bus.d.ts.map +1 -0
  84. package/dist/client/event-bus.js +53 -0
  85. package/dist/client/event-bus.js.map +1 -0
  86. package/dist/client/index.d.ts +100 -0
  87. package/dist/client/index.d.ts.map +1 -0
  88. package/dist/client/index.js +170 -0
  89. package/dist/client/index.js.map +1 -0
  90. package/dist/client/session-pool.d.ts +66 -0
  91. package/dist/client/session-pool.d.ts.map +1 -0
  92. package/dist/client/session-pool.js +145 -0
  93. package/dist/client/session-pool.js.map +1 -0
  94. package/dist/config/agent-doc.d.ts +43 -0
  95. package/dist/config/agent-doc.d.ts.map +1 -0
  96. package/dist/config/agent-doc.js +158 -0
  97. package/dist/config/agent-doc.js.map +1 -0
  98. package/dist/config/agent-source.d.ts +95 -0
  99. package/dist/config/agent-source.d.ts.map +1 -0
  100. package/dist/config/agent-source.js +274 -0
  101. package/dist/config/agent-source.js.map +1 -0
  102. package/dist/config/doc-sync.d.ts +66 -0
  103. package/dist/config/doc-sync.d.ts.map +1 -0
  104. package/dist/config/doc-sync.js +270 -0
  105. package/dist/config/doc-sync.js.map +1 -0
  106. package/dist/config/feature-audit.d.ts +49 -0
  107. package/dist/config/feature-audit.d.ts.map +1 -0
  108. package/dist/config/feature-audit.js +148 -0
  109. package/dist/config/feature-audit.js.map +1 -0
  110. package/dist/config/index.d.ts +15 -0
  111. package/dist/config/index.d.ts.map +1 -0
  112. package/dist/config/index.js +15 -0
  113. package/dist/config/index.js.map +1 -0
  114. package/dist/config/init.d.ts +61 -0
  115. package/dist/config/init.d.ts.map +1 -0
  116. package/dist/config/init.js +369 -0
  117. package/dist/config/init.js.map +1 -0
  118. package/dist/config/legacy-fallback.d.ts +83 -0
  119. package/dist/config/legacy-fallback.d.ts.map +1 -0
  120. package/dist/config/legacy-fallback.js +212 -0
  121. package/dist/config/legacy-fallback.js.map +1 -0
  122. package/dist/config/markdown-migration.d.ts +157 -0
  123. package/dist/config/markdown-migration.d.ts.map +1 -0
  124. package/dist/config/markdown-migration.js +434 -0
  125. package/dist/config/markdown-migration.js.map +1 -0
  126. package/dist/config/migration.d.ts +123 -0
  127. package/dist/config/migration.d.ts.map +1 -0
  128. package/dist/config/migration.js +273 -0
  129. package/dist/config/migration.js.map +1 -0
  130. package/dist/config/migrations/index.d.ts +36 -0
  131. package/dist/config/migrations/index.d.ts.map +1 -0
  132. package/dist/config/migrations/index.js +216 -0
  133. package/dist/config/migrations/index.js.map +1 -0
  134. package/dist/config/models.d.ts +134 -0
  135. package/dist/config/models.d.ts.map +1 -0
  136. package/dist/config/models.js +354 -0
  137. package/dist/config/models.js.map +1 -0
  138. package/dist/config/routing.d.ts +118 -0
  139. package/dist/config/routing.d.ts.map +1 -0
  140. package/dist/config/routing.js +247 -0
  141. package/dist/config/routing.js.map +1 -0
  142. package/dist/config/schema.d.ts +72 -0
  143. package/dist/config/schema.d.ts.map +1 -0
  144. package/dist/config/schema.js +63 -0
  145. package/dist/config/schema.js.map +1 -0
  146. package/dist/coordinator/coordinator.d.ts +82 -0
  147. package/dist/coordinator/coordinator.d.ts.map +1 -0
  148. package/dist/coordinator/coordinator.js +174 -0
  149. package/dist/coordinator/coordinator.js.map +1 -0
  150. package/dist/coordinator/direct-response.d.ts +83 -0
  151. package/dist/coordinator/direct-response.d.ts.map +1 -0
  152. package/dist/coordinator/direct-response.js +187 -0
  153. package/dist/coordinator/direct-response.js.map +1 -0
  154. package/dist/coordinator/fan-out.d.ts +83 -0
  155. package/dist/coordinator/fan-out.d.ts.map +1 -0
  156. package/dist/coordinator/fan-out.js +161 -0
  157. package/dist/coordinator/fan-out.js.map +1 -0
  158. package/dist/coordinator/index.d.ts +47 -0
  159. package/dist/coordinator/index.d.ts.map +1 -0
  160. package/dist/coordinator/index.js +54 -0
  161. package/dist/coordinator/index.js.map +1 -0
  162. package/dist/coordinator/response-tiers.d.ts +49 -0
  163. package/dist/coordinator/response-tiers.d.ts.map +1 -0
  164. package/dist/coordinator/response-tiers.js +149 -0
  165. package/dist/coordinator/response-tiers.js.map +1 -0
  166. package/dist/hooks/index.d.ts +103 -0
  167. package/dist/hooks/index.d.ts.map +1 -0
  168. package/dist/hooks/index.js +279 -0
  169. package/dist/hooks/index.js.map +1 -0
  170. package/dist/index.d.ts +24 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +23 -3
  173. package/dist/index.js.map +1 -1
  174. package/dist/marketplace/backend.d.ts +35 -0
  175. package/dist/marketplace/backend.d.ts.map +1 -0
  176. package/dist/marketplace/backend.js +99 -0
  177. package/dist/marketplace/backend.js.map +1 -0
  178. package/dist/marketplace/browser.d.ts +33 -0
  179. package/dist/marketplace/browser.d.ts.map +1 -0
  180. package/dist/marketplace/browser.js +97 -0
  181. package/dist/marketplace/browser.js.map +1 -0
  182. package/dist/marketplace/extension-adapter.d.ts +51 -0
  183. package/dist/marketplace/extension-adapter.d.ts.map +1 -0
  184. package/dist/marketplace/extension-adapter.js +81 -0
  185. package/dist/marketplace/extension-adapter.js.map +1 -0
  186. package/dist/marketplace/index.d.ts +51 -0
  187. package/dist/marketplace/index.d.ts.map +1 -0
  188. package/dist/marketplace/index.js +108 -0
  189. package/dist/marketplace/index.js.map +1 -0
  190. package/dist/marketplace/packaging.d.ts +25 -0
  191. package/dist/marketplace/packaging.d.ts.map +1 -0
  192. package/dist/marketplace/packaging.js +117 -0
  193. package/dist/marketplace/packaging.js.map +1 -0
  194. package/dist/marketplace/schema.d.ts +50 -0
  195. package/dist/marketplace/schema.d.ts.map +1 -0
  196. package/dist/marketplace/schema.js +120 -0
  197. package/dist/marketplace/schema.js.map +1 -0
  198. package/dist/marketplace/security.d.ts +26 -0
  199. package/dist/marketplace/security.d.ts.map +1 -0
  200. package/dist/marketplace/security.js +199 -0
  201. package/dist/marketplace/security.js.map +1 -0
  202. package/dist/parsers.d.ts +15 -0
  203. package/dist/parsers.d.ts.map +1 -0
  204. package/dist/parsers.js +15 -0
  205. package/dist/parsers.js.map +1 -0
  206. package/dist/ralph/index.d.ts +56 -0
  207. package/dist/ralph/index.d.ts.map +1 -0
  208. package/dist/ralph/index.js +61 -0
  209. package/dist/ralph/index.js.map +1 -0
  210. package/dist/resolution.d.ts +47 -0
  211. package/dist/resolution.d.ts.map +1 -0
  212. package/dist/resolution.js +106 -0
  213. package/dist/resolution.js.map +1 -0
  214. package/dist/runtime/benchmarks.d.ts +121 -0
  215. package/dist/runtime/benchmarks.d.ts.map +1 -0
  216. package/dist/runtime/benchmarks.js +251 -0
  217. package/dist/runtime/benchmarks.js.map +1 -0
  218. package/dist/runtime/config.d.ts +313 -0
  219. package/dist/runtime/config.d.ts.map +1 -0
  220. package/dist/runtime/config.js +466 -0
  221. package/dist/runtime/config.js.map +1 -0
  222. package/dist/runtime/cost-tracker.d.ts +73 -0
  223. package/dist/runtime/cost-tracker.d.ts.map +1 -0
  224. package/dist/runtime/cost-tracker.js +157 -0
  225. package/dist/runtime/cost-tracker.js.map +1 -0
  226. package/dist/runtime/event-bus.d.ts +190 -0
  227. package/dist/runtime/event-bus.d.ts.map +1 -0
  228. package/dist/runtime/event-bus.js +218 -0
  229. package/dist/runtime/event-bus.js.map +1 -0
  230. package/dist/runtime/health.d.ts +66 -0
  231. package/dist/runtime/health.d.ts.map +1 -0
  232. package/dist/runtime/health.js +111 -0
  233. package/dist/runtime/health.js.map +1 -0
  234. package/dist/runtime/i18n.d.ts +54 -0
  235. package/dist/runtime/i18n.d.ts.map +1 -0
  236. package/dist/runtime/i18n.js +126 -0
  237. package/dist/runtime/i18n.js.map +1 -0
  238. package/dist/runtime/offline.d.ts +64 -0
  239. package/dist/runtime/offline.d.ts.map +1 -0
  240. package/dist/runtime/offline.js +108 -0
  241. package/dist/runtime/offline.js.map +1 -0
  242. package/dist/runtime/streaming.d.ts +97 -0
  243. package/dist/runtime/streaming.d.ts.map +1 -0
  244. package/dist/runtime/streaming.js +156 -0
  245. package/dist/runtime/streaming.js.map +1 -0
  246. package/dist/runtime/telemetry.d.ts +82 -0
  247. package/dist/runtime/telemetry.d.ts.map +1 -0
  248. package/dist/runtime/telemetry.js +120 -0
  249. package/dist/runtime/telemetry.js.map +1 -0
  250. package/dist/sharing/agent-repo.d.ts +33 -0
  251. package/dist/sharing/agent-repo.d.ts.map +1 -0
  252. package/dist/sharing/agent-repo.js +79 -0
  253. package/dist/sharing/agent-repo.js.map +1 -0
  254. package/dist/sharing/cache.d.ts +36 -0
  255. package/dist/sharing/cache.d.ts.map +1 -0
  256. package/dist/sharing/cache.js +85 -0
  257. package/dist/sharing/cache.js.map +1 -0
  258. package/dist/sharing/conflicts.d.ts +32 -0
  259. package/dist/sharing/conflicts.d.ts.map +1 -0
  260. package/dist/sharing/conflicts.js +121 -0
  261. package/dist/sharing/conflicts.js.map +1 -0
  262. package/dist/sharing/export.d.ts +50 -0
  263. package/dist/sharing/export.d.ts.map +1 -0
  264. package/dist/sharing/export.js +156 -0
  265. package/dist/sharing/export.js.map +1 -0
  266. package/dist/sharing/history-split.d.ts +34 -0
  267. package/dist/sharing/history-split.d.ts.map +1 -0
  268. package/dist/sharing/history-split.js +101 -0
  269. package/dist/sharing/history-split.js.map +1 -0
  270. package/dist/sharing/import.d.ts +37 -0
  271. package/dist/sharing/import.d.ts.map +1 -0
  272. package/dist/sharing/import.js +138 -0
  273. package/dist/sharing/import.js.map +1 -0
  274. package/dist/sharing/index.d.ts +11 -0
  275. package/dist/sharing/index.d.ts.map +1 -0
  276. package/dist/sharing/index.js +11 -0
  277. package/dist/sharing/index.js.map +1 -0
  278. package/dist/sharing/versioning.d.ts +32 -0
  279. package/dist/sharing/versioning.d.ts.map +1 -0
  280. package/dist/sharing/versioning.js +64 -0
  281. package/dist/sharing/versioning.js.map +1 -0
  282. package/dist/skills/index.d.ts +49 -0
  283. package/dist/skills/index.d.ts.map +1 -0
  284. package/dist/skills/index.js +85 -0
  285. package/dist/skills/index.js.map +1 -0
  286. package/dist/skills/skill-loader.d.ts +56 -0
  287. package/dist/skills/skill-loader.d.ts.map +1 -0
  288. package/dist/skills/skill-loader.js +106 -0
  289. package/dist/skills/skill-loader.js.map +1 -0
  290. package/dist/skills/skill-source.d.ts +63 -0
  291. package/dist/skills/skill-source.d.ts.map +1 -0
  292. package/dist/skills/skill-source.js +199 -0
  293. package/dist/skills/skill-source.js.map +1 -0
  294. package/dist/tools/index.d.ts +87 -0
  295. package/dist/tools/index.d.ts.map +1 -0
  296. package/dist/tools/index.js +419 -0
  297. package/dist/tools/index.js.map +1 -0
  298. package/dist/types.d.ts +43 -0
  299. package/dist/types.d.ts.map +1 -0
  300. package/dist/types.js +8 -0
  301. package/dist/types.js.map +1 -0
  302. package/dist/utils/normalize-eol.d.ts +6 -0
  303. package/dist/utils/normalize-eol.d.ts.map +1 -0
  304. package/dist/utils/normalize-eol.js +8 -0
  305. package/dist/utils/normalize-eol.js.map +1 -0
  306. package/package.json +115 -39
@@ -0,0 +1,103 @@
1
+ /**
2
+ * M4-11: Migration for install path changes
3
+ * Detects current install method and generates migration instructions.
4
+ */
5
+ /**
6
+ * Detect the current install method based on environment heuristics.
7
+ */
8
+ export function detectInstallMethod() {
9
+ // Check for npm global prefix
10
+ const execPath = process.argv[1] ?? '';
11
+ const npmGlobalPrefix = process.env.npm_config_prefix ?? '';
12
+ if (process.env.npm_execpath?.includes('npx') || execPath.includes('_npx')) {
13
+ return 'npx-github';
14
+ }
15
+ if (npmGlobalPrefix && execPath.startsWith(npmGlobalPrefix)) {
16
+ return 'npm-global';
17
+ }
18
+ if (execPath.includes('node_modules')) {
19
+ return 'npm-local';
20
+ }
21
+ return 'unknown';
22
+ }
23
+ const MIGRATION_STEPS = {
24
+ 'npx-github->npm-global': [
25
+ { description: 'Install the squad package globally from npm', command: 'npm install -g @bradygaster/squad' },
26
+ { description: 'Verify the installation', command: 'squad --version' },
27
+ { description: 'Remove any cached npx versions', command: 'npx --yes clear-npx-cache || true' },
28
+ ],
29
+ 'npx-github->npm-local': [
30
+ { description: 'Add squad as a local dev dependency', command: 'npm install --save-dev @bradygaster/squad' },
31
+ { description: 'Add a script entry in package.json', manual: true, command: undefined },
32
+ { description: 'Verify the installation', command: 'npx squad --version' },
33
+ ],
34
+ 'npm-global->npm-local': [
35
+ { description: 'Add squad as a local dev dependency', command: 'npm install --save-dev @bradygaster/squad' },
36
+ { description: 'Optionally uninstall the global version', command: 'npm uninstall -g @bradygaster/squad' },
37
+ { description: 'Use npx squad or add an npm script to run locally' },
38
+ ],
39
+ 'npm-local->npm-global': [
40
+ { description: 'Install squad globally', command: 'npm install -g @bradygaster/squad' },
41
+ { description: 'Remove from local devDependencies', command: 'npm uninstall @bradygaster/squad' },
42
+ { description: 'Verify the global installation', command: 'squad --version' },
43
+ ],
44
+ 'npm-global->npx-github': [
45
+ { description: 'Uninstall the global npm package', command: 'npm uninstall -g @bradygaster/squad' },
46
+ { description: 'Use npx to run directly from GitHub', command: 'npx github:bradygaster/squad' },
47
+ ],
48
+ 'npm-local->npx-github': [
49
+ { description: 'Remove squad from local dependencies', command: 'npm uninstall @bradygaster/squad' },
50
+ { description: 'Use npx to run directly from GitHub', command: 'npx github:bradygaster/squad' },
51
+ ],
52
+ };
53
+ /**
54
+ * Generate a migration plan between install methods.
55
+ */
56
+ export function migrateInstallPath(from, to) {
57
+ if (from === to) {
58
+ return { from, to, steps: [{ description: 'No migration needed — already using this install method' }] };
59
+ }
60
+ if (from === 'unknown') {
61
+ return { from, to, steps: [{ description: 'Cannot determine current install method; perform a fresh install', manual: true }] };
62
+ }
63
+ const key = `${from}->${to}`;
64
+ const steps = MIGRATION_STEPS[key];
65
+ if (!steps) {
66
+ return {
67
+ from,
68
+ to,
69
+ steps: [{ description: `Direct migration from ${from} to ${to} is not supported; uninstall and reinstall`, manual: true }],
70
+ };
71
+ }
72
+ return { from, to, steps: steps.map(s => ({ ...s })) };
73
+ }
74
+ /**
75
+ * Generate user-facing markdown migration instructions.
76
+ */
77
+ export function generateMigrationInstructions(from, to) {
78
+ const plan = migrateInstallPath(from, to);
79
+ const lines = [];
80
+ lines.push(`# Migrate from \`${from}\` to \`${to}\``);
81
+ lines.push('');
82
+ if (plan.steps.length === 1 && from === to) {
83
+ lines.push('No migration needed — you are already using this install method.');
84
+ return lines.join('\n') + '\n';
85
+ }
86
+ for (let i = 0; i < plan.steps.length; i++) {
87
+ const step = plan.steps[i];
88
+ lines.push(`${i + 1}. ${step.description}`);
89
+ if (step.command) {
90
+ lines.push('');
91
+ lines.push(' ```bash');
92
+ lines.push(` ${step.command}`);
93
+ lines.push(' ```');
94
+ lines.push('');
95
+ }
96
+ if (step.manual) {
97
+ lines.push(' *(manual step)*');
98
+ lines.push('');
99
+ }
100
+ }
101
+ return lines.join('\n').trimEnd() + '\n';
102
+ }
103
+ //# sourceMappingURL=install-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-migration.js","sourceRoot":"","sources":["../../src/build/install-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * M4-2: npm bundling & registry publication
3
+ * Generates package.json content and validates npm publication readiness.
4
+ */
5
+ export interface NpmPackageConfig {
6
+ name: string;
7
+ version: string;
8
+ description: string;
9
+ exports: Record<string, string | Record<string, string>>;
10
+ bin?: Record<string, string>;
11
+ peerDependencies?: Record<string, string>;
12
+ engines?: Record<string, string>;
13
+ }
14
+ export interface PackageJsonOutput {
15
+ name: string;
16
+ version: string;
17
+ description: string;
18
+ type: string;
19
+ main: string;
20
+ types: string;
21
+ exports: Record<string, unknown>;
22
+ bin?: Record<string, string>;
23
+ files: string[];
24
+ peerDependencies?: Record<string, string>;
25
+ engines: Record<string, string>;
26
+ license: string;
27
+ repository: {
28
+ type: string;
29
+ url: string;
30
+ };
31
+ keywords: string[];
32
+ }
33
+ export interface PackageValidationResult {
34
+ valid: boolean;
35
+ errors: string[];
36
+ warnings: string[];
37
+ }
38
+ /**
39
+ * Generate package.json content suitable for npm publication.
40
+ */
41
+ export declare function generatePackageJson(config: NpmPackageConfig): PackageJsonOutput;
42
+ /**
43
+ * Validate a package.json object for npm publication readiness.
44
+ */
45
+ export declare function validatePackageJson(pkg: Record<string, unknown>): PackageValidationResult;
46
+ /**
47
+ * Return the files array for package.json publication.
48
+ */
49
+ export declare function getPublishFiles(): string[];
50
+ /**
51
+ * Return the default ESM exports map for the SDK.
52
+ */
53
+ export declare function getDefaultExports(): Record<string, Record<string, string>>;
54
+ //# sourceMappingURL=npm-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-package.d.ts","sourceRoot":"","sources":["../../src/build/npm-package.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAgCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CA4B/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,uBAAuB,CAsDzF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE1E"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * M4-2: npm bundling & registry publication
3
+ * Generates package.json content and validates npm publication readiness.
4
+ */
5
+ const DEFAULT_FILES = [
6
+ 'dist/',
7
+ 'README.md',
8
+ 'LICENSE',
9
+ 'CHANGELOG.md',
10
+ ];
11
+ const DEFAULT_EXPORTS = {
12
+ '.': {
13
+ import: './dist/index.js',
14
+ types: './dist/index.d.ts',
15
+ },
16
+ './config': {
17
+ import: './dist/config/index.js',
18
+ types: './dist/config/index.d.ts',
19
+ },
20
+ './agents': {
21
+ import: './dist/agents/onboarding.js',
22
+ types: './dist/agents/onboarding.d.ts',
23
+ },
24
+ './skills': {
25
+ import: './dist/skills/index.js',
26
+ types: './dist/skills/index.d.ts',
27
+ },
28
+ './runtime': {
29
+ import: './dist/runtime/config.js',
30
+ types: './dist/runtime/config.d.ts',
31
+ },
32
+ };
33
+ /**
34
+ * Generate package.json content suitable for npm publication.
35
+ */
36
+ export function generatePackageJson(config) {
37
+ const exports = {};
38
+ for (const [key, value] of Object.entries(config.exports)) {
39
+ if (typeof value === 'string') {
40
+ exports[key] = { import: value, types: value.replace(/\.js$/, '.d.ts') };
41
+ }
42
+ else {
43
+ exports[key] = { ...value };
44
+ }
45
+ }
46
+ return {
47
+ name: config.name,
48
+ version: config.version,
49
+ description: config.description,
50
+ type: 'module',
51
+ main: './dist/index.js',
52
+ types: './dist/index.d.ts',
53
+ exports,
54
+ ...(config.bin && Object.keys(config.bin).length > 0 ? { bin: { ...config.bin } } : {}),
55
+ files: [...DEFAULT_FILES],
56
+ ...(config.peerDependencies && Object.keys(config.peerDependencies).length > 0
57
+ ? { peerDependencies: { ...config.peerDependencies } }
58
+ : {}),
59
+ engines: config.engines ? { ...config.engines } : { node: '>=20.0.0' },
60
+ license: 'MIT',
61
+ repository: { type: 'git', url: 'https://github.com/bradygaster/squad.git' },
62
+ keywords: ['copilot', 'multi-agent', 'squad', 'sdk'],
63
+ };
64
+ }
65
+ /**
66
+ * Validate a package.json object for npm publication readiness.
67
+ */
68
+ export function validatePackageJson(pkg) {
69
+ const errors = [];
70
+ const warnings = [];
71
+ if (!pkg.name || typeof pkg.name !== 'string') {
72
+ errors.push('Missing or invalid "name" field');
73
+ }
74
+ else {
75
+ if (!/^(@[a-z0-9-]+\/)?[a-z0-9._-]+$/.test(pkg.name)) {
76
+ errors.push(`Invalid package name: ${pkg.name}`);
77
+ }
78
+ }
79
+ if (!pkg.version || typeof pkg.version !== 'string') {
80
+ errors.push('Missing or invalid "version" field');
81
+ }
82
+ else {
83
+ if (!/^\d+\.\d+\.\d+/.test(pkg.version)) {
84
+ errors.push(`Invalid semver version: ${pkg.version}`);
85
+ }
86
+ }
87
+ if (!pkg.description || typeof pkg.description !== 'string') {
88
+ warnings.push('Missing "description" field');
89
+ }
90
+ if (!pkg.license || typeof pkg.license !== 'string') {
91
+ warnings.push('Missing "license" field');
92
+ }
93
+ if (!pkg.exports || typeof pkg.exports !== 'object') {
94
+ errors.push('Missing "exports" map — required for ESM packages');
95
+ }
96
+ else {
97
+ const exports = pkg.exports;
98
+ if (!exports['.']) {
99
+ errors.push('Exports map missing "." entry point');
100
+ }
101
+ }
102
+ if (pkg.type !== 'module') {
103
+ warnings.push('"type" should be "module" for ESM packages');
104
+ }
105
+ if (!pkg.files || !Array.isArray(pkg.files) || pkg.files.length === 0) {
106
+ warnings.push('Missing "files" field — all files will be published');
107
+ }
108
+ if (!pkg.engines || typeof pkg.engines !== 'object') {
109
+ warnings.push('Missing "engines" field — specify Node.js version requirement');
110
+ }
111
+ if (!pkg.repository || typeof pkg.repository !== 'object') {
112
+ warnings.push('Missing "repository" field');
113
+ }
114
+ return { valid: errors.length === 0, errors, warnings };
115
+ }
116
+ /**
117
+ * Return the files array for package.json publication.
118
+ */
119
+ export function getPublishFiles() {
120
+ return [...DEFAULT_FILES];
121
+ }
122
+ /**
123
+ * Return the default ESM exports map for the SDK.
124
+ */
125
+ export function getDefaultExports() {
126
+ return JSON.parse(JSON.stringify(DEFAULT_EXPORTS));
127
+ }
128
+ //# sourceMappingURL=npm-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-package.js","sourceRoot":"","sources":["../../src/build/npm-package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * M6-13: Release candidate build & validation
3
+ * Handles release manifest creation, validation, and release notes generation.
4
+ *
5
+ * @module build/release
6
+ */
7
+ import type { CommitInfo } from './versioning.js';
8
+ /** Release channel. */
9
+ export type ReleaseChannel = 'stable' | 'rc' | 'beta' | 'alpha';
10
+ /**
11
+ * Configuration for creating a release.
12
+ */
13
+ export interface ReleaseConfig {
14
+ /** Semver version string (e.g. "1.0.0", "1.0.0-rc.1") */
15
+ version: string;
16
+ /** Release channel */
17
+ channel: ReleaseChannel;
18
+ /** Whether this is a prerelease */
19
+ prerelease: boolean;
20
+ /** Git tag name (e.g. "v1.0.0-rc.1") */
21
+ tag: string;
22
+ }
23
+ /**
24
+ * An artifact included in a release.
25
+ */
26
+ export interface ReleaseArtifact {
27
+ /** Display name */
28
+ name: string;
29
+ /** File path */
30
+ path: string;
31
+ /** File size in bytes */
32
+ size: number;
33
+ /** SHA-256 hash */
34
+ sha256: string;
35
+ }
36
+ /**
37
+ * Release manifest describing a complete release.
38
+ */
39
+ export interface ReleaseManifest {
40
+ /** Semver version */
41
+ version: string;
42
+ /** Release channel */
43
+ channel: ReleaseChannel;
44
+ /** Build artifacts */
45
+ artifacts: ReleaseArtifact[];
46
+ /** ISO timestamp of the release */
47
+ timestamp: string;
48
+ /** Changelog markdown for this release */
49
+ changelog: string;
50
+ }
51
+ /**
52
+ * A validation error found in a release manifest.
53
+ */
54
+ export interface ReleaseValidationError {
55
+ /** Field that failed validation */
56
+ field: string;
57
+ /** Error message */
58
+ message: string;
59
+ /** Severity */
60
+ severity: 'error' | 'warning';
61
+ }
62
+ /**
63
+ * A checklist item for the release process.
64
+ */
65
+ export interface ReleaseChecklistItem {
66
+ /** Human-readable name */
67
+ name: string;
68
+ /** Function that checks this item (returns true if passing) */
69
+ check: () => boolean;
70
+ /** Whether this item is required for release */
71
+ required: boolean;
72
+ /** Current status */
73
+ status: 'pass' | 'fail' | 'skip';
74
+ }
75
+ /**
76
+ * Compute the SHA-256 hash of a buffer or string.
77
+ */
78
+ export declare function computeSha256(data: Buffer | string): string;
79
+ /**
80
+ * Build a ReleaseArtifact from a file path.
81
+ * Returns null if the file does not exist.
82
+ */
83
+ export declare function buildArtifact(name: string, filePath: string): ReleaseArtifact | null;
84
+ /**
85
+ * Create a release manifest from a ReleaseConfig.
86
+ *
87
+ * @param config - Release configuration
88
+ * @param artifactPaths - Optional map of artifact name → file path
89
+ * @returns Release manifest
90
+ */
91
+ export declare function createRelease(config: ReleaseConfig, artifactPaths?: Record<string, string>): ReleaseManifest;
92
+ /**
93
+ * Validate a release manifest for correctness.
94
+ *
95
+ * @param manifest - Release manifest to validate
96
+ * @returns Array of validation errors (empty if valid)
97
+ */
98
+ export declare function validateRelease(manifest: ReleaseManifest): ReleaseValidationError[];
99
+ /**
100
+ * Generate release notes markdown from a manifest and commit list.
101
+ */
102
+ export declare function generateReleaseNotes(manifest: ReleaseManifest, commits: CommitInfo[]): string;
103
+ /**
104
+ * Get the release checklist with default items.
105
+ * Each item's check function can be evaluated to determine pass/fail.
106
+ */
107
+ export declare function getReleaseChecklist(manifest?: ReleaseManifest): ReleaseChecklistItem[];
108
+ //# sourceMappingURL=release.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/build/release.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD,uBAAuB;AACvB,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,sBAAsB;IACtB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB;IACrB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAYpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,eAAe,CAmBjB;AAQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,sBAAsB,EAAE,CA2EnF;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,UAAU,EAAE,GACpB,MAAM,CAqER;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,oBAAoB,EAAE,CAyEtF"}