@ai-outfitter/outfitter 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/DumpCommand.js +1 -1
- package/dist/cli/commands/DumpCommand.js.map +1 -1
- package/dist/cli/commands/RunAgentCommand.js +5 -3
- package/dist/cli/commands/RunAgentCommand.js.map +1 -1
- package/dist/cli/commands/ValidateCommand.js +1 -1
- package/dist/cli/commands/ValidateCommand.js.map +1 -1
- package/dist/composer/Composer.d.ts +7 -5
- package/dist/composer/Composer.js +280 -64
- package/dist/composer/Composer.js.map +1 -1
- package/dist/composer/Composition.d.ts +34 -3
- package/dist/composer/PromptSource.d.ts +44 -0
- package/dist/composer/PromptSource.js +113 -0
- package/dist/composer/PromptSource.js.map +1 -0
- package/dist/dump/Dump.d.ts +1 -1
- package/dist/dump/Dump.js +111 -20
- package/dist/dump/Dump.js.map +1 -1
- package/dist/projection/Materialize.d.ts +1 -5
- package/dist/projection/Materialize.js +57 -13
- package/dist/projection/Materialize.js.map +1 -1
- package/dist/projection/ProjectHarness.js +8 -3
- package/dist/projection/ProjectHarness.js.map +1 -1
- package/dist/resolver/AgentDefinition.d.ts +9 -0
- package/dist/resolver/AgentDefinition.js +17 -0
- package/dist/resolver/AgentDefinition.js.map +1 -1
- package/dist/resolver/ResolverValidation.d.ts +1 -1
- package/dist/resolver/ResolverValidation.js +25 -15
- package/dist/resolver/ResolverValidation.js.map +1 -1
- package/dist/schemas/agent.schema.json +32 -0
- package/docs/documentation/agents.md +81 -26
- package/docs/documentation/migration.md +18 -9
- package/docs/documentation/profiles.md +24 -7
- package/package.json +1 -1
- package/src/schemas/agent.schema.json +32 -0
|
@@ -1,22 +1,49 @@
|
|
|
1
1
|
import type { Loadout, ResolvedResource } from '../resolver/Resource.js';
|
|
2
|
-
|
|
2
|
+
import type { PromptFragment } from './PromptSource.js';
|
|
3
|
+
/** The composed identity: base prompt, shared context, prompt fragments, and agent bodies. */
|
|
3
4
|
export interface ComposedIdentity {
|
|
4
|
-
/** Content of the
|
|
5
|
+
/** Content of the effective system prompt, if any. Kept for compatibility with existing callers. */
|
|
5
6
|
readonly systemPrompt?: string;
|
|
7
|
+
/** Provenance-rich effective system prompt fragment. */
|
|
8
|
+
readonly systemPromptFragment?: PromptFragment;
|
|
6
9
|
/** Content of the winning `agents.md` shared operating context, if any. */
|
|
7
10
|
readonly sharedContext?: string;
|
|
8
|
-
|
|
11
|
+
readonly sharedContextFragment?: PromptFragment;
|
|
12
|
+
/** Effective appended prompt fragments, inherited parent-first and de-duplicated. */
|
|
13
|
+
readonly appendSystemPrompts?: readonly PromptFragment[];
|
|
14
|
+
/** Effective agent body fragments, inherited parent-first and selected child last. */
|
|
15
|
+
readonly agentBodies?: readonly PromptFragment[];
|
|
16
|
+
/** Effective prompt template fragment, when declared. */
|
|
17
|
+
readonly promptTemplate?: PromptFragment;
|
|
18
|
+
/** The composed `agent.md` markdown body. Kept for compatibility with existing callers. */
|
|
9
19
|
readonly agentBody: string;
|
|
10
20
|
/** Human-readable profile name for interactive harness UI. */
|
|
11
21
|
readonly label?: string;
|
|
12
22
|
readonly description?: string;
|
|
13
23
|
}
|
|
24
|
+
/** Identity fields guaranteed for a delegate composed from the effective resource set. */
|
|
25
|
+
export interface ComposedSubagentIdentity extends ComposedIdentity {
|
|
26
|
+
readonly appendSystemPrompts: readonly PromptFragment[];
|
|
27
|
+
readonly agentBodies: readonly PromptFragment[];
|
|
28
|
+
}
|
|
29
|
+
/** Effective delegated-agent controls projected into a native subagent definition. */
|
|
30
|
+
export interface ComposedSubagent {
|
|
31
|
+
readonly resource: ResolvedResource;
|
|
32
|
+
readonly identity: ComposedSubagentIdentity;
|
|
33
|
+
readonly skills: readonly ResolvedResource[];
|
|
34
|
+
readonly extensions: readonly string[];
|
|
35
|
+
readonly model?: string;
|
|
36
|
+
readonly thinking?: string;
|
|
37
|
+
readonly tools?: Loadout['tools'];
|
|
38
|
+
}
|
|
14
39
|
/** A loadout with its slug references resolved against the effective set. */
|
|
15
40
|
export interface ComposedLoadout {
|
|
16
41
|
readonly skills: readonly ResolvedResource[];
|
|
17
42
|
/** Skills selected by delegates, materialized for them without loading them into the leader. */
|
|
18
43
|
readonly delegateSkills: readonly ResolvedResource[];
|
|
19
44
|
readonly subagents: readonly ResolvedResource[];
|
|
45
|
+
/** Inheritance-aware definitions for each selected delegate. */
|
|
46
|
+
readonly composedSubagents?: readonly ComposedSubagent[];
|
|
20
47
|
readonly mcp: readonly string[];
|
|
21
48
|
/** Selected MCP server definitions after layer and per-agent precedence are applied. */
|
|
22
49
|
readonly mcpServers: Readonly<Record<string, unknown>>;
|
|
@@ -34,6 +61,10 @@ export interface CompositionPlan {
|
|
|
34
61
|
readonly agent: string;
|
|
35
62
|
readonly identity: ComposedIdentity;
|
|
36
63
|
readonly loadout: ComposedLoadout;
|
|
64
|
+
/** Parent-first agent resources that contributed identity, loadout, or native overlays. */
|
|
65
|
+
readonly contributingAgents?: readonly ResolvedResource[];
|
|
66
|
+
/** Parent-first chain of agent slugs that contributed to this composition, selected child last. */
|
|
67
|
+
readonly inheritanceChain?: readonly string[];
|
|
37
68
|
/** Non-fatal issues (e.g. unknown loadout slugs) surfaced during composition. */
|
|
38
69
|
readonly warnings: readonly string[];
|
|
39
70
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Layer } from '../resolver/Resource.js';
|
|
2
|
+
export type PromptSourceKind = 'root' | 'file' | 'repo_file' | 'agent_body';
|
|
3
|
+
export interface PromptSourceReference {
|
|
4
|
+
readonly file?: string;
|
|
5
|
+
readonly repo_file?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface PromptFragment {
|
|
8
|
+
readonly kind: PromptSourceKind;
|
|
9
|
+
readonly content: string;
|
|
10
|
+
readonly path?: string;
|
|
11
|
+
readonly reference?: string;
|
|
12
|
+
readonly declaringAgent?: string;
|
|
13
|
+
readonly layer?: Layer;
|
|
14
|
+
/** Human-readable label used for deterministic generated filenames and dump metadata. */
|
|
15
|
+
readonly label: string;
|
|
16
|
+
/** Repository prompt content is untrusted active-project content, not catalog policy. */
|
|
17
|
+
readonly trust: 'catalog' | 'repository' | 'generated';
|
|
18
|
+
}
|
|
19
|
+
export interface PromptResolution {
|
|
20
|
+
readonly fragment?: PromptFragment;
|
|
21
|
+
readonly warning?: string;
|
|
22
|
+
readonly error?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const isPromptSourceReference: (value: unknown) => value is PromptSourceReference;
|
|
25
|
+
export declare const promptSourceKey: (source: PromptSourceReference) => string;
|
|
26
|
+
export declare const resolvePromptSource: (input: {
|
|
27
|
+
readonly source: PromptSourceReference;
|
|
28
|
+
readonly declaringAgent: string;
|
|
29
|
+
readonly layer: Layer;
|
|
30
|
+
readonly projectDirectory?: string;
|
|
31
|
+
readonly optionalRepoFile?: boolean;
|
|
32
|
+
readonly label: string;
|
|
33
|
+
}) => PromptResolution;
|
|
34
|
+
export declare const rootPromptFragment: (input: {
|
|
35
|
+
readonly fileName: string;
|
|
36
|
+
readonly layer: Layer;
|
|
37
|
+
readonly content: string;
|
|
38
|
+
}) => PromptFragment;
|
|
39
|
+
export declare const agentBodyFragment: (input: {
|
|
40
|
+
readonly agent: string;
|
|
41
|
+
readonly layer: Layer;
|
|
42
|
+
readonly path: string;
|
|
43
|
+
readonly content: string;
|
|
44
|
+
}) => PromptFragment;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Resolves prompt source references declared in agent frontmatter with containment provenance.
|
|
2
|
+
import { existsSync, realpathSync, statSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join, relative } from 'node:path';
|
|
4
|
+
import { escapesRoots } from '../dump/Containment.js';
|
|
5
|
+
export const isPromptSourceReference = (value) => value !== null &&
|
|
6
|
+
typeof value === 'object' &&
|
|
7
|
+
!Array.isArray(value) &&
|
|
8
|
+
((typeof value.file === 'string' &&
|
|
9
|
+
value.repo_file === undefined) ||
|
|
10
|
+
(typeof value.repo_file === 'string' &&
|
|
11
|
+
value.file === undefined));
|
|
12
|
+
const safeRelative = (value) => value.length > 0 && !value.startsWith('/') && !value.split(/[\\/]+/).includes('..');
|
|
13
|
+
const containedFile = (path, root) => {
|
|
14
|
+
if (!existsSync(path))
|
|
15
|
+
return `missing file '${path}'.`;
|
|
16
|
+
let real;
|
|
17
|
+
try {
|
|
18
|
+
real = realpathSync(path);
|
|
19
|
+
/* v8 ignore next 2 -- existsSync succeeded; this only covers a concurrent filesystem race. */
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return `cannot resolve '${path}': ${String(error)}`;
|
|
23
|
+
}
|
|
24
|
+
if (escapesRoots(real, [root]))
|
|
25
|
+
return `'${path}' resolves outside '${root}'.`;
|
|
26
|
+
try {
|
|
27
|
+
if (!statSync(real).isFile())
|
|
28
|
+
return `'${path}' is not a file.`;
|
|
29
|
+
/* v8 ignore next 2 -- realpathSync succeeded; this only covers a concurrent filesystem race. */
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return `cannot stat '${path}': ${String(error)}`;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
export const promptSourceKey = (source) => source.file !== undefined ? `file:${source.file}` : `repo_file:${source.repo_file}`;
|
|
37
|
+
export const resolvePromptSource = (input) => {
|
|
38
|
+
const { source, declaringAgent, layer, label } = input;
|
|
39
|
+
if (source.file !== undefined) {
|
|
40
|
+
if (!safeRelative(source.file)) {
|
|
41
|
+
return {
|
|
42
|
+
error: `agent '${declaringAgent}' prompt source file '${source.file}' must be a contained relative path.`,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const path = join(layer.root, source.file);
|
|
46
|
+
const contained = containedFile(path, layer.root);
|
|
47
|
+
if (contained !== true)
|
|
48
|
+
return { error: `agent '${declaringAgent}' prompt source file ${contained}` };
|
|
49
|
+
return {
|
|
50
|
+
fragment: {
|
|
51
|
+
kind: 'file',
|
|
52
|
+
content: readFileSync(path, 'utf8'),
|
|
53
|
+
path,
|
|
54
|
+
reference: source.file,
|
|
55
|
+
declaringAgent,
|
|
56
|
+
layer,
|
|
57
|
+
label,
|
|
58
|
+
trust: 'catalog',
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const repoFile = source.repo_file;
|
|
63
|
+
if (!safeRelative(repoFile)) {
|
|
64
|
+
return {
|
|
65
|
+
error: `agent '${declaringAgent}' repo_file prompt source '${repoFile}' must be a contained relative path.`,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const projectDirectory = input.projectDirectory;
|
|
69
|
+
if (projectDirectory === undefined) {
|
|
70
|
+
return {
|
|
71
|
+
warning: `agent '${declaringAgent}' repo_file prompt source '${repoFile}' cannot be resolved without a project root.`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const path = join(projectDirectory, repoFile);
|
|
75
|
+
if (!existsSync(path) && input.optionalRepoFile === true) {
|
|
76
|
+
return { warning: `agent '${declaringAgent}' optional repo_file prompt source '${repoFile}' was not found.` };
|
|
77
|
+
}
|
|
78
|
+
const contained = containedFile(path, projectDirectory);
|
|
79
|
+
if (contained !== true)
|
|
80
|
+
return { error: `agent '${declaringAgent}' repo_file prompt source ${contained}` };
|
|
81
|
+
return {
|
|
82
|
+
fragment: {
|
|
83
|
+
kind: 'repo_file',
|
|
84
|
+
content: readFileSync(path, 'utf8'),
|
|
85
|
+
path,
|
|
86
|
+
reference: repoFile,
|
|
87
|
+
declaringAgent,
|
|
88
|
+
layer,
|
|
89
|
+
label,
|
|
90
|
+
trust: 'repository',
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
export const rootPromptFragment = (input) => ({
|
|
95
|
+
kind: 'root',
|
|
96
|
+
content: input.content,
|
|
97
|
+
path: join(input.layer.root, input.fileName),
|
|
98
|
+
reference: input.fileName,
|
|
99
|
+
layer: input.layer,
|
|
100
|
+
label: input.fileName.replace(/\.md$/, ''),
|
|
101
|
+
trust: 'catalog',
|
|
102
|
+
});
|
|
103
|
+
export const agentBodyFragment = (input) => ({
|
|
104
|
+
kind: 'agent_body',
|
|
105
|
+
content: input.content,
|
|
106
|
+
path: input.path,
|
|
107
|
+
reference: relative(dirname(input.path), input.path),
|
|
108
|
+
declaringAgent: input.agent,
|
|
109
|
+
layer: input.layer,
|
|
110
|
+
label: `agent-${input.agent}`,
|
|
111
|
+
trust: 'catalog',
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=PromptSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptSource.js","sourceRoot":"","sources":["../../src/composer/PromptSource.ts"],"names":[],"mappings":"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"}
|
package/dist/dump/Dump.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export interface DumpResult {
|
|
|
5
5
|
readonly errors: readonly string[];
|
|
6
6
|
}
|
|
7
7
|
/** Writes the composed closure of `agentSlug` into a freshly cleaned `<outDirectory>/.agents/`. */
|
|
8
|
-
export declare const dumpAgent: (set: EffectiveResourceSet, agentSlug: string, outDirectory: string) => DumpResult;
|
|
8
|
+
export declare const dumpAgent: (set: EffectiveResourceSet, agentSlug: string, outDirectory: string, projectDirectory?: string) => DumpResult;
|
package/dist/dump/Dump.js
CHANGED
|
@@ -61,16 +61,80 @@ const writeRootFiles = (set, outRoot, written) => {
|
|
|
61
61
|
}
|
|
62
62
|
return errors;
|
|
63
63
|
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
const collectContributingAgents = (set, slugs, agents) => {
|
|
65
|
+
const existing = new Set(agents.map((agent) => agent.slug));
|
|
66
|
+
for (const slug of slugs) {
|
|
67
|
+
const agent = findResource(set, 'agent', slug);
|
|
68
|
+
if (agent !== undefined && !existing.has(slug)) {
|
|
69
|
+
agents.push(agent);
|
|
70
|
+
existing.add(slug);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const fragmentProvenance = (fragment) => ({
|
|
75
|
+
kind: fragment.kind,
|
|
76
|
+
reference: fragment.reference,
|
|
77
|
+
declaringAgent: fragment.declaringAgent,
|
|
78
|
+
layer: fragment.layer?.label,
|
|
79
|
+
trust: fragment.trust,
|
|
80
|
+
});
|
|
81
|
+
const compositionProvenance = (plan) => {
|
|
82
|
+
const ordered = [
|
|
83
|
+
{ role: 'system_prompt', fragment: plan.identity.systemPromptFragment },
|
|
84
|
+
{ role: 'shared_context', fragment: plan.identity.sharedContextFragment },
|
|
85
|
+
...plan.identity.appendSystemPrompts.map((fragment) => ({
|
|
86
|
+
role: 'append_system_prompt',
|
|
87
|
+
fragment,
|
|
88
|
+
})),
|
|
89
|
+
...plan.identity.agentBodies.map((fragment) => ({ role: 'agent_body', fragment })),
|
|
90
|
+
];
|
|
91
|
+
return {
|
|
92
|
+
agent: plan.agent,
|
|
93
|
+
inheritanceChain: plan.inheritanceChain,
|
|
94
|
+
prompts: ordered
|
|
95
|
+
.filter((entry) => entry.fragment !== undefined)
|
|
96
|
+
.map((entry, order) => ({ order, role: entry.role, ...fragmentProvenance(entry.fragment) })),
|
|
97
|
+
promptTemplate: plan.identity.promptTemplate === undefined ? undefined : fragmentProvenance(plan.identity.promptTemplate),
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
const collectPromptFiles = (plan, promptFiles, errors) => {
|
|
101
|
+
const fragments = [
|
|
102
|
+
plan.identity.systemPromptFragment,
|
|
103
|
+
plan.identity.promptTemplate,
|
|
104
|
+
...plan.identity.appendSystemPrompts,
|
|
105
|
+
];
|
|
106
|
+
for (const fragment of fragments) {
|
|
107
|
+
if (fragment?.kind === 'file' && fragment.reference !== undefined) {
|
|
108
|
+
const existing = promptFiles.get(fragment.reference);
|
|
109
|
+
if (existing !== undefined && existing !== fragment.content) {
|
|
110
|
+
errors.push(`dump closure resolves conflicting contents for prompt file '${fragment.reference}' and cannot flatten both.`);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
promptFiles.set(fragment.reference, fragment.content);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const collectSkills = (selected, skills, errors) => {
|
|
119
|
+
for (const skill of selected) {
|
|
120
|
+
const existing = skills.get(skill.slug);
|
|
121
|
+
if (existing !== undefined && existing.winner.path !== skill.winner.path) {
|
|
122
|
+
errors.push(`dump closure resolves conflicting definitions for skill '${skill.slug}' and cannot flatten both.`);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
skills.set(skill.slug, skill);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
/** BFS over the selected agent and its delegated-agent closure. */
|
|
130
|
+
const composeClosure = (set, rootSlug, projectDirectory) => {
|
|
69
131
|
const seen = new Set();
|
|
70
132
|
const agents = [];
|
|
71
133
|
const skills = new Map();
|
|
72
134
|
const warnings = [];
|
|
73
135
|
const errors = [];
|
|
136
|
+
const promptFiles = new Map();
|
|
137
|
+
const provenance = [];
|
|
74
138
|
const queue = [rootSlug];
|
|
75
139
|
while (queue.length > 0) {
|
|
76
140
|
const slug = queue.shift();
|
|
@@ -80,27 +144,26 @@ const composeClosure = (set, rootSlug) => {
|
|
|
80
144
|
seen.add(slug);
|
|
81
145
|
// compose surfaces an unknown/invalid root agent as an error; every queued subagent is already
|
|
82
146
|
// resolved by the composer, so a plan implies findResource returns the agent.
|
|
83
|
-
const composed = compose(set, slug);
|
|
147
|
+
const composed = compose(set, slug, { projectDirectory });
|
|
84
148
|
if (composed.plan === undefined) {
|
|
85
149
|
errors.push(...composed.errors);
|
|
150
|
+
warnings.push(...composed.warnings);
|
|
86
151
|
continue;
|
|
87
152
|
}
|
|
88
|
-
|
|
153
|
+
collectContributingAgents(set, composed.plan.inheritanceChain, agents);
|
|
154
|
+
provenance.push(compositionProvenance(composed.plan));
|
|
89
155
|
warnings.push(...composed.plan.warnings);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (existing !== undefined && existing.winner.path !== skill.winner.path) {
|
|
93
|
-
errors.push(`dump closure resolves conflicting definitions for skill '${skill.slug}' and cannot flatten both.`);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
skills.set(skill.slug, skill);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
156
|
+
collectPromptFiles(composed.plan, promptFiles, errors);
|
|
157
|
+
collectSkills(composed.plan.loadout.skills, skills, errors);
|
|
99
158
|
queue.push(...composed.plan.loadout.subagents.map((subagent) => subagent.slug).sort(compareSlugs));
|
|
100
159
|
}
|
|
101
160
|
return {
|
|
102
161
|
agents,
|
|
103
162
|
skills: [...skills.values()].sort((left, right) => compareSlugs(left.slug, right.slug)),
|
|
163
|
+
promptFiles: [...promptFiles.entries()]
|
|
164
|
+
.map(([reference, content]) => ({ reference, content }))
|
|
165
|
+
.sort((left, right) => compareSlugs(left.reference, right.reference)),
|
|
166
|
+
provenance,
|
|
104
167
|
warnings,
|
|
105
168
|
errors,
|
|
106
169
|
};
|
|
@@ -127,7 +190,7 @@ const overlapError = (outRoot, layers) => {
|
|
|
127
190
|
: `dump output ${outRoot} overlaps source layer '${clash.label}'; choose an --out outside the tree.`;
|
|
128
191
|
};
|
|
129
192
|
const writeMergedConfig = (agent, agentTarget, written) => {
|
|
130
|
-
const mergedConfig = mergeEffectiveConfig(agent.configPaths
|
|
193
|
+
const mergedConfig = mergeEffectiveConfig(agent.configPaths);
|
|
131
194
|
if (Object.keys(mergedConfig).length > 0) {
|
|
132
195
|
const configTarget = join(agentTarget, 'config.json');
|
|
133
196
|
mkdirSync(agentTarget, { recursive: true });
|
|
@@ -140,10 +203,23 @@ const failure = (errors, warnings = []) => ({
|
|
|
140
203
|
warnings,
|
|
141
204
|
errors,
|
|
142
205
|
});
|
|
206
|
+
const promptTargetCollisions = (outRoot, prompts) => {
|
|
207
|
+
const errors = [];
|
|
208
|
+
for (const prompt of prompts) {
|
|
209
|
+
const target = join(outRoot, prompt.reference);
|
|
210
|
+
if (!existsSync(target))
|
|
211
|
+
continue;
|
|
212
|
+
const matches = lstatSync(target).isFile() && readFileSync(target, 'utf8') === prompt.content;
|
|
213
|
+
if (!matches) {
|
|
214
|
+
errors.push(`dump prompt file '${prompt.reference}' conflicts with another flattened file.`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return errors;
|
|
218
|
+
};
|
|
143
219
|
/** Writes the composed closure of `agentSlug` into a freshly cleaned `<outDirectory>/.agents/`. */
|
|
144
|
-
export const dumpAgent = (set, agentSlug, outDirectory) => {
|
|
220
|
+
export const dumpAgent = (set, agentSlug, outDirectory, projectDirectory) => {
|
|
145
221
|
// composeClosure composes the root once and surfaces an unknown/invalid root agent as an error.
|
|
146
|
-
const closure = composeClosure(set, agentSlug);
|
|
222
|
+
const closure = composeClosure(set, agentSlug, projectDirectory);
|
|
147
223
|
if (closure.errors.length > 0) {
|
|
148
224
|
return failure(closure.errors, closure.warnings);
|
|
149
225
|
}
|
|
@@ -164,19 +240,34 @@ export const dumpAgent = (set, agentSlug, outDirectory) => {
|
|
|
164
240
|
if (rootErrors.length > 0) {
|
|
165
241
|
return failure(rootErrors, closure.warnings);
|
|
166
242
|
}
|
|
243
|
+
const provenanceTarget = join(outRoot, '.outfitter', 'composition.json');
|
|
244
|
+
mkdirSync(dirname(provenanceTarget), { recursive: true });
|
|
245
|
+
writeFileSync(provenanceTarget, `${JSON.stringify({ version: 1, compositions: closure.provenance }, null, 2)}\n`);
|
|
246
|
+
written.push(provenanceTarget);
|
|
167
247
|
for (const agent of closure.agents) {
|
|
168
248
|
const agentTarget = join(outRoot, 'agents', agent.slug);
|
|
169
249
|
// Local resources are flattened below so the dumped tree is directly consumable by harnesses.
|
|
170
250
|
copyResourceDirectory(dirname(agent.winner.path), agentTarget, written, ['config.json', 'skills', 'pi']);
|
|
171
251
|
writeMergedConfig(agent, agentTarget, written);
|
|
172
252
|
// Overlay each layer's pi config into a single `pi/` dir, highest precedence last so it wins.
|
|
173
|
-
for (const piConfigDirectory of [...
|
|
253
|
+
for (const piConfigDirectory of [...agent.piConfigDirectories].reverse()) {
|
|
174
254
|
copyResourceDirectory(piConfigDirectory, join(agentTarget, 'pi'), written);
|
|
175
255
|
}
|
|
176
256
|
}
|
|
177
257
|
for (const skill of closure.skills) {
|
|
178
258
|
copyResourceDirectory(dirname(skill.winner.path), join(outRoot, 'skills', skill.slug), written);
|
|
179
259
|
}
|
|
260
|
+
const promptCollisions = promptTargetCollisions(outRoot, closure.promptFiles);
|
|
261
|
+
if (promptCollisions.length > 0) {
|
|
262
|
+
rmSync(outRoot, { recursive: true, force: true });
|
|
263
|
+
return failure(promptCollisions, closure.warnings);
|
|
264
|
+
}
|
|
265
|
+
for (const prompt of closure.promptFiles) {
|
|
266
|
+
const target = join(outRoot, prompt.reference);
|
|
267
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
268
|
+
writeFileSync(target, prompt.content);
|
|
269
|
+
written.push(target);
|
|
270
|
+
}
|
|
180
271
|
return { writtenPaths: [...new Set(written)].sort(compareSlugs), warnings: closure.warnings, errors: [] };
|
|
181
272
|
};
|
|
182
273
|
//# sourceMappingURL=Dump.js.map
|
package/dist/dump/Dump.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dump.js","sourceRoot":"","sources":["../../src/dump/Dump.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dump.js","sourceRoot":"","sources":["../../src/dump/Dump.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ1D,6FAA6F;AAC7F,MAAM,aAAa,GAAG,CAAC,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;AAE5F,MAAM,UAAU,GAAG,CAAC,GAAyB,EAAqB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE3G,8FAA8F;AAC9F,MAAM,qBAAqB,GAAG,CAC5B,SAAiB,EACjB,SAAiB,EACjB,OAAiB,EACjB,eAAkC,EAAE,EAC9B,EAAE;IACR,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7G,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,wBAAwB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAClD,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,qGAAqG;AACrG,MAAM,oBAAoB,GAAG,CAAC,WAA8B,EAA2B,EAAE;IACvF,IAAI,MAAM,GAA4B,EAAE,CAAC;IAEzC,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;QACvF,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,0GAA0G;AAC1G,MAAM,cAAc,GAAG,CAAC,GAAyB,EAAE,OAAe,EAAE,OAAiB,EAAqB,EAAE;IAC1G,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,0DAA0D,CAAC,CAAC;YAC9F,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA4BF,MAAM,yBAAyB,GAAG,CAChC,GAAyB,EACzB,KAAwB,EACxB,MAA0B,EACpB,EAAE;IACR,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,QAAwB,EAA4C,EAAE,CAAC,CAAC;IAClG,IAAI,EAAE,QAAQ,CAAC,IAAI;IACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;IAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc;IACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK;IAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;CACtB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,IAAqB,EAAyB,EAAE;IAC7E,MAAM,OAAO,GAA+F;QAC1G,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;QACvE,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;QACzE,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,EAAE,sBAA+B;YACrC,QAAQ;SACT,CAAC,CAAC;QACH,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC7F,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAiB;QACxC,OAAO,EAAE,OAAO;aACb,MAAM,CACL,CAAC,KAAK,EAA2F,EAAE,CACjG,KAAK,CAAC,QAAQ,KAAK,SAAS,CAC/B;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9F,cAAc,EACZ,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;KAC5G,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAE,WAAgC,EAAE,MAAgB,EAAQ,EAAE;IAC7G,MAAM,SAAS,GAAG;QAChB,IAAI,CAAC,QAAQ,CAAC,oBAAoB;QAClC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAC5B,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAoB;KACtC,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CACT,+DAA+D,QAAQ,CAAC,SAAS,4BAA4B,CAC9G,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,QAAqC,EACrC,MAAqC,EACrC,MAAgB,EACV,EAAE;IACR,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,4DAA4D,KAAK,CAAC,IAAI,4BAA4B,CAAC,CAAC;QAClH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,mEAAmE;AACnE,MAAM,cAAc,GAAG,CAAC,GAAyB,EAAE,QAAgB,EAAE,gBAAyB,EAAkB,EAAE;IAChH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEzB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAE5B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,+FAA+F;QAC/F,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAiB,EAAE,MAAM,CAAC,CAAC;QACxE,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,OAAO;QACL,MAAM;QACN,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvF,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;aACvD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvE,UAAU;QACV,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAuB,EAA+B,EAAE,CAAC;IACjF,GAAG,OAAO,CAAC,MAAM;IACjB,GAAG,OAAO,CAAC,MAAM;CAClB,CAAC;AAEF,gGAAgG;AAChG,MAAM,iBAAiB,GAAG,CAAC,SAAsC,EAAE,KAAwB,EAAqB,EAAE;IAChH,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/G,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,0DAA0D,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,MAAwB,EAAsB,EAAE;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,OAAO,2BAA2B,KAAK,CAAC,KAAK,sCAAsC,CAAC;AACzG,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAuB,EAAE,WAAmB,EAAE,OAAiB,EAAQ,EAAE;IAClG,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAY,CAAC,CAAC;IAE9D,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACtD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,aAAa,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAyB,EAAE,WAA8B,EAAE,EAAc,EAAE,CAAC,CAAC;IAC5F,YAAY,EAAE,EAAE;IAChB,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,OAAsC,EAAqB,EAAE;IAC5G,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAElC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC;QAC9F,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,SAAS,0CAA0C,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAyB,EACzB,SAAiB,EACjB,YAAoB,EACpB,gBAAyB,EACb,EAAE;IACd,gGAAgG;IAChG,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,kDAAkD;IACrG,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACzE,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClH,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,8FAA8F;QAC9F,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzG,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,8FAA8F;QAC9F,KAAK,MAAM,iBAAiB,IAAI,CAAC,GAAG,KAAK,CAAC,mBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1E,qBAAqB,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAC5G,CAAC,CAAC"}
|
|
@@ -18,9 +18,5 @@ export interface MaterializedComposition {
|
|
|
18
18
|
* roots and entries are skipped so a catalog cannot make projection read outside its layer.
|
|
19
19
|
*/
|
|
20
20
|
export declare const materializeConfigurationOverlays: (sourceDirectories: readonly string[], rootDirectory: string) => void;
|
|
21
|
-
/**
|
|
22
|
-
* Writes the composed identity, skills, subagents, and selected MCP servers into
|
|
23
|
-
* `rootDirectory`. The base `system-prompt.md` becomes the system prompt; shared `agents.md`
|
|
24
|
-
* context and the agent body are appended in order.
|
|
25
|
-
*/
|
|
21
|
+
/** Writes composed identity, skills, subagents, and selected MCP servers into the runtime root. */
|
|
26
22
|
export declare const materializeComposition: (composition: CompositionPlan, rootDirectory: string) => MaterializedComposition;
|
|
@@ -27,6 +27,7 @@ const writeGeneratedFile = (path, content) => {
|
|
|
27
27
|
removeTargetTypeConflict(path, 'file');
|
|
28
28
|
writeFileSync(path, content);
|
|
29
29
|
};
|
|
30
|
+
const safeName = (value) => value.replace(/[^a-zA-Z0-9._-]+/g, '-');
|
|
30
31
|
/**
|
|
31
32
|
* Overlays native harness configuration into the runtime root. Inputs arrive highest precedence
|
|
32
33
|
* first, so copying in reverse order lets higher layers replace matching files. Symlinked overlay
|
|
@@ -85,7 +86,30 @@ const serializeSubagent = (subagent) => {
|
|
|
85
86
|
];
|
|
86
87
|
return `---\n${frontmatter.join('\n')}\n---\n\n${definition.body}`;
|
|
87
88
|
};
|
|
88
|
-
const
|
|
89
|
+
const composedSubagentBody = (subagent) => [
|
|
90
|
+
subagent.identity.systemPrompt,
|
|
91
|
+
subagent.identity.sharedContext,
|
|
92
|
+
...subagent.identity.appendSystemPrompts.map((fragment) => fragment.content),
|
|
93
|
+
...subagent.identity.agentBodies.map((fragment) => fragment.content),
|
|
94
|
+
]
|
|
95
|
+
.filter((fragment) => fragment !== undefined && fragment.length > 0)
|
|
96
|
+
.join('\n\n');
|
|
97
|
+
const serializeComposedSubagent = (subagent) => {
|
|
98
|
+
const denied = new Set(subagent.tools?.deny ?? []);
|
|
99
|
+
const tools = subagent.tools?.allow?.filter((tool) => !denied.has(tool));
|
|
100
|
+
const description = subagent.identity.description ?? subagent.identity.label;
|
|
101
|
+
const frontmatter = [
|
|
102
|
+
`name: ${JSON.stringify(subagent.resource.slug)}`,
|
|
103
|
+
`description: ${JSON.stringify(description ?? `Delegated ${subagent.resource.slug} agent.`)}`,
|
|
104
|
+
...optionalScalar('model', subagent.model),
|
|
105
|
+
...optionalScalar('thinking', subagent.thinking),
|
|
106
|
+
...optionalList('tools', tools ?? []),
|
|
107
|
+
...optionalList('skills', subagent.skills.map((skill) => skill.slug)),
|
|
108
|
+
...optionalList('extensions', subagent.extensions),
|
|
109
|
+
];
|
|
110
|
+
return `---\n${frontmatter.join('\n')}\n---\n\n${composedSubagentBody(subagent)}`;
|
|
111
|
+
};
|
|
112
|
+
const materializeSubagents = (subagents, composedSubagents, rootDirectory) => {
|
|
89
113
|
if (subagents.length === 0) {
|
|
90
114
|
return [];
|
|
91
115
|
}
|
|
@@ -93,8 +117,10 @@ const materializeSubagents = (subagents, rootDirectory) => {
|
|
|
93
117
|
rmSync(agentsDirectory, { recursive: true, force: true });
|
|
94
118
|
mkdirSync(agentsDirectory, { recursive: true });
|
|
95
119
|
const skipped = [];
|
|
120
|
+
const composedBySlug = new Map((composedSubagents ?? []).map((subagent) => [subagent.resource.slug, subagent]));
|
|
96
121
|
for (const subagent of subagents) {
|
|
97
|
-
const
|
|
122
|
+
const composed = composedBySlug.get(subagent.slug);
|
|
123
|
+
const content = composed === undefined ? serializeSubagent(subagent) : serializeComposedSubagent(composed);
|
|
98
124
|
if (content === undefined) {
|
|
99
125
|
skipped.push(subagent.slug);
|
|
100
126
|
}
|
|
@@ -104,13 +130,7 @@ const materializeSubagents = (subagents, rootDirectory) => {
|
|
|
104
130
|
}
|
|
105
131
|
return skipped;
|
|
106
132
|
};
|
|
107
|
-
|
|
108
|
-
* Writes the composed identity, skills, subagents, and selected MCP servers into
|
|
109
|
-
* `rootDirectory`. The base `system-prompt.md` becomes the system prompt; shared `agents.md`
|
|
110
|
-
* context and the agent body are appended in order.
|
|
111
|
-
*/
|
|
112
|
-
export const materializeComposition = (composition, rootDirectory) => {
|
|
113
|
-
mkdirSync(rootDirectory, { recursive: true });
|
|
133
|
+
const materializeIdentity = (composition, rootDirectory) => {
|
|
114
134
|
const systemPromptPath = join(rootDirectory, 'system-prompt.md');
|
|
115
135
|
writeGeneratedFile(systemPromptPath, composition.identity.systemPrompt ?? '');
|
|
116
136
|
const appendPromptPaths = [];
|
|
@@ -119,9 +139,33 @@ export const materializeComposition = (composition, rootDirectory) => {
|
|
|
119
139
|
writeGeneratedFile(contextPath, composition.identity.sharedContext);
|
|
120
140
|
appendPromptPaths.push(contextPath);
|
|
121
141
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
142
|
+
(composition.identity.appendSystemPrompts ?? []).forEach((fragment, index) => {
|
|
143
|
+
const name = `append-${String(index + 1).padStart(2, '0')}-${safeName(fragment.label)}.md`;
|
|
144
|
+
writeGeneratedFile(join(rootDirectory, name), fragment.content);
|
|
145
|
+
appendPromptPaths.push(join(rootDirectory, name));
|
|
146
|
+
});
|
|
147
|
+
const bodies = composition.identity.agentBodies ?? [];
|
|
148
|
+
if (bodies.length <= 1) {
|
|
149
|
+
const path = join(rootDirectory, 'agent.md');
|
|
150
|
+
writeGeneratedFile(path, bodies[0]?.content ?? composition.identity.agentBody);
|
|
151
|
+
appendPromptPaths.push(path);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
bodies.forEach((fragment, index) => {
|
|
155
|
+
const name = `${String(index + 1).padStart(2, '0')}-${safeName(fragment.label)}.md`;
|
|
156
|
+
writeGeneratedFile(join(rootDirectory, name), fragment.content);
|
|
157
|
+
appendPromptPaths.push(join(rootDirectory, name));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (composition.identity.promptTemplate !== undefined) {
|
|
161
|
+
writeGeneratedFile(join(rootDirectory, 'prompt-template.md'), composition.identity.promptTemplate.content);
|
|
162
|
+
}
|
|
163
|
+
return { systemPromptPath, appendPromptPaths };
|
|
164
|
+
};
|
|
165
|
+
/** Writes composed identity, skills, subagents, and selected MCP servers into the runtime root. */
|
|
166
|
+
export const materializeComposition = (composition, rootDirectory) => {
|
|
167
|
+
mkdirSync(rootDirectory, { recursive: true });
|
|
168
|
+
const { systemPromptPath, appendPromptPaths } = materializeIdentity(composition, rootDirectory);
|
|
125
169
|
const skillDirectories = [];
|
|
126
170
|
const skippedSkills = [];
|
|
127
171
|
for (const skill of [...composition.loadout.skills, ...composition.loadout.delegateSkills]) {
|
|
@@ -133,7 +177,7 @@ export const materializeComposition = (composition, rootDirectory) => {
|
|
|
133
177
|
skillDirectories.push(materialized);
|
|
134
178
|
}
|
|
135
179
|
}
|
|
136
|
-
const skippedSubagents = materializeSubagents(composition.loadout.subagents, rootDirectory);
|
|
180
|
+
const skippedSubagents = materializeSubagents(composition.loadout.subagents, composition.loadout.composedSubagents, rootDirectory);
|
|
137
181
|
if (composition.loadout.mcp.length > 0) {
|
|
138
182
|
writeGeneratedFile(join(rootDirectory, 'mcp.json'), `${JSON.stringify({ mcpServers: composition.loadout.mcpServers }, null, 2)}\n`);
|
|
139
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Materialize.js","sourceRoot":"","sources":["../../src/projection/Materialize.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAiB7F,8FAA8F;AAC9F,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAQ,EAAE;IACnE,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACjD,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE;IACjE,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,iBAAoC,EAAE,aAAqB,EAAQ,EAAE;IACpH,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,KAAK,MAAM,eAAe,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/D,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC,cAAc,EAAE;YAAE,SAAS;QAC1D,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAuB,EAAE,aAAqB,EAAsB,EAAE;IAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7C,oFAAoF;IACpF,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAyB,EAAqB,EAAE,CACpF,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEnE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAyB,EAAqB,EAAE,CAClF,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/E,MAAM,oBAAoB,GAAG,CAAC,QAA0B,EAAW,EAAE;IACnE,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;QAC1B,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC;KACrC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,QAA0B,EAA+B,EAAE;IAC9F,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEnF,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC1G,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,QAA0B,EAAsB,EAAE;IAC3E,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAEzD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG;QAClB,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACxC,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,KAAK,IAAI,aAAa,QAAQ,CAAC,IAAI,SAAS,CAAC,EAAE;QACnH,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QACpD,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1D,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACrC,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;QACpD,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;KAC7D,CAAC;IAEF,OAAO,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Materialize.js","sourceRoot":"","sources":["../../src/projection/Materialize.ts"],"names":[],"mappings":"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"}
|