@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 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-fallback.js","sourceRoot":"","sources":["../../src/config/legacy-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown-to-Config Migration
|
|
3
|
+
*
|
|
4
|
+
* Converts legacy .ai-team/ markdown files (team.md, routing.md, decisions.md)
|
|
5
|
+
* into a typed SquadConfig object, enabling migration from the markdown-driven
|
|
6
|
+
* workflow to the typed squad.config.ts format.
|
|
7
|
+
*
|
|
8
|
+
* @module config/markdown-migration
|
|
9
|
+
*/
|
|
10
|
+
import type { SquadConfig } from '../runtime/config.js';
|
|
11
|
+
/**
|
|
12
|
+
* Agent info extracted from team.md.
|
|
13
|
+
*/
|
|
14
|
+
export interface ParsedAgent {
|
|
15
|
+
/** Agent name (kebab-case) */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Agent role */
|
|
18
|
+
role: string;
|
|
19
|
+
/** Skills / capabilities */
|
|
20
|
+
skills: string[];
|
|
21
|
+
/** Preferred model (if specified) */
|
|
22
|
+
model?: string;
|
|
23
|
+
/** Status */
|
|
24
|
+
status?: string;
|
|
25
|
+
/** Alternative names / aliases */
|
|
26
|
+
aliases?: string[];
|
|
27
|
+
/** Whether this agent is auto-assigned to matching work */
|
|
28
|
+
autoAssign?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Routing rule extracted from routing.md.
|
|
32
|
+
*/
|
|
33
|
+
export interface ParsedRoutingRule {
|
|
34
|
+
/** Work type or pattern */
|
|
35
|
+
workType: string;
|
|
36
|
+
/** Target agents */
|
|
37
|
+
agents: string[];
|
|
38
|
+
/** Example descriptions */
|
|
39
|
+
examples?: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Decision extracted from decisions.md.
|
|
43
|
+
*/
|
|
44
|
+
export interface ParsedDecision {
|
|
45
|
+
/** Decision title */
|
|
46
|
+
title: string;
|
|
47
|
+
/** Decision body / description */
|
|
48
|
+
body: string;
|
|
49
|
+
/** Whether this decision affects configuration */
|
|
50
|
+
configRelevant: boolean;
|
|
51
|
+
/** ISO 8601 date extracted from heading (e.g. "2026-02-21") */
|
|
52
|
+
date?: string;
|
|
53
|
+
/** Author extracted from **By:** lines */
|
|
54
|
+
author?: string;
|
|
55
|
+
/** Heading depth (2 for ##, 3 for ###) */
|
|
56
|
+
headingLevel?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Complete result of parsing all markdown files.
|
|
60
|
+
*/
|
|
61
|
+
export interface MarkdownParseResult {
|
|
62
|
+
/** Agents parsed from team.md */
|
|
63
|
+
agents: ParsedAgent[];
|
|
64
|
+
/** Routing rules parsed from routing.md */
|
|
65
|
+
routingRules: ParsedRoutingRule[];
|
|
66
|
+
/** Decisions parsed from decisions.md */
|
|
67
|
+
decisions: ParsedDecision[];
|
|
68
|
+
/** Warnings about unparseable sections */
|
|
69
|
+
warnings: string[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Options for markdown migration.
|
|
73
|
+
*/
|
|
74
|
+
export interface MarkdownMigrationOptions {
|
|
75
|
+
/** Content of team.md (may be undefined if file missing) */
|
|
76
|
+
teamMd?: string;
|
|
77
|
+
/** Content of routing.md (may be undefined if file missing) */
|
|
78
|
+
routingMd?: string;
|
|
79
|
+
/** Content of decisions.md (may be undefined if file missing) */
|
|
80
|
+
decisionsMd?: string;
|
|
81
|
+
/** Base config to merge into (defaults to DEFAULT_CONFIG) */
|
|
82
|
+
baseConfig?: Partial<SquadConfig>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Result of a markdown migration.
|
|
86
|
+
*/
|
|
87
|
+
export interface MarkdownMigrationResult {
|
|
88
|
+
/** Generated SquadConfig */
|
|
89
|
+
config: SquadConfig;
|
|
90
|
+
/** Parse result with all extracted data */
|
|
91
|
+
parsed: MarkdownParseResult;
|
|
92
|
+
/** Sections that were successfully migrated */
|
|
93
|
+
migratedSections: string[];
|
|
94
|
+
/** Sections that were skipped or missing */
|
|
95
|
+
skippedSections: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parses team.md content into agent configurations.
|
|
99
|
+
*
|
|
100
|
+
* Supports two formats:
|
|
101
|
+
* 1. Table format: | Name | Role | Skills | Model |
|
|
102
|
+
* 2. Section format: ## Agent Name \n Role: ... \n Skills: ...
|
|
103
|
+
*
|
|
104
|
+
* @param content - Raw team.md content
|
|
105
|
+
* @returns Array of parsed agents and any warnings
|
|
106
|
+
*/
|
|
107
|
+
export declare function parseTeamMarkdown(content: string): {
|
|
108
|
+
agents: ParsedAgent[];
|
|
109
|
+
warnings: string[];
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Parses routing.md content into routing rules.
|
|
113
|
+
*
|
|
114
|
+
* Expected table format:
|
|
115
|
+
* | Work Type | Route To | Examples |
|
|
116
|
+
* |-----------|----------|----------|
|
|
117
|
+
* | feature-dev | Lead | New features |
|
|
118
|
+
*
|
|
119
|
+
* @param content - Raw routing.md content
|
|
120
|
+
* @returns Parsed routing rules and warnings
|
|
121
|
+
*/
|
|
122
|
+
export declare function parseRoutingRulesMarkdown(content: string): {
|
|
123
|
+
rules: ParsedRoutingRule[];
|
|
124
|
+
warnings: string[];
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Parses decisions.md content to extract config-relevant decisions.
|
|
128
|
+
*
|
|
129
|
+
* Looks for headings that denote individual decisions and checks body text
|
|
130
|
+
* for config-relevant keywords (model, routing, governance, tier, agent).
|
|
131
|
+
*
|
|
132
|
+
* @param content - Raw decisions.md content
|
|
133
|
+
* @returns Parsed decisions and warnings
|
|
134
|
+
*/
|
|
135
|
+
export declare function parseDecisionsMarkdown(content: string): {
|
|
136
|
+
decisions: ParsedDecision[];
|
|
137
|
+
warnings: string[];
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Converts parsed markdown data into a typed SquadConfig.
|
|
141
|
+
*
|
|
142
|
+
* @param parsed - Result from parsing all markdown files
|
|
143
|
+
* @param base - Optional base config to merge with
|
|
144
|
+
* @returns Generated SquadConfig
|
|
145
|
+
*/
|
|
146
|
+
export declare function generateConfigFromParsed(parsed: MarkdownParseResult, base?: Partial<SquadConfig>): SquadConfig;
|
|
147
|
+
/**
|
|
148
|
+
* Migrates legacy markdown configuration files to a typed SquadConfig.
|
|
149
|
+
*
|
|
150
|
+
* Handles partial migrations gracefully — any combination of files can be
|
|
151
|
+
* missing and the result will still be a valid SquadConfig.
|
|
152
|
+
*
|
|
153
|
+
* @param options - Markdown file contents and options
|
|
154
|
+
* @returns Migration result with generated config and diagnostics
|
|
155
|
+
*/
|
|
156
|
+
export declare function migrateMarkdownToConfig(options: MarkdownMigrationOptions): MarkdownMigrationResult;
|
|
157
|
+
//# sourceMappingURL=markdown-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-migration.d.ts","sourceRoot":"","sources":["../../src/config/markdown-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown-to-Config Migration
|
|
3
|
+
*
|
|
4
|
+
* Converts legacy .ai-team/ markdown files (team.md, routing.md, decisions.md)
|
|
5
|
+
* into a typed SquadConfig object, enabling migration from the markdown-driven
|
|
6
|
+
* workflow to the typed squad.config.ts format.
|
|
7
|
+
*
|
|
8
|
+
* @module config/markdown-migration
|
|
9
|
+
*/
|
|
10
|
+
import { normalizeEol } from '../utils/normalize-eol.js';
|
|
11
|
+
import { DEFAULT_CONFIG } from '../runtime/config.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// team.md Parsing
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Parses team.md content into agent configurations.
|
|
17
|
+
*
|
|
18
|
+
* Supports two formats:
|
|
19
|
+
* 1. Table format: | Name | Role | Skills | Model |
|
|
20
|
+
* 2. Section format: ## Agent Name \n Role: ... \n Skills: ...
|
|
21
|
+
*
|
|
22
|
+
* @param content - Raw team.md content
|
|
23
|
+
* @returns Array of parsed agents and any warnings
|
|
24
|
+
*/
|
|
25
|
+
export function parseTeamMarkdown(content) {
|
|
26
|
+
content = normalizeEol(content);
|
|
27
|
+
const agents = [];
|
|
28
|
+
const warnings = [];
|
|
29
|
+
if (!content || !content.trim()) {
|
|
30
|
+
return { agents, warnings };
|
|
31
|
+
}
|
|
32
|
+
const lines = content.split('\n');
|
|
33
|
+
// Try table format first
|
|
34
|
+
const tableAgents = parseTeamTable(lines);
|
|
35
|
+
if (tableAgents.length > 0) {
|
|
36
|
+
return { agents: tableAgents, warnings };
|
|
37
|
+
}
|
|
38
|
+
// Fall back to section format
|
|
39
|
+
let currentAgent = null;
|
|
40
|
+
let inRoster = false;
|
|
41
|
+
for (const line of lines) {
|
|
42
|
+
const trimmed = line.trim();
|
|
43
|
+
// Detect roster / team section
|
|
44
|
+
if (/^##\s+(roster|team\s+members?|agents?)/i.test(trimmed)) {
|
|
45
|
+
inRoster = true;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// New section header (not roster-related) — stop
|
|
49
|
+
if (inRoster && /^##\s+/.test(trimmed) && !/roster|team|agent/i.test(trimmed)) {
|
|
50
|
+
if (currentAgent?.name) {
|
|
51
|
+
agents.push(finalizeAgent(currentAgent));
|
|
52
|
+
}
|
|
53
|
+
currentAgent = null;
|
|
54
|
+
inRoster = false;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
// Agent header (### Agent Name or **Agent Name**)
|
|
58
|
+
if (inRoster && (/^###\s+/.test(trimmed) || /^\*\*[^*]+\*\*/.test(trimmed))) {
|
|
59
|
+
if (currentAgent?.name) {
|
|
60
|
+
agents.push(finalizeAgent(currentAgent));
|
|
61
|
+
}
|
|
62
|
+
const nameMatch = trimmed.match(/^###\s+(.+)/) || trimmed.match(/^\*\*([^*]+)\*\*/);
|
|
63
|
+
currentAgent = { name: kebabCase(nameMatch?.[1] ?? ''), skills: [] };
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// Key-value lines within an agent section
|
|
67
|
+
if (currentAgent) {
|
|
68
|
+
// Match patterns like: - **Role:** Lead, - Role: Lead, * **Skills:** x, y
|
|
69
|
+
const kvMatch = trimmed.match(/^[-*]*\s*\*{0,2}(role|skills?|model|status|preferred\s*model|aliases?|auto[-\s]*assign)\s*:?\s*\*{0,2}\s*:?\s*(.+)/i);
|
|
70
|
+
if (kvMatch) {
|
|
71
|
+
const key = kvMatch[1].toLowerCase().replace(/[\s-]+/g, '');
|
|
72
|
+
const value = kvMatch[2].replace(/^\*+\s*/, '').trim();
|
|
73
|
+
switch (key) {
|
|
74
|
+
case 'role':
|
|
75
|
+
currentAgent.role = value;
|
|
76
|
+
break;
|
|
77
|
+
case 'skill':
|
|
78
|
+
case 'skills':
|
|
79
|
+
currentAgent.skills = value.split(',').map((s) => s.trim()).filter(Boolean);
|
|
80
|
+
break;
|
|
81
|
+
case 'model':
|
|
82
|
+
case 'preferredmodel':
|
|
83
|
+
currentAgent.model = value;
|
|
84
|
+
break;
|
|
85
|
+
case 'status':
|
|
86
|
+
currentAgent.status = value;
|
|
87
|
+
break;
|
|
88
|
+
case 'alias':
|
|
89
|
+
case 'aliases':
|
|
90
|
+
currentAgent.aliases = value.split(',').map((s) => s.trim()).filter(Boolean);
|
|
91
|
+
break;
|
|
92
|
+
case 'autoassign':
|
|
93
|
+
currentAgent.autoAssign = /^(yes|true|1)$/i.test(value);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Flush last agent
|
|
100
|
+
if (currentAgent?.name) {
|
|
101
|
+
agents.push(finalizeAgent(currentAgent));
|
|
102
|
+
}
|
|
103
|
+
if (agents.length === 0) {
|
|
104
|
+
warnings.push('Could not parse any agents from team.md');
|
|
105
|
+
}
|
|
106
|
+
return { agents, warnings };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Parses a markdown table for agent rows.
|
|
110
|
+
*/
|
|
111
|
+
function parseTeamTable(lines) {
|
|
112
|
+
const agents = [];
|
|
113
|
+
let headerCols = null;
|
|
114
|
+
for (const line of lines) {
|
|
115
|
+
const trimmed = line.trim();
|
|
116
|
+
if (!trimmed.startsWith('|'))
|
|
117
|
+
continue;
|
|
118
|
+
const cells = trimmed.split('|').map((c) => c.trim()).filter(Boolean);
|
|
119
|
+
// Detect header row
|
|
120
|
+
if (!headerCols && cells.some((c) => /name/i.test(c))) {
|
|
121
|
+
headerCols = cells.map((c) => c.toLowerCase());
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
// Skip separator row
|
|
125
|
+
if (cells.every((c) => /^[-:]+$/.test(c)))
|
|
126
|
+
continue;
|
|
127
|
+
if (headerCols && cells.length >= 2) {
|
|
128
|
+
const get = (key) => {
|
|
129
|
+
const idx = headerCols.findIndex((h) => h.includes(key));
|
|
130
|
+
return idx >= 0 && idx < cells.length ? cells[idx] : undefined;
|
|
131
|
+
};
|
|
132
|
+
const name = get('name');
|
|
133
|
+
if (!name)
|
|
134
|
+
continue;
|
|
135
|
+
agents.push({
|
|
136
|
+
name: kebabCase(name),
|
|
137
|
+
role: get('role') ?? 'developer',
|
|
138
|
+
skills: (get('skill') ?? '').split(',').map((s) => s.trim()).filter(Boolean),
|
|
139
|
+
model: get('model') || undefined,
|
|
140
|
+
status: get('status') || undefined,
|
|
141
|
+
aliases: get('alias') ? get('alias').split(',').map((s) => s.trim()).filter(Boolean) : undefined,
|
|
142
|
+
autoAssign: get('auto') !== undefined ? /^(yes|true|1)$/i.test(get('auto') ?? '') : undefined,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return agents;
|
|
147
|
+
}
|
|
148
|
+
// ============================================================================
|
|
149
|
+
// routing.md Parsing
|
|
150
|
+
// ============================================================================
|
|
151
|
+
/**
|
|
152
|
+
* Parses routing.md content into routing rules.
|
|
153
|
+
*
|
|
154
|
+
* Expected table format:
|
|
155
|
+
* | Work Type | Route To | Examples |
|
|
156
|
+
* |-----------|----------|----------|
|
|
157
|
+
* | feature-dev | Lead | New features |
|
|
158
|
+
*
|
|
159
|
+
* @param content - Raw routing.md content
|
|
160
|
+
* @returns Parsed routing rules and warnings
|
|
161
|
+
*/
|
|
162
|
+
export function parseRoutingRulesMarkdown(content) {
|
|
163
|
+
content = normalizeEol(content);
|
|
164
|
+
const rules = [];
|
|
165
|
+
const warnings = [];
|
|
166
|
+
if (!content || !content.trim()) {
|
|
167
|
+
return { rules, warnings };
|
|
168
|
+
}
|
|
169
|
+
const lines = content.split('\n');
|
|
170
|
+
let inTable = false;
|
|
171
|
+
let headerPassed = false;
|
|
172
|
+
for (const line of lines) {
|
|
173
|
+
const trimmed = line.trim();
|
|
174
|
+
// Detect routing table
|
|
175
|
+
if (/##\s*routing\s*table/i.test(trimmed)) {
|
|
176
|
+
inTable = true;
|
|
177
|
+
headerPassed = false;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
// New section ends the table
|
|
181
|
+
if (inTable && /^##\s+/.test(trimmed) && !/routing\s*table/i.test(trimmed)) {
|
|
182
|
+
inTable = false;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (inTable && trimmed.startsWith('|')) {
|
|
186
|
+
// Header row
|
|
187
|
+
if (/work\s*type|pattern/i.test(trimmed)) {
|
|
188
|
+
headerPassed = true;
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
// Separator
|
|
192
|
+
if (/^[|:\-\s]+$/.test(trimmed))
|
|
193
|
+
continue;
|
|
194
|
+
if (!headerPassed)
|
|
195
|
+
continue;
|
|
196
|
+
const cells = trimmed.split('|').map((c) => c.trim()).filter(Boolean);
|
|
197
|
+
if (cells.length >= 2) {
|
|
198
|
+
const workType = cells[0];
|
|
199
|
+
const agents = cells[1].split(',').map((a) => a.trim()).filter(Boolean);
|
|
200
|
+
const examples = cells.length >= 3
|
|
201
|
+
? cells[2].split(',').map((e) => e.trim()).filter(Boolean)
|
|
202
|
+
: undefined;
|
|
203
|
+
if (workType && agents.length > 0) {
|
|
204
|
+
rules.push({ workType, agents, examples });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (rules.length === 0) {
|
|
210
|
+
warnings.push('Could not parse any routing rules from routing.md');
|
|
211
|
+
}
|
|
212
|
+
return { rules, warnings };
|
|
213
|
+
}
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// decisions.md Parsing
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Parses decisions.md content to extract config-relevant decisions.
|
|
219
|
+
*
|
|
220
|
+
* Looks for headings that denote individual decisions and checks body text
|
|
221
|
+
* for config-relevant keywords (model, routing, governance, tier, agent).
|
|
222
|
+
*
|
|
223
|
+
* @param content - Raw decisions.md content
|
|
224
|
+
* @returns Parsed decisions and warnings
|
|
225
|
+
*/
|
|
226
|
+
export function parseDecisionsMarkdown(content) {
|
|
227
|
+
content = normalizeEol(content);
|
|
228
|
+
const decisions = [];
|
|
229
|
+
const warnings = [];
|
|
230
|
+
if (!content || !content.trim()) {
|
|
231
|
+
return { decisions, warnings };
|
|
232
|
+
}
|
|
233
|
+
const lines = content.split('\n');
|
|
234
|
+
let currentTitle = null;
|
|
235
|
+
let currentHeadingLevel;
|
|
236
|
+
let currentDate;
|
|
237
|
+
let bodyLines = [];
|
|
238
|
+
const CONFIG_KEYWORDS = /\b(model|routing|governance|tier|agent|fallback|config|migration)\b/i;
|
|
239
|
+
const DATE_IN_HEADING = /^(\d{4}-\d{2}-\d{2}):\s*(.+)/;
|
|
240
|
+
const AUTHOR_LINE = /^\*\*By:\*\*\s*(.+)/i;
|
|
241
|
+
const flush = () => {
|
|
242
|
+
if (currentTitle) {
|
|
243
|
+
const body = bodyLines.join('\n').trim();
|
|
244
|
+
const configRelevant = CONFIG_KEYWORDS.test(currentTitle) || CONFIG_KEYWORDS.test(body);
|
|
245
|
+
// Extract author from body lines
|
|
246
|
+
let author;
|
|
247
|
+
for (const bl of bodyLines) {
|
|
248
|
+
const authorMatch = bl.trim().match(AUTHOR_LINE);
|
|
249
|
+
if (authorMatch) {
|
|
250
|
+
author = authorMatch[1].trim();
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const decision = { title: currentTitle, body, configRelevant };
|
|
255
|
+
if (currentDate)
|
|
256
|
+
decision.date = currentDate;
|
|
257
|
+
if (author)
|
|
258
|
+
decision.author = author;
|
|
259
|
+
if (currentHeadingLevel !== undefined)
|
|
260
|
+
decision.headingLevel = currentHeadingLevel;
|
|
261
|
+
decisions.push(decision);
|
|
262
|
+
}
|
|
263
|
+
currentTitle = null;
|
|
264
|
+
currentDate = undefined;
|
|
265
|
+
currentHeadingLevel = undefined;
|
|
266
|
+
bodyLines = [];
|
|
267
|
+
};
|
|
268
|
+
for (const line of lines) {
|
|
269
|
+
const trimmed = line.trim();
|
|
270
|
+
const headingMatch = trimmed.match(/^(###?)\s+(.+)/);
|
|
271
|
+
if (headingMatch) {
|
|
272
|
+
flush();
|
|
273
|
+
const hashes = headingMatch[1];
|
|
274
|
+
let titleText = headingMatch[2];
|
|
275
|
+
currentHeadingLevel = hashes.length;
|
|
276
|
+
// Extract date from heading like "### 2026-02-21: Title"
|
|
277
|
+
const dateMatch = titleText.match(DATE_IN_HEADING);
|
|
278
|
+
if (dateMatch) {
|
|
279
|
+
currentDate = dateMatch[1];
|
|
280
|
+
titleText = dateMatch[2];
|
|
281
|
+
}
|
|
282
|
+
currentTitle = titleText;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
if (currentTitle) {
|
|
286
|
+
bodyLines.push(line);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
flush();
|
|
290
|
+
return { decisions, warnings };
|
|
291
|
+
}
|
|
292
|
+
// ============================================================================
|
|
293
|
+
// Config Generation
|
|
294
|
+
// ============================================================================
|
|
295
|
+
/**
|
|
296
|
+
* Converts parsed markdown data into a typed SquadConfig.
|
|
297
|
+
*
|
|
298
|
+
* @param parsed - Result from parsing all markdown files
|
|
299
|
+
* @param base - Optional base config to merge with
|
|
300
|
+
* @returns Generated SquadConfig
|
|
301
|
+
*/
|
|
302
|
+
export function generateConfigFromParsed(parsed, base) {
|
|
303
|
+
const baseConfig = base ?? {};
|
|
304
|
+
// Build routing rules
|
|
305
|
+
const routingRules = parsed.routingRules.map((r) => ({
|
|
306
|
+
workType: r.workType,
|
|
307
|
+
agents: r.agents.map((a) => (a.startsWith('@') ? a : `@${a.toLowerCase()}`)),
|
|
308
|
+
examples: r.examples,
|
|
309
|
+
confidence: 'high',
|
|
310
|
+
}));
|
|
311
|
+
const routing = {
|
|
312
|
+
...DEFAULT_CONFIG.routing,
|
|
313
|
+
...baseConfig.routing,
|
|
314
|
+
rules: routingRules.length > 0 ? routingRules : DEFAULT_CONFIG.routing.rules,
|
|
315
|
+
};
|
|
316
|
+
// Build model config with agent overrides from team.md model preferences
|
|
317
|
+
const agentOverrides = {};
|
|
318
|
+
for (const agent of parsed.agents) {
|
|
319
|
+
if (agent.model) {
|
|
320
|
+
agentOverrides[agent.name] = agent.model;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
const models = {
|
|
324
|
+
...DEFAULT_CONFIG.models,
|
|
325
|
+
...baseConfig.models,
|
|
326
|
+
};
|
|
327
|
+
// Apply agent-specific model overrides via roleMapping
|
|
328
|
+
if (Object.keys(agentOverrides).length > 0 && !models.roleMapping) {
|
|
329
|
+
models.roleMapping = parsed.agents
|
|
330
|
+
.filter((a) => a.model)
|
|
331
|
+
.map((a) => ({
|
|
332
|
+
role: a.role,
|
|
333
|
+
model: a.model,
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
336
|
+
const config = {
|
|
337
|
+
...DEFAULT_CONFIG,
|
|
338
|
+
...baseConfig,
|
|
339
|
+
version: baseConfig.version ?? DEFAULT_CONFIG.version,
|
|
340
|
+
models,
|
|
341
|
+
routing,
|
|
342
|
+
};
|
|
343
|
+
return config;
|
|
344
|
+
}
|
|
345
|
+
// ============================================================================
|
|
346
|
+
// Main Migration Entrypoint
|
|
347
|
+
// ============================================================================
|
|
348
|
+
/**
|
|
349
|
+
* Migrates legacy markdown configuration files to a typed SquadConfig.
|
|
350
|
+
*
|
|
351
|
+
* Handles partial migrations gracefully — any combination of files can be
|
|
352
|
+
* missing and the result will still be a valid SquadConfig.
|
|
353
|
+
*
|
|
354
|
+
* @param options - Markdown file contents and options
|
|
355
|
+
* @returns Migration result with generated config and diagnostics
|
|
356
|
+
*/
|
|
357
|
+
export function migrateMarkdownToConfig(options) {
|
|
358
|
+
const warnings = [];
|
|
359
|
+
const migratedSections = [];
|
|
360
|
+
const skippedSections = [];
|
|
361
|
+
// Parse team.md
|
|
362
|
+
let agents = [];
|
|
363
|
+
if (options.teamMd) {
|
|
364
|
+
const teamResult = parseTeamMarkdown(options.teamMd);
|
|
365
|
+
agents = teamResult.agents;
|
|
366
|
+
warnings.push(...teamResult.warnings);
|
|
367
|
+
if (agents.length > 0) {
|
|
368
|
+
migratedSections.push('team');
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
skippedSections.push('team');
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
skippedSections.push('team');
|
|
376
|
+
}
|
|
377
|
+
// Parse routing.md
|
|
378
|
+
let routingRules = [];
|
|
379
|
+
if (options.routingMd) {
|
|
380
|
+
const routingResult = parseRoutingRulesMarkdown(options.routingMd);
|
|
381
|
+
routingRules = routingResult.rules;
|
|
382
|
+
warnings.push(...routingResult.warnings);
|
|
383
|
+
if (routingRules.length > 0) {
|
|
384
|
+
migratedSections.push('routing');
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
skippedSections.push('routing');
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
skippedSections.push('routing');
|
|
392
|
+
}
|
|
393
|
+
// Parse decisions.md
|
|
394
|
+
let decisions = [];
|
|
395
|
+
if (options.decisionsMd) {
|
|
396
|
+
const decResult = parseDecisionsMarkdown(options.decisionsMd);
|
|
397
|
+
decisions = decResult.decisions;
|
|
398
|
+
warnings.push(...decResult.warnings);
|
|
399
|
+
if (decisions.length > 0) {
|
|
400
|
+
migratedSections.push('decisions');
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
skippedSections.push('decisions');
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
skippedSections.push('decisions');
|
|
408
|
+
}
|
|
409
|
+
const parsed = { agents, routingRules, decisions, warnings };
|
|
410
|
+
const config = generateConfigFromParsed(parsed, options.baseConfig);
|
|
411
|
+
return { config, parsed, migratedSections, skippedSections };
|
|
412
|
+
}
|
|
413
|
+
// ============================================================================
|
|
414
|
+
// Helpers
|
|
415
|
+
// ============================================================================
|
|
416
|
+
function kebabCase(str) {
|
|
417
|
+
return str
|
|
418
|
+
.trim()
|
|
419
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
420
|
+
.replace(/[\s_]+/g, '-')
|
|
421
|
+
.toLowerCase();
|
|
422
|
+
}
|
|
423
|
+
function finalizeAgent(partial) {
|
|
424
|
+
return {
|
|
425
|
+
name: partial.name ?? 'unknown',
|
|
426
|
+
role: partial.role ?? 'developer',
|
|
427
|
+
skills: partial.skills ?? [],
|
|
428
|
+
model: partial.model,
|
|
429
|
+
status: partial.status,
|
|
430
|
+
aliases: partial.aliases,
|
|
431
|
+
autoAssign: partial.autoAssign,
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=markdown-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-migration.js","sourceRoot":"","sources":["../../src/config/markdown-migration.ts"],"names":[],"mappings":"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"}
|