@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.
- package/README.md +296 -296
- package/dist/adapter/client.d.ts +225 -0
- package/dist/adapter/client.d.ts.map +1 -0
- package/dist/adapter/client.js +397 -0
- package/dist/adapter/client.js.map +1 -0
- package/dist/adapter/errors.d.ts +260 -0
- package/dist/adapter/errors.d.ts.map +1 -0
- package/dist/adapter/errors.js +362 -0
- package/dist/adapter/errors.js.map +1 -0
- package/dist/adapter/types.d.ts +779 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/adapter/types.js +11 -0
- package/dist/adapter/types.js.map +1 -0
- package/dist/agents/charter-compiler.d.ts +102 -0
- package/dist/agents/charter-compiler.d.ts.map +1 -0
- package/dist/agents/charter-compiler.js +157 -0
- package/dist/agents/charter-compiler.js.map +1 -0
- package/dist/agents/history-shadow.d.ts +80 -0
- package/dist/agents/history-shadow.d.ts.map +1 -0
- package/dist/agents/history-shadow.js +239 -0
- package/dist/agents/history-shadow.js.map +1 -0
- package/dist/agents/index.d.ts +68 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +74 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/lifecycle.d.ts +138 -0
- package/dist/agents/lifecycle.d.ts.map +1 -0
- package/dist/agents/lifecycle.js +258 -0
- package/dist/agents/lifecycle.js.map +1 -0
- package/dist/agents/model-selector.d.ts +80 -0
- package/dist/agents/model-selector.d.ts.map +1 -0
- package/dist/agents/model-selector.js +198 -0
- package/dist/agents/model-selector.js.map +1 -0
- package/dist/agents/onboarding.d.ts +65 -0
- package/dist/agents/onboarding.d.ts.map +1 -0
- package/dist/agents/onboarding.js +373 -0
- package/dist/agents/onboarding.js.map +1 -0
- package/dist/build/bundle.d.ts +32 -0
- package/dist/build/bundle.d.ts.map +1 -0
- package/dist/build/bundle.js +97 -0
- package/dist/build/bundle.js.map +1 -0
- package/dist/build/ci-pipeline.d.ts +51 -0
- package/dist/build/ci-pipeline.d.ts.map +1 -0
- package/dist/build/ci-pipeline.js +180 -0
- package/dist/build/ci-pipeline.js.map +1 -0
- package/dist/build/github-dist.d.ts +37 -0
- package/dist/build/github-dist.d.ts.map +1 -0
- package/dist/build/github-dist.js +117 -0
- package/dist/build/github-dist.js.map +1 -0
- package/dist/build/index.d.ts +11 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +11 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/install-migration.d.ts +28 -0
- package/dist/build/install-migration.d.ts.map +1 -0
- package/dist/build/install-migration.js +103 -0
- package/dist/build/install-migration.js.map +1 -0
- package/dist/build/npm-package.d.ts +54 -0
- package/dist/build/npm-package.d.ts.map +1 -0
- package/dist/build/npm-package.js +128 -0
- package/dist/build/npm-package.js.map +1 -0
- package/dist/build/release.d.ts +108 -0
- package/dist/build/release.d.ts.map +1 -0
- package/dist/build/release.js +295 -0
- package/dist/build/release.js.map +1 -0
- package/dist/build/versioning.d.ts +38 -0
- package/dist/build/versioning.d.ts.map +1 -0
- package/dist/build/versioning.js +113 -0
- package/dist/build/versioning.js.map +1 -0
- package/dist/casting/casting-engine.d.ts +60 -0
- package/dist/casting/casting-engine.d.ts.map +1 -0
- package/dist/casting/casting-engine.js +223 -0
- package/dist/casting/casting-engine.js.map +1 -0
- package/dist/casting/casting-history.d.ts +54 -0
- package/dist/casting/casting-history.d.ts.map +1 -0
- package/dist/casting/casting-history.js +63 -0
- package/dist/casting/casting-history.js.map +1 -0
- package/dist/casting/index.d.ts +46 -0
- package/dist/casting/index.d.ts.map +1 -0
- package/dist/casting/index.js +37 -0
- package/dist/casting/index.js.map +1 -0
- package/dist/client/event-bus.d.ts +29 -0
- package/dist/client/event-bus.d.ts.map +1 -0
- package/dist/client/event-bus.js +53 -0
- package/dist/client/event-bus.js.map +1 -0
- package/dist/client/index.d.ts +100 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +170 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/session-pool.d.ts +66 -0
- package/dist/client/session-pool.d.ts.map +1 -0
- package/dist/client/session-pool.js +145 -0
- package/dist/client/session-pool.js.map +1 -0
- package/dist/config/agent-doc.d.ts +43 -0
- package/dist/config/agent-doc.d.ts.map +1 -0
- package/dist/config/agent-doc.js +158 -0
- package/dist/config/agent-doc.js.map +1 -0
- package/dist/config/agent-source.d.ts +95 -0
- package/dist/config/agent-source.d.ts.map +1 -0
- package/dist/config/agent-source.js +274 -0
- package/dist/config/agent-source.js.map +1 -0
- package/dist/config/doc-sync.d.ts +66 -0
- package/dist/config/doc-sync.d.ts.map +1 -0
- package/dist/config/doc-sync.js +270 -0
- package/dist/config/doc-sync.js.map +1 -0
- package/dist/config/feature-audit.d.ts +49 -0
- package/dist/config/feature-audit.d.ts.map +1 -0
- package/dist/config/feature-audit.js +148 -0
- package/dist/config/feature-audit.js.map +1 -0
- package/dist/config/index.d.ts +15 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +15 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/init.d.ts +61 -0
- package/dist/config/init.d.ts.map +1 -0
- package/dist/config/init.js +369 -0
- package/dist/config/init.js.map +1 -0
- package/dist/config/legacy-fallback.d.ts +83 -0
- package/dist/config/legacy-fallback.d.ts.map +1 -0
- package/dist/config/legacy-fallback.js +212 -0
- package/dist/config/legacy-fallback.js.map +1 -0
- package/dist/config/markdown-migration.d.ts +157 -0
- package/dist/config/markdown-migration.d.ts.map +1 -0
- package/dist/config/markdown-migration.js +434 -0
- package/dist/config/markdown-migration.js.map +1 -0
- package/dist/config/migration.d.ts +123 -0
- package/dist/config/migration.d.ts.map +1 -0
- package/dist/config/migration.js +273 -0
- package/dist/config/migration.js.map +1 -0
- package/dist/config/migrations/index.d.ts +36 -0
- package/dist/config/migrations/index.d.ts.map +1 -0
- package/dist/config/migrations/index.js +216 -0
- package/dist/config/migrations/index.js.map +1 -0
- package/dist/config/models.d.ts +134 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +354 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/routing.d.ts +118 -0
- package/dist/config/routing.d.ts.map +1 -0
- package/dist/config/routing.js +247 -0
- package/dist/config/routing.js.map +1 -0
- package/dist/config/schema.d.ts +72 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +63 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/coordinator/coordinator.d.ts +82 -0
- package/dist/coordinator/coordinator.d.ts.map +1 -0
- package/dist/coordinator/coordinator.js +174 -0
- package/dist/coordinator/coordinator.js.map +1 -0
- package/dist/coordinator/direct-response.d.ts +83 -0
- package/dist/coordinator/direct-response.d.ts.map +1 -0
- package/dist/coordinator/direct-response.js +187 -0
- package/dist/coordinator/direct-response.js.map +1 -0
- package/dist/coordinator/fan-out.d.ts +83 -0
- package/dist/coordinator/fan-out.d.ts.map +1 -0
- package/dist/coordinator/fan-out.js +161 -0
- package/dist/coordinator/fan-out.js.map +1 -0
- package/dist/coordinator/index.d.ts +47 -0
- package/dist/coordinator/index.d.ts.map +1 -0
- package/dist/coordinator/index.js +54 -0
- package/dist/coordinator/index.js.map +1 -0
- package/dist/coordinator/response-tiers.d.ts +49 -0
- package/dist/coordinator/response-tiers.d.ts.map +1 -0
- package/dist/coordinator/response-tiers.js +149 -0
- package/dist/coordinator/response-tiers.js.map +1 -0
- package/dist/hooks/index.d.ts +103 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +279 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +24 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -3
- package/dist/index.js.map +1 -1
- package/dist/marketplace/backend.d.ts +35 -0
- package/dist/marketplace/backend.d.ts.map +1 -0
- package/dist/marketplace/backend.js +99 -0
- package/dist/marketplace/backend.js.map +1 -0
- package/dist/marketplace/browser.d.ts +33 -0
- package/dist/marketplace/browser.d.ts.map +1 -0
- package/dist/marketplace/browser.js +97 -0
- package/dist/marketplace/browser.js.map +1 -0
- package/dist/marketplace/extension-adapter.d.ts +51 -0
- package/dist/marketplace/extension-adapter.d.ts.map +1 -0
- package/dist/marketplace/extension-adapter.js +81 -0
- package/dist/marketplace/extension-adapter.js.map +1 -0
- package/dist/marketplace/index.d.ts +51 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +108 -0
- package/dist/marketplace/index.js.map +1 -0
- package/dist/marketplace/packaging.d.ts +25 -0
- package/dist/marketplace/packaging.d.ts.map +1 -0
- package/dist/marketplace/packaging.js +117 -0
- package/dist/marketplace/packaging.js.map +1 -0
- package/dist/marketplace/schema.d.ts +50 -0
- package/dist/marketplace/schema.d.ts.map +1 -0
- package/dist/marketplace/schema.js +120 -0
- package/dist/marketplace/schema.js.map +1 -0
- package/dist/marketplace/security.d.ts +26 -0
- package/dist/marketplace/security.d.ts.map +1 -0
- package/dist/marketplace/security.js +199 -0
- package/dist/marketplace/security.js.map +1 -0
- package/dist/parsers.d.ts +15 -0
- package/dist/parsers.d.ts.map +1 -0
- package/dist/parsers.js +15 -0
- package/dist/parsers.js.map +1 -0
- package/dist/ralph/index.d.ts +56 -0
- package/dist/ralph/index.d.ts.map +1 -0
- package/dist/ralph/index.js +61 -0
- package/dist/ralph/index.js.map +1 -0
- package/dist/resolution.d.ts +47 -0
- package/dist/resolution.d.ts.map +1 -0
- package/dist/resolution.js +106 -0
- package/dist/resolution.js.map +1 -0
- package/dist/runtime/benchmarks.d.ts +121 -0
- package/dist/runtime/benchmarks.d.ts.map +1 -0
- package/dist/runtime/benchmarks.js +251 -0
- package/dist/runtime/benchmarks.js.map +1 -0
- package/dist/runtime/config.d.ts +313 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +466 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/cost-tracker.d.ts +73 -0
- package/dist/runtime/cost-tracker.d.ts.map +1 -0
- package/dist/runtime/cost-tracker.js +157 -0
- package/dist/runtime/cost-tracker.js.map +1 -0
- package/dist/runtime/event-bus.d.ts +190 -0
- package/dist/runtime/event-bus.d.ts.map +1 -0
- package/dist/runtime/event-bus.js +218 -0
- package/dist/runtime/event-bus.js.map +1 -0
- package/dist/runtime/health.d.ts +66 -0
- package/dist/runtime/health.d.ts.map +1 -0
- package/dist/runtime/health.js +111 -0
- package/dist/runtime/health.js.map +1 -0
- package/dist/runtime/i18n.d.ts +54 -0
- package/dist/runtime/i18n.d.ts.map +1 -0
- package/dist/runtime/i18n.js +126 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/offline.d.ts +64 -0
- package/dist/runtime/offline.d.ts.map +1 -0
- package/dist/runtime/offline.js +108 -0
- package/dist/runtime/offline.js.map +1 -0
- package/dist/runtime/streaming.d.ts +97 -0
- package/dist/runtime/streaming.d.ts.map +1 -0
- package/dist/runtime/streaming.js +156 -0
- package/dist/runtime/streaming.js.map +1 -0
- package/dist/runtime/telemetry.d.ts +82 -0
- package/dist/runtime/telemetry.d.ts.map +1 -0
- package/dist/runtime/telemetry.js +120 -0
- package/dist/runtime/telemetry.js.map +1 -0
- package/dist/sharing/agent-repo.d.ts +33 -0
- package/dist/sharing/agent-repo.d.ts.map +1 -0
- package/dist/sharing/agent-repo.js +79 -0
- package/dist/sharing/agent-repo.js.map +1 -0
- package/dist/sharing/cache.d.ts +36 -0
- package/dist/sharing/cache.d.ts.map +1 -0
- package/dist/sharing/cache.js +85 -0
- package/dist/sharing/cache.js.map +1 -0
- package/dist/sharing/conflicts.d.ts +32 -0
- package/dist/sharing/conflicts.d.ts.map +1 -0
- package/dist/sharing/conflicts.js +121 -0
- package/dist/sharing/conflicts.js.map +1 -0
- package/dist/sharing/export.d.ts +50 -0
- package/dist/sharing/export.d.ts.map +1 -0
- package/dist/sharing/export.js +156 -0
- package/dist/sharing/export.js.map +1 -0
- package/dist/sharing/history-split.d.ts +34 -0
- package/dist/sharing/history-split.d.ts.map +1 -0
- package/dist/sharing/history-split.js +101 -0
- package/dist/sharing/history-split.js.map +1 -0
- package/dist/sharing/import.d.ts +37 -0
- package/dist/sharing/import.d.ts.map +1 -0
- package/dist/sharing/import.js +138 -0
- package/dist/sharing/import.js.map +1 -0
- package/dist/sharing/index.d.ts +11 -0
- package/dist/sharing/index.d.ts.map +1 -0
- package/dist/sharing/index.js +11 -0
- package/dist/sharing/index.js.map +1 -0
- package/dist/sharing/versioning.d.ts +32 -0
- package/dist/sharing/versioning.d.ts.map +1 -0
- package/dist/sharing/versioning.js +64 -0
- package/dist/sharing/versioning.js.map +1 -0
- package/dist/skills/index.d.ts +49 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +85 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +56 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +106 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-source.d.ts +63 -0
- package/dist/skills/skill-source.d.ts.map +1 -0
- package/dist/skills/skill-source.js +199 -0
- package/dist/skills/skill-source.js.map +1 -0
- package/dist/tools/index.d.ts +87 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +419 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/normalize-eol.d.ts +6 -0
- package/dist/utils/normalize-eol.d.ts.map +1 -0
- package/dist/utils/normalize-eol.js +8 -0
- package/dist/utils/normalize-eol.js.map +1 -0
- 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"}
|