@productbrain/cli 0.1.0-beta.20 → 0.1.0-beta.26
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/__tests__/adapters.test.d.ts +2 -0
- package/dist/__tests__/adapters.test.d.ts.map +1 -0
- package/dist/__tests__/adapters.test.js +417 -0
- package/dist/__tests__/adapters.test.js.map +1 -0
- package/dist/__tests__/batch-transformations.test.d.ts +2 -0
- package/dist/__tests__/batch-transformations.test.d.ts.map +1 -0
- package/dist/__tests__/batch-transformations.test.js +263 -0
- package/dist/__tests__/batch-transformations.test.js.map +1 -0
- package/dist/__tests__/surface-profiles.test.d.ts +2 -0
- package/dist/__tests__/surface-profiles.test.d.ts.map +1 -0
- package/dist/__tests__/surface-profiles.test.js +233 -0
- package/dist/__tests__/surface-profiles.test.js.map +1 -0
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +4 -0
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +53 -7
- package/dist/commands/handshake.js.map +1 -1
- package/dist/formatters/capture.d.ts +18 -0
- package/dist/formatters/capture.d.ts.map +1 -1
- package/dist/formatters/capture.js +18 -0
- package/dist/formatters/capture.js.map +1 -1
- package/dist/generators/__tests__/surface-profiles.test.d.ts +2 -0
- package/dist/generators/__tests__/surface-profiles.test.d.ts.map +1 -0
- package/dist/generators/__tests__/surface-profiles.test.js +89 -0
- package/dist/generators/__tests__/surface-profiles.test.js.map +1 -0
- package/dist/generators/adapters.d.ts +37 -4
- package/dist/generators/adapters.d.ts.map +1 -1
- package/dist/generators/adapters.js +147 -7
- package/dist/generators/adapters.js.map +1 -1
- package/dist/generators/portable-knowledge.d.ts +23 -5
- package/dist/generators/portable-knowledge.d.ts.map +1 -1
- package/dist/generators/portable-knowledge.js +54 -6
- package/dist/generators/portable-knowledge.js.map +1 -1
- package/dist/generators/surface-profiles.d.ts +49 -0
- package/dist/generators/surface-profiles.d.ts.map +1 -0
- package/dist/generators/surface-profiles.js +98 -0
- package/dist/generators/surface-profiles.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,7 +4,43 @@
|
|
|
4
4
|
*/
|
|
5
5
|
const MARKER = 'auto-generated by pb handshake';
|
|
6
6
|
export { MARKER };
|
|
7
|
-
export function generateAgentsMd(timestamp) {
|
|
7
|
+
export function generateAgentsMd(timestamp, options) {
|
|
8
|
+
const { workspaceContext, skills } = options ?? {};
|
|
9
|
+
// Workspace context section (only when data is available)
|
|
10
|
+
let workspaceSection = '';
|
|
11
|
+
if (workspaceContext && Object.values(workspaceContext).some((v) => v !== undefined)) {
|
|
12
|
+
const rows = [];
|
|
13
|
+
if (workspaceContext.stage !== undefined)
|
|
14
|
+
rows.push(`| Stage | \`${workspaceContext.stage}\` |`);
|
|
15
|
+
if (workspaceContext.focus !== undefined)
|
|
16
|
+
rows.push(`| Current focus | ${workspaceContext.focus} |`);
|
|
17
|
+
if (workspaceContext.governanceMode !== undefined)
|
|
18
|
+
rows.push(`| Governance mode | \`${workspaceContext.governanceMode}\` |`);
|
|
19
|
+
if (workspaceContext.totalEntries !== undefined)
|
|
20
|
+
rows.push(`| Chain entries | ${workspaceContext.totalEntries} |`);
|
|
21
|
+
workspaceSection = `
|
|
22
|
+
## Workspace Context
|
|
23
|
+
|
|
24
|
+
| Field | Value |
|
|
25
|
+
|-------|-------|
|
|
26
|
+
${rows.join('\n')}
|
|
27
|
+
`;
|
|
28
|
+
}
|
|
29
|
+
// Skill directory section (only when skills provided and non-empty)
|
|
30
|
+
let skillsSection = '';
|
|
31
|
+
if (skills && skills.length > 0) {
|
|
32
|
+
const rows = skills.map((s) => {
|
|
33
|
+
const triggers = s.triggers && s.triggers.length > 0 ? s.triggers.slice(0, 3).join(', ') : '—';
|
|
34
|
+
return `| \`${s.name}\` | ${s.description} | ${triggers} |`;
|
|
35
|
+
});
|
|
36
|
+
skillsSection = `
|
|
37
|
+
## Skill Directory
|
|
38
|
+
|
|
39
|
+
| Skill | Description | Triggers |
|
|
40
|
+
|-------|-------------|----------|
|
|
41
|
+
${rows.join('\n')}
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
8
44
|
return `<!-- ${MARKER} — ${timestamp} -->
|
|
9
45
|
<!-- Re-run \`pb handshake\` to refresh. Do not edit manually. -->
|
|
10
46
|
|
|
@@ -13,7 +49,7 @@ export function generateAgentsMd(timestamp) {
|
|
|
13
49
|
Read \`.productbrain/context.md\` for full workspace briefing (stage, bets, governance, tensions).
|
|
14
50
|
Read \`.productbrain/briefing.md\` for entries matched to this repo.
|
|
15
51
|
Read \`.productbrain/soul.md\` when identity, working style, or collaboration preferences matter.
|
|
16
|
-
|
|
52
|
+
${workspaceSection}
|
|
17
53
|
## The Chain is the SSOT. Use \`pb\` before everything.
|
|
18
54
|
|
|
19
55
|
| Command | Purpose |
|
|
@@ -44,9 +80,13 @@ pb capture "INS: learned that X"
|
|
|
44
80
|
Close with \`pb session close\` — reviews what was captured, refreshes context for the next session.
|
|
45
81
|
|
|
46
82
|
All captures are drafts. The human reviews and commits in Product Brain Studio.
|
|
83
|
+
${skillsSection}
|
|
84
|
+
## Governance Summary
|
|
85
|
+
|
|
86
|
+
This workspace uses Product Brain governance. Decisions, standards, and tensions are tracked on the Chain. Use \`pb orient -b\` for current focus.
|
|
47
87
|
`;
|
|
48
88
|
}
|
|
49
|
-
export function generateClaudeMd(timestamp) {
|
|
89
|
+
export function generateClaudeMd(timestamp, profile) {
|
|
50
90
|
return `<!-- ${MARKER} — ${timestamp} -->
|
|
51
91
|
<!-- Re-run \`pb handshake\` to refresh. Do not edit manually. -->
|
|
52
92
|
|
|
@@ -85,7 +125,7 @@ Close with \`pb session close\` — reviews what was captured, refreshes context
|
|
|
85
125
|
All captures are drafts. The human reviews and commits in Product Brain Studio.
|
|
86
126
|
`;
|
|
87
127
|
}
|
|
88
|
-
export function generateCursorMdc(timestamp) {
|
|
128
|
+
export function generateCursorMdc(timestamp, profile) {
|
|
89
129
|
return `---
|
|
90
130
|
description: Product Brain Chain context — workspace knowledge for AI-assisted development
|
|
91
131
|
globs:
|
|
@@ -120,15 +160,38 @@ Close with \`pb session close\`. All captures are drafts — human reviews and c
|
|
|
120
160
|
<!-- ${MARKER} — ${timestamp} -->
|
|
121
161
|
`;
|
|
122
162
|
}
|
|
123
|
-
export function generateCopilotMd(timestamp) {
|
|
124
|
-
|
|
163
|
+
export function generateCopilotMd(timestamp, options) {
|
|
164
|
+
const { profile, workspaceContext, skills, rules } = options ?? {};
|
|
165
|
+
const budget = profile?.tokenBudget ?? 30000;
|
|
166
|
+
// Workspace context section (only when data is available)
|
|
167
|
+
let workspaceSection = '';
|
|
168
|
+
if (workspaceContext && Object.values(workspaceContext).some((v) => v !== undefined)) {
|
|
169
|
+
const rows = [];
|
|
170
|
+
if (workspaceContext.stage !== undefined)
|
|
171
|
+
rows.push(`| Stage | \`${workspaceContext.stage}\` |`);
|
|
172
|
+
if (workspaceContext.focus !== undefined)
|
|
173
|
+
rows.push(`| Current focus | ${workspaceContext.focus} |`);
|
|
174
|
+
if (workspaceContext.governanceMode !== undefined)
|
|
175
|
+
rows.push(`| Governance mode | \`${workspaceContext.governanceMode}\` |`);
|
|
176
|
+
if (workspaceContext.totalEntries !== undefined)
|
|
177
|
+
rows.push(`| Chain entries | ${workspaceContext.totalEntries} |`);
|
|
178
|
+
workspaceSection = `
|
|
179
|
+
## Workspace Context
|
|
180
|
+
|
|
181
|
+
| Field | Value |
|
|
182
|
+
|-------|-------|
|
|
183
|
+
${rows.join('\n')}
|
|
184
|
+
`;
|
|
185
|
+
}
|
|
186
|
+
// Build the invariant base (header + workspace + command ref + session lifecycle)
|
|
187
|
+
const base = `<!-- ${MARKER} — ${timestamp} -->
|
|
125
188
|
<!-- Re-run \`pb handshake\` to refresh. Do not edit manually. -->
|
|
126
189
|
|
|
127
190
|
# Product Brain Context
|
|
128
191
|
|
|
129
192
|
Read \`.productbrain/context.md\` for full workspace briefing (stage, bets, governance, tensions).
|
|
130
193
|
Read \`.productbrain/briefing.md\` for entries matched to this repo.
|
|
131
|
-
|
|
194
|
+
${workspaceSection}
|
|
132
195
|
## The Chain is the SSOT. Use \`pb\` before everything.
|
|
133
196
|
|
|
134
197
|
- \`pb orient -b\` — Current workspace focus
|
|
@@ -146,5 +209,82 @@ Before substantive implementation, review, diagnosis, or security-sensitive reas
|
|
|
146
209
|
Start with \`pb session start\`. Capture knowledge during work with \`pb capture "text"\`.
|
|
147
210
|
Close with \`pb session close\`. All captures are drafts — human reviews and commits.
|
|
148
211
|
`;
|
|
212
|
+
// When no enrichment options provided, return base for backward compat
|
|
213
|
+
if (!skills?.length && !rules?.length) {
|
|
214
|
+
return base;
|
|
215
|
+
}
|
|
216
|
+
// Build skill summaries and rule summaries as independent chunks
|
|
217
|
+
// so we can truncate from the end if needed
|
|
218
|
+
const skillChunks = [];
|
|
219
|
+
if (skills && skills.length > 0) {
|
|
220
|
+
skillChunks.push('\n## Skills\n');
|
|
221
|
+
for (const s of skills) {
|
|
222
|
+
let chunk = `\n### ${s.name}\n${s.description}\n`;
|
|
223
|
+
if (s.triggers && s.triggers.length > 0) {
|
|
224
|
+
chunk += `Triggers: ${s.triggers.slice(0, 3).join(', ')}\n`;
|
|
225
|
+
}
|
|
226
|
+
skillChunks.push(chunk);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const ruleChunks = [];
|
|
230
|
+
if (rules && rules.length > 0) {
|
|
231
|
+
ruleChunks.push('\n## Rules\n');
|
|
232
|
+
for (const r of rules) {
|
|
233
|
+
ruleChunks.push(`\n### ${r.name}\n${r.description}\n`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// All appendable chunks: skill section header + individual skills, then rule section header + individual rules
|
|
237
|
+
const allChunks = [...skillChunks, ...ruleChunks];
|
|
238
|
+
// Greedily append chunks while staying within budget
|
|
239
|
+
let result = base;
|
|
240
|
+
let omittedCount = 0;
|
|
241
|
+
const truncationNote = (n) => `\n<!-- Truncated: ${n} skills/rules omitted to stay within token budget -->\n`;
|
|
242
|
+
// Check if base already exceeds budget (rare, but handle gracefully)
|
|
243
|
+
if (base.length >= budget) {
|
|
244
|
+
return base;
|
|
245
|
+
}
|
|
246
|
+
// We need to find how many chunks fit. Reserve space for a truncation note if needed.
|
|
247
|
+
const allChunksText = allChunks.join('');
|
|
248
|
+
if (base.length + allChunksText.length <= budget) {
|
|
249
|
+
// Everything fits — no truncation needed
|
|
250
|
+
return base + allChunksText;
|
|
251
|
+
}
|
|
252
|
+
// Need to truncate. Greedy approach: keep adding chunks while they fit,
|
|
253
|
+
// always reserving space for the worst-case truncation note.
|
|
254
|
+
const isHeader = (c) => c.trimStart().startsWith('## ');
|
|
255
|
+
const itemCount = allChunks.filter((c) => !isHeader(c)).length;
|
|
256
|
+
// Worst-case note reserves for the maximum possible omission count
|
|
257
|
+
const worstCaseNoteLen = truncationNote(itemCount).length;
|
|
258
|
+
let accumulated = base;
|
|
259
|
+
let fittedItemCount = 0;
|
|
260
|
+
for (let i = 0; i < allChunks.length; i++) {
|
|
261
|
+
const chunk = allChunks[i];
|
|
262
|
+
const remaining = allChunks.slice(i + 1).join('');
|
|
263
|
+
// If everything from here fits without any note, append and done
|
|
264
|
+
if (accumulated.length + chunk.length + remaining.length <= budget) {
|
|
265
|
+
accumulated += allChunks.slice(i).join('');
|
|
266
|
+
fittedItemCount = itemCount;
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
// Does this chunk fit if we reserve space for the worst-case note?
|
|
270
|
+
if (accumulated.length + chunk.length + worstCaseNoteLen <= budget) {
|
|
271
|
+
accumulated += chunk;
|
|
272
|
+
if (!isHeader(chunk))
|
|
273
|
+
fittedItemCount++;
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
omittedCount = itemCount - fittedItemCount;
|
|
280
|
+
if (omittedCount > 0) {
|
|
281
|
+
const note = truncationNote(omittedCount);
|
|
282
|
+
// Only append the note if it fits within budget; if the base alone
|
|
283
|
+
// nearly fills the budget, omit the note to honour the hard cap.
|
|
284
|
+
if (accumulated.length + note.length <= budget) {
|
|
285
|
+
accumulated += note;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return accumulated;
|
|
149
289
|
}
|
|
150
290
|
//# sourceMappingURL=adapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/generators/adapters.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/generators/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Portable knowledge — reads canonical skills/rules from .productbrain/
|
|
3
3
|
* and generates tool-specific copies for Cursor, Claude Code, etc.
|
|
4
4
|
*/
|
|
5
|
+
import type { SurfaceProfile } from './surface-profiles.js';
|
|
5
6
|
export interface WhenConditions {
|
|
6
7
|
when_stack?: string;
|
|
7
8
|
when_minStage?: string;
|
|
@@ -86,17 +87,34 @@ export declare function stripTransportSections(body: string, target: TargetName)
|
|
|
86
87
|
* Generate a Cursor SKILL.md from a canonical skill.
|
|
87
88
|
* Cursor expects: name, description (with triggers embedded).
|
|
88
89
|
*/
|
|
89
|
-
export declare function generateCursorSkill(skill: CanonicalSkill): string;
|
|
90
|
+
export declare function generateCursorSkill(skill: CanonicalSkill, profile?: SurfaceProfile): string;
|
|
90
91
|
/**
|
|
91
92
|
* Generate a Cursor .mdc rule from a canonical rule.
|
|
92
93
|
* Cursor expects: description, globs, alwaysApply.
|
|
93
94
|
*/
|
|
94
|
-
export declare function generateCursorRule(rule: CanonicalRule): string;
|
|
95
|
+
export declare function generateCursorRule(rule: CanonicalRule, profile?: SurfaceProfile): string;
|
|
96
|
+
/**
|
|
97
|
+
* Apply batch-mode transformations to a skill body (DEC-283).
|
|
98
|
+
*
|
|
99
|
+
* Skills describe WHAT (intent). This generator produces HOW (batch-appropriate
|
|
100
|
+
* instructions). We transform interactive patterns without gutting the skill's
|
|
101
|
+
* logical structure and purpose.
|
|
102
|
+
*
|
|
103
|
+
* Transformations applied:
|
|
104
|
+
* 1. Strip sub-agent spawn patterns → inline steps
|
|
105
|
+
* 2. Strip user confirmation gates → autonomous proceed
|
|
106
|
+
* 3. Strip streaming/interactive references
|
|
107
|
+
* 4. Add batch governance header after first `#` heading
|
|
108
|
+
*/
|
|
109
|
+
export declare function applyBatchTransformations(body: string): string;
|
|
95
110
|
/**
|
|
96
111
|
* Generate a Codex skill projection from a canonical skill.
|
|
97
112
|
* This is a repo-local markdown projection, not a separate authoring source.
|
|
113
|
+
*
|
|
114
|
+
* When profile.executionModel === 'batch', batch transformations are applied
|
|
115
|
+
* AFTER transport stripping and path replacement (DEC-283).
|
|
98
116
|
*/
|
|
99
|
-
export declare function generateCodexSkill(skill: CanonicalSkill): string;
|
|
117
|
+
export declare function generateCodexSkill(skill: CanonicalSkill, profile?: SurfaceProfile): string;
|
|
100
118
|
/**
|
|
101
119
|
* Generate a Codex skill index/router file.
|
|
102
120
|
* AGENTS.md can point here so Codex has one obvious place to find available workflows.
|
|
@@ -116,10 +134,10 @@ export declare function validateCodexSkills(skills: CanonicalSkill[]): CodexVali
|
|
|
116
134
|
* Generate a Claude Code .md rule from a canonical rule.
|
|
117
135
|
* Claude Code expects: description, optional paths (array).
|
|
118
136
|
*/
|
|
119
|
-
export declare function generateClaudeRule(rule: CanonicalRule): string;
|
|
137
|
+
export declare function generateClaudeRule(rule: CanonicalRule, profile?: SurfaceProfile): string;
|
|
120
138
|
/**
|
|
121
139
|
* Generate a Claude Code skill-router.md — imperative skill activation rule.
|
|
122
140
|
* Loaded automatically by Claude Code via .claude/rules/ with no paths (always active).
|
|
123
141
|
*/
|
|
124
|
-
export declare function generateClaudeSkillRouter(skills: CanonicalSkill[]): string;
|
|
142
|
+
export declare function generateClaudeSkillRouter(skills: CanonicalSkill[], profile?: SurfaceProfile): string;
|
|
125
143
|
//# sourceMappingURL=portable-knowledge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-knowledge.d.ts","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"portable-knowledge.d.ts","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -271,7 +271,7 @@ export function stripTransportSections(body, target) {
|
|
|
271
271
|
* Generate a Cursor SKILL.md from a canonical skill.
|
|
272
272
|
* Cursor expects: name, description (with triggers embedded).
|
|
273
273
|
*/
|
|
274
|
-
export function generateCursorSkill(skill) {
|
|
274
|
+
export function generateCursorSkill(skill, profile) {
|
|
275
275
|
// Cursor puts trigger phrases in the description field
|
|
276
276
|
const triggerLine = skill.triggers.length > 0
|
|
277
277
|
? ` Use when the user says ${skill.triggers.map((t) => `"${t}"`).join(', ')}.`
|
|
@@ -296,7 +296,7 @@ ${body}`;
|
|
|
296
296
|
* Generate a Cursor .mdc rule from a canonical rule.
|
|
297
297
|
* Cursor expects: description, globs, alwaysApply.
|
|
298
298
|
*/
|
|
299
|
-
export function generateCursorRule(rule) {
|
|
299
|
+
export function generateCursorRule(rule, profile) {
|
|
300
300
|
// Replace canonical paths with Cursor paths in body
|
|
301
301
|
const body = rule.body
|
|
302
302
|
.replace(/\.productbrain\/rules\/(\S+)\.md/g, '.cursor/rules/$1.mdc')
|
|
@@ -311,17 +311,65 @@ alwaysApply: ${!rule.scope && rule.autoApply}
|
|
|
311
311
|
${body}`;
|
|
312
312
|
}
|
|
313
313
|
// ── Codex generators ───────────────────────────────────────────────────
|
|
314
|
+
/**
|
|
315
|
+
* Apply batch-mode transformations to a skill body (DEC-283).
|
|
316
|
+
*
|
|
317
|
+
* Skills describe WHAT (intent). This generator produces HOW (batch-appropriate
|
|
318
|
+
* instructions). We transform interactive patterns without gutting the skill's
|
|
319
|
+
* logical structure and purpose.
|
|
320
|
+
*
|
|
321
|
+
* Transformations applied:
|
|
322
|
+
* 1. Strip sub-agent spawn patterns → inline steps
|
|
323
|
+
* 2. Strip user confirmation gates → autonomous proceed
|
|
324
|
+
* 3. Strip streaming/interactive references
|
|
325
|
+
* 4. Add batch governance header after first `#` heading
|
|
326
|
+
*/
|
|
327
|
+
export function applyBatchTransformations(body) {
|
|
328
|
+
// Split into fenced code blocks vs prose so transforms only apply to prose.
|
|
329
|
+
// Fenced blocks (``` or ~~~) may contain examples of interactive patterns
|
|
330
|
+
// that must be preserved verbatim.
|
|
331
|
+
const segments = body.split(/(^```[^\n]*\n[\s\S]*?^```\s*$|^~~~[^\n]*\n[\s\S]*?^~~~\s*$)/m);
|
|
332
|
+
let result = segments
|
|
333
|
+
.map((segment, i) => {
|
|
334
|
+
// Odd indices are fenced code blocks — pass through unchanged
|
|
335
|
+
if (i % 2 === 1)
|
|
336
|
+
return segment;
|
|
337
|
+
return applyProseTransformations(segment);
|
|
338
|
+
})
|
|
339
|
+
.join('');
|
|
340
|
+
// 4. Add batch governance header after the first `#` heading line
|
|
341
|
+
const batchHeader = '> Batch execution mode: This skill runs autonomously without interactive gates. Decisions are logged, not prompted.';
|
|
342
|
+
result = result.replace(/^(#\s+[^\n]+)(\n)/m, `$1$2\n${batchHeader}\n`);
|
|
343
|
+
return result;
|
|
344
|
+
}
|
|
345
|
+
/** Apply interactive-pattern transforms to a prose segment (not inside code fences). */
|
|
346
|
+
function applyProseTransformations(text) {
|
|
347
|
+
let result = text;
|
|
348
|
+
// 1. Sub-agent spawn patterns — lines that dispatch to sub-agents or fresh conversations
|
|
349
|
+
result = result.replace(/^.*\b(spawn\s+(a\s+)?(sub-agent|build\s+sub-agent|review\s+sub-agent|judge|system\s+verification\s+agent)|Agent\s+tool\s+dispatch|fresh\s+conversation\s+handoff|open\s+a\s+(new|fresh)\s+(conversation|chat)|start\s+a\s+(new|fresh)\s+(conversation|chat))\b.*$/gim, 'Execute as inline steps within this session.');
|
|
350
|
+
// 2. User confirmation gates — lines that halt for human input
|
|
351
|
+
result = result.replace(/^.*\b(ask\s+the\s+(user|human)|wait\s+for\s+(user\s+)?input|present\s+gate\s+to\s+(the\s+)?user|stop\s+and\s+ask|pause\s+and\s+ask|get\s+user\s+confirmation|awaiting\s+your\s+feedback|wait\s+for\s+(human|user)\s+(sign-?off|approval|input))\b.*$/gim, 'Proceed autonomously. Log decision rationale.');
|
|
352
|
+
// 3. Streaming / persistent-connection references
|
|
353
|
+
result = result.replace(/^.*\b(real-time\s+feedback|streaming\s+output|interactive\s+mcp\s+tool\s+calls?\s+that\s+assume\s+a\s+persistent\s+connection)\b.*$/gim, '');
|
|
354
|
+
return result;
|
|
355
|
+
}
|
|
314
356
|
/**
|
|
315
357
|
* Generate a Codex skill projection from a canonical skill.
|
|
316
358
|
* This is a repo-local markdown projection, not a separate authoring source.
|
|
359
|
+
*
|
|
360
|
+
* When profile.executionModel === 'batch', batch transformations are applied
|
|
361
|
+
* AFTER transport stripping and path replacement (DEC-283).
|
|
317
362
|
*/
|
|
318
|
-
export function generateCodexSkill(skill) {
|
|
363
|
+
export function generateCodexSkill(skill, profile) {
|
|
319
364
|
const triggerLine = skill.triggers.length > 0
|
|
320
365
|
? `\n\n**Triggers:** ${skill.triggers.map((t) => `\`${t}\``).join(', ')}`
|
|
321
366
|
: '';
|
|
322
367
|
const stripped = stripTransportSections(skill.body, 'codex');
|
|
323
|
-
const
|
|
368
|
+
const pathReplaced = stripped
|
|
324
369
|
.replace(/\.productbrain\/skills\/(\S+)\.md/g, '.codex/skills/$1.md');
|
|
370
|
+
const body = profile?.executionModel === 'batch'
|
|
371
|
+
? applyBatchTransformations(pathReplaced)
|
|
372
|
+
: pathReplaced;
|
|
325
373
|
return `<!-- ${MARKER} — source: .productbrain/skills/${skill.name}.md -->
|
|
326
374
|
|
|
327
375
|
# ${skill.name}
|
|
@@ -403,7 +451,7 @@ export function validateCodexSkills(skills) {
|
|
|
403
451
|
* Generate a Claude Code .md rule from a canonical rule.
|
|
404
452
|
* Claude Code expects: description, optional paths (array).
|
|
405
453
|
*/
|
|
406
|
-
export function generateClaudeRule(rule) {
|
|
454
|
+
export function generateClaudeRule(rule, profile) {
|
|
407
455
|
// Replace canonical paths with Claude Code paths in body
|
|
408
456
|
const body = rule.body
|
|
409
457
|
.replace(/\.productbrain\/rules\/(\S+)\.md/g, '.claude/rules/$1.md')
|
|
@@ -425,7 +473,7 @@ ${body}`;
|
|
|
425
473
|
* Generate a Claude Code skill-router.md — imperative skill activation rule.
|
|
426
474
|
* Loaded automatically by Claude Code via .claude/rules/ with no paths (always active).
|
|
427
475
|
*/
|
|
428
|
-
export function generateClaudeSkillRouter(skills) {
|
|
476
|
+
export function generateClaudeSkillRouter(skills, profile) {
|
|
429
477
|
if (skills.length === 0)
|
|
430
478
|
return '';
|
|
431
479
|
const triggerBlocks = skills.map((skill) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-knowledge.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAmCvC,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAAC,KAAqC,EAAE,MAAkB;IAC1F,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAMD,MAAM,eAAe,GAAqC;IACxD,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;IACtC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC;CAC3C,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,cAAc;IACpB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEpF;;;GAGG;AACH,SAAS,QAAQ,CAAC,SAAqC,EAAE,GAA+B;IACtF,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAC3B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAU,EACV,cAAuB,EACvB,KAAc;IAEd,4DAA4D;IAC5D,MAAM,QAAQ,GAA+B,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,+DAA+D;IAC/D,IAAI,cAA0C,CAAC;IAC/C,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kBAAkB,cAAc,oBAAoB,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,cAAc,GAAG,cAAgC,CAAC;IACpD,CAAC;IAED,+CAA+C;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAE1D,0DAA0D;IAC1D,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAElC,MAAM,aAAa,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,yEAAyE;AAEzE,MAAM,WAAW,GAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAA0B,EAC1B,OAAyD,EACzD,WAAwC;IAExC,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,KAAK,SAAS,IAAI,UAAU,CAAC,kBAAkB,KAAK,SAAS,CAAC;IACnH,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC;IAE9D,yCAAyC;IACzC,IAAI,CAAC,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,KAAK,IAAI,IAAI,oBAAoB,EAAE,CAAC;QAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,kCAAkC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,0DAA0D;IAC1D,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,UAAU,2BAA2B,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,UAAU,UAAU,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,YAAY,EAAE,CAAC;YAC1E,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,aAAa,wBAAwB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,aAAa,qBAAqB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,IAAI,UAAU,CAAC,kBAAkB,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,EAAE,CAAC;YAC3D,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,kBAAkB,uBAAuB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,kBAAkB,8BAA8B,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAQD,0EAA0E;AAE1E,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAE5E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,0BAA0B;QAC1B,IAAI,eAAe,IAAI,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5E,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,sDAAsD;QACtD,IAAI,mBAAmB,IAAI,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,mCAAmC;QACnC,mBAAmB,GAAG,KAAK,CAAC;QAC5B,eAAe,GAAG,KAAK,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE;YAAE,SAAS;QAElB,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzB,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAC9C,+DAA+D;YAC/D,kFAAkF;YAClF,mBAAmB,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,CAAC;YAClD,eAAe,GAAG,GAAG,KAAK,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,0EAA0E;AAE1E,MAAM,UAAU,mBAAmB,CAAC,eAAuB;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;QACjD,IAAI,YAAY;YAAE,UAAU,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1D,IAAI,iBAAiB;YAAE,UAAU,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QACzE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1M,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,eAAuB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;QACrD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,UAAU,GAAmB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAI,SAAS;YAAE,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;QACjD,IAAI,YAAY;YAAE,UAAU,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1D,IAAI,iBAAiB;YAAE,UAAU,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QACzE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACjN,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,yEAAyE;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,MAAkB;IACrE,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,+DAA+D,CAAC;IAEzF,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,WAAmB,EAAE,OAAe,EAAE,EAAE;QACrF,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,kDAAkD;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,4CAA4C;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0EAA0E;AAE1E;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,uDAAuD;IACvD,MAAM,WAAW,GACf,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,4BAA4B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/E,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAEpD,mDAAmD;IACnD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE9D,oDAAoD;IACpD,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,mCAAmC,EAAE,sBAAsB,CAAC;SACpE,OAAO,CAAC,oCAAoC,EAAE,4BAA4B,CAAC,CAAC;IAE/E,OAAO;QACD,KAAK,CAAC,IAAI;;IAEd,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;OAE/B,MAAM,mCAAmC,KAAK,CAAC,IAAI;;EAExD,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,oDAAoD;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;SACnB,OAAO,CAAC,mCAAmC,EAAE,sBAAsB,CAAC;SACpE,OAAO,CAAC,oCAAoC,EAAE,4BAA4B,CAAC,CAAC;IAE/E,OAAO;eACM,IAAI,CAAC,WAAW;SACtB,IAAI,CAAC,KAAK,IAAI,EAAE;eACV,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS;;OAErC,MAAM,kCAAkC,IAAI,CAAC,IAAI;;EAEtD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,0EAA0E;AAE1E;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAqB;IACtD,MAAM,WAAW,GACf,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,qBAAqB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACzE,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,QAAQ;SAClB,OAAO,CAAC,oCAAoC,EAAE,qBAAqB,CAAC,CAAC;IAExE,OAAO,QAAQ,MAAM,mCAAmC,KAAK,CAAC,IAAI;;IAEhE,KAAK,CAAC,IAAI;;EAEZ,KAAK,CAAC,WAAW,GAAG,WAAW;;EAE/B,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,KAAK,KAAK,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,MAAM;;;;;CAKxB,CAAC;IACA,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,WAAW,GACf,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjE,CAAC,CAAC,yBAAyB,CAAC;QAEhC,OAAO,MAAM,KAAK,CAAC,IAAI;;EAEzB,KAAK,CAAC,WAAW;;EAEjB,WAAW;;wBAEW,KAAK,CAAC,IAAI,OAAO,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,MAAM;;;;;;;EAOrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACxB,CAAC;AAUD,MAAM,6BAA6B,GAAG;IACpC,EAAE,OAAO,EAAE,qFAAqF,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC3H,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC3D,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC9D,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACtD,EAAE,OAAO,EAAE,kCAAkC,EAAE,KAAK,EAAE,sBAAsB,EAAE;CAC/E,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAwB;IAC1D,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,6BAA6B,EAAE,CAAC;gBAC/D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC/B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,yEAAyE;AAEzE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAmB;IACpD,yDAAyD;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;SACnB,OAAO,CAAC,mCAAmC,EAAE,qBAAqB,CAAC;SACnE,OAAO,CAAC,oCAAoC,EAAE,4BAA4B,CAAC,CAAC;IAE/E,oBAAoB;IACpB,MAAM,OAAO,GAAa,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAExE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;OACvB,MAAM,kCAAkC,IAAI,CAAC,IAAI;;EAEtD,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAwB;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,OAAO,eAAe,WAAW;kCACH,KAAK,CAAC,IAAI,kCAAkC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,OAAO;;;OAGF,MAAM;;;;;;;;;;EAUX,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;CAK3B,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"portable-knowledge.js","sourceRoot":"","sources":["../../src/generators/portable-knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface profiles — per-target execution model descriptors.
|
|
3
|
+
* Downstream generators receive the profile for the target they're emitting to.
|
|
4
|
+
* BET-270 Slice 0: type system + registry only. Generators accept but do not yet use the profile.
|
|
5
|
+
* BET-270 Slice 4: pluggable surface registration + fallback.
|
|
6
|
+
*/
|
|
7
|
+
import type { TargetName } from './portable-knowledge.js';
|
|
8
|
+
export type { TargetName };
|
|
9
|
+
export interface SurfaceProfile {
|
|
10
|
+
/** How the agent executes work in this surface. */
|
|
11
|
+
executionModel: 'batch' | 'interactive' | 'passive';
|
|
12
|
+
/** Whether output is split across multiple files or consolidated into one. */
|
|
13
|
+
format: 'multi-file' | 'single-file';
|
|
14
|
+
/** Memory and continuity model for this surface. */
|
|
15
|
+
sessionModel: 'stateless' | 'conversational' | 'autonomous';
|
|
16
|
+
/** Maximum characters for single-file output (used by future generators). */
|
|
17
|
+
tokenBudget: number;
|
|
18
|
+
/** How this surface expects instructions to be structured. */
|
|
19
|
+
workflowStyle: 'orchestrated' | 'direct' | 'guided';
|
|
20
|
+
}
|
|
21
|
+
export declare const SURFACE_PROFILES: Record<TargetName, SurfaceProfile>;
|
|
22
|
+
/**
|
|
23
|
+
* Reset the runtime registry. Exposed for test isolation only — do not use in production code.
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare function _resetRuntimeRegistryForTesting(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Type guard that validates a profile object has all required fields with correct types.
|
|
29
|
+
* Returns false for missing fields or wrong-type values.
|
|
30
|
+
* Use this to validate profiles at registration time.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateSurfaceProfile(profile: unknown): profile is SurfaceProfile;
|
|
33
|
+
/**
|
|
34
|
+
* Register a new surface at runtime.
|
|
35
|
+
* Validates the profile before adding — throws if invalid.
|
|
36
|
+
* Cannot overwrite built-in surfaces (claude, cursor, codex, copilot).
|
|
37
|
+
*/
|
|
38
|
+
export declare function registerSurface(name: string, profile: SurfaceProfile): void;
|
|
39
|
+
/**
|
|
40
|
+
* Returns all registered surface names — built-ins plus any runtime-registered surfaces.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getRegisteredSurfaces(): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Resolve a surface profile for the given target name.
|
|
45
|
+
* Checks runtime-registered surfaces first, then built-in SURFACE_PROFILES.
|
|
46
|
+
* Falls back to the codex profile for unknown targets.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveSurfaceProfile(target: string): SurfaceProfile;
|
|
49
|
+
//# sourceMappingURL=surface-profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-profiles.d.ts","sourceRoot":"","sources":["../../src/generators/surface-profiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,YAAY,EAAE,UAAU,EAAE,CAAC;AAI3B,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;IACpD,8EAA8E;IAC9E,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC;IACrC,oDAAoD;IACpD,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAC5D,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,aAAa,EAAE,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACrD;AAID,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CA6B/D,CAAC;AAKF;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,cAAc,CAWlF;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAY3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAID;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAKpE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface profiles — per-target execution model descriptors.
|
|
3
|
+
* Downstream generators receive the profile for the target they're emitting to.
|
|
4
|
+
* BET-270 Slice 0: type system + registry only. Generators accept but do not yet use the profile.
|
|
5
|
+
* BET-270 Slice 4: pluggable surface registration + fallback.
|
|
6
|
+
*/
|
|
7
|
+
// ── Registry ───────────────────────────────────────────────────────────
|
|
8
|
+
export const SURFACE_PROFILES = {
|
|
9
|
+
claude: {
|
|
10
|
+
executionModel: 'interactive',
|
|
11
|
+
format: 'multi-file',
|
|
12
|
+
sessionModel: 'conversational',
|
|
13
|
+
tokenBudget: 50000,
|
|
14
|
+
workflowStyle: 'orchestrated',
|
|
15
|
+
},
|
|
16
|
+
cursor: {
|
|
17
|
+
executionModel: 'interactive',
|
|
18
|
+
format: 'multi-file',
|
|
19
|
+
sessionModel: 'conversational',
|
|
20
|
+
tokenBudget: 50000,
|
|
21
|
+
workflowStyle: 'orchestrated',
|
|
22
|
+
},
|
|
23
|
+
codex: {
|
|
24
|
+
executionModel: 'batch',
|
|
25
|
+
format: 'multi-file',
|
|
26
|
+
sessionModel: 'autonomous',
|
|
27
|
+
tokenBudget: 100000,
|
|
28
|
+
workflowStyle: 'direct',
|
|
29
|
+
},
|
|
30
|
+
copilot: {
|
|
31
|
+
executionModel: 'passive',
|
|
32
|
+
format: 'single-file',
|
|
33
|
+
sessionModel: 'stateless',
|
|
34
|
+
tokenBudget: 30000,
|
|
35
|
+
workflowStyle: 'guided',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
/** Runtime-registered surfaces. Built-ins live in SURFACE_PROFILES and cannot be overwritten. */
|
|
39
|
+
const _runtimeRegistry = new Map();
|
|
40
|
+
/**
|
|
41
|
+
* Reset the runtime registry. Exposed for test isolation only — do not use in production code.
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export function _resetRuntimeRegistryForTesting() {
|
|
45
|
+
_runtimeRegistry.clear();
|
|
46
|
+
}
|
|
47
|
+
// ── Validation ────────────────────────────────────────────────────────
|
|
48
|
+
/**
|
|
49
|
+
* Type guard that validates a profile object has all required fields with correct types.
|
|
50
|
+
* Returns false for missing fields or wrong-type values.
|
|
51
|
+
* Use this to validate profiles at registration time.
|
|
52
|
+
*/
|
|
53
|
+
export function validateSurfaceProfile(profile) {
|
|
54
|
+
if (!profile || typeof profile !== 'object')
|
|
55
|
+
return false;
|
|
56
|
+
const p = profile;
|
|
57
|
+
return (['batch', 'interactive', 'passive'].includes(p.executionModel) &&
|
|
58
|
+
['multi-file', 'single-file'].includes(p.format) &&
|
|
59
|
+
['stateless', 'conversational', 'autonomous'].includes(p.sessionModel) &&
|
|
60
|
+
typeof p.tokenBudget === 'number' &&
|
|
61
|
+
p.tokenBudget > 0 &&
|
|
62
|
+
['orchestrated', 'direct', 'guided'].includes(p.workflowStyle));
|
|
63
|
+
}
|
|
64
|
+
// ── Registration ──────────────────────────────────────────────────────
|
|
65
|
+
/**
|
|
66
|
+
* Register a new surface at runtime.
|
|
67
|
+
* Validates the profile before adding — throws if invalid.
|
|
68
|
+
* Cannot overwrite built-in surfaces (claude, cursor, codex, copilot).
|
|
69
|
+
*/
|
|
70
|
+
export function registerSurface(name, profile) {
|
|
71
|
+
if (name in SURFACE_PROFILES) {
|
|
72
|
+
throw new Error(`Cannot overwrite built-in surface "${name}". Built-in surfaces are immutable.`);
|
|
73
|
+
}
|
|
74
|
+
if (!validateSurfaceProfile(profile)) {
|
|
75
|
+
throw new Error(`Invalid profile for surface "${name}". Ensure all required fields are present with correct types.`);
|
|
76
|
+
}
|
|
77
|
+
_runtimeRegistry.set(name, profile);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Returns all registered surface names — built-ins plus any runtime-registered surfaces.
|
|
81
|
+
*/
|
|
82
|
+
export function getRegisteredSurfaces() {
|
|
83
|
+
return [...Object.keys(SURFACE_PROFILES), ..._runtimeRegistry.keys()];
|
|
84
|
+
}
|
|
85
|
+
// ── Resolver ──────────────────────────────────────────────────────────
|
|
86
|
+
/**
|
|
87
|
+
* Resolve a surface profile for the given target name.
|
|
88
|
+
* Checks runtime-registered surfaces first, then built-in SURFACE_PROFILES.
|
|
89
|
+
* Falls back to the codex profile for unknown targets.
|
|
90
|
+
*/
|
|
91
|
+
export function resolveSurfaceProfile(target) {
|
|
92
|
+
const runtime = _runtimeRegistry.get(target);
|
|
93
|
+
if (runtime)
|
|
94
|
+
return runtime;
|
|
95
|
+
const known = SURFACE_PROFILES[target];
|
|
96
|
+
return known ?? SURFACE_PROFILES.codex;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=surface-profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-profiles.js","sourceRoot":"","sources":["../../src/generators/surface-profiles.ts"],"names":[],"mappings":"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"}
|