cognitive-core 0.2.3 → 0.2.5
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/surfacing/skill-publisher.d.ts +3 -3
- package/dist/surfacing/skill-publisher.d.ts.map +1 -1
- package/dist/surfacing/skill-publisher.js +90 -41
- package/dist/surfacing/skill-publisher.js.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.d.ts +2 -2
- package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
- package/dist/surfacing/sqlite-storage-adapter.js +15 -10
- package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
- package/dist/types/playbook.d.ts +11 -0
- package/dist/types/playbook.d.ts.map +1 -1
- package/dist/types/playbook.js +2 -0
- package/dist/types/playbook.js.map +1 -1
- package/dist/workspace/templates/index.d.ts +1 -0
- package/dist/workspace/templates/index.d.ts.map +1 -1
- package/dist/workspace/templates/index.js +2 -0
- package/dist/workspace/templates/index.js.map +1 -1
- package/dist/workspace/templates/skill-enrichment.d.ts +48 -0
- package/dist/workspace/templates/skill-enrichment.d.ts.map +1 -0
- package/dist/workspace/templates/skill-enrichment.js +175 -0
- package/dist/workspace/templates/skill-enrichment.js.map +1 -0
- package/package.json +4 -4
- package/src/surfacing/skill-publisher.ts +116 -49
- package/src/surfacing/sqlite-storage-adapter.ts +14 -12
- package/src/types/playbook.ts +15 -0
- package/src/workspace/templates/index.ts +7 -0
- package/src/workspace/templates/skill-enrichment.ts +275 -0
- package/tests/integration/ranking-driven-loadout-e2e.test.ts +185 -0
- package/tests/integration/skill-publishing-filesystem-e2e.test.ts +216 -0
- package/tests/surfacing/skill-publisher.test.ts +86 -18
- package/tests/surfacing/sqlite-storage-adapter.test.ts +0 -9
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* writes them directly to a StorageAdapter. Handles the Playbook → Skill
|
|
6
6
|
* conversion at the publish boundary.
|
|
7
7
|
*/
|
|
8
|
-
import type { Skill, StorageAdapter } from
|
|
9
|
-
import type { Playbook } from
|
|
10
|
-
import type { PublishResult, DeprecateResult } from
|
|
8
|
+
import type { Skill, StorageAdapter } from "skill-tree";
|
|
9
|
+
import type { Playbook } from "../types/index.js";
|
|
10
|
+
import type { PublishResult, DeprecateResult } from "./publisher.js";
|
|
11
11
|
/**
|
|
12
12
|
* Convert a Playbook to a Skill
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-publisher.d.ts","sourceRoot":"","sources":["../../src/surfacing/skill-publisher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-publisher.d.ts","sourceRoot":"","sources":["../../src/surfacing/skill-publisher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA0CrE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CA0GhE;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAA0B;gBAElC,OAAO,EAAE,cAAc;IAInC;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBjE;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQvE;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC;IAyB3B;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG5B"}
|
|
@@ -5,52 +5,104 @@
|
|
|
5
5
|
* writes them directly to a StorageAdapter. Handles the Playbook → Skill
|
|
6
6
|
* conversion at the publish boundary.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Maximum length for the generated `description` field.
|
|
10
|
+
* Claude Code's skill format caps description at 1024 chars, so we truncate
|
|
11
|
+
* to stay safely within that boundary.
|
|
12
|
+
*/
|
|
13
|
+
const MAX_DESCRIPTION_LENGTH = 1024;
|
|
14
|
+
/**
|
|
15
|
+
* Build the `description` field for a published Skill.
|
|
16
|
+
*
|
|
17
|
+
* The description is what lightweight trigger matchers — notably Claude Code's
|
|
18
|
+
* skill loader — key off to decide whether to load a skill. It needs two things:
|
|
19
|
+
*
|
|
20
|
+
* 1. A short "what it does" lead (pulled from the first situation, or the
|
|
21
|
+
* strategy if no situation is set).
|
|
22
|
+
* 2. The concrete trigger phrases, surfaced inline so substring/keyword
|
|
23
|
+
* matchers catch them. These live in `applicability.triggers` on the
|
|
24
|
+
* playbook but are invisible to downstream consumers unless we lift them.
|
|
25
|
+
*
|
|
26
|
+
* Shape: `<lead>. Use when "<t1>", "<t2>", ..., "<tN>".`
|
|
27
|
+
*/
|
|
28
|
+
function buildDescription(playbook) {
|
|
29
|
+
let lead = playbook.applicability.situations[0]
|
|
30
|
+
?? `${playbook.name}: ${playbook.guidance.strategy.slice(0, 100)}`;
|
|
31
|
+
// Ensure a sentence terminator before appending the trigger clause.
|
|
32
|
+
if (lead.length > 0 && !/[.!?]$/.test(lead)) {
|
|
33
|
+
lead += '.';
|
|
34
|
+
}
|
|
35
|
+
const triggers = playbook.applicability.triggers;
|
|
36
|
+
const triggerClause = triggers.length > 0
|
|
37
|
+
? ` Use when ${triggers.map((t) => `"${t}"`).join(', ')}.`
|
|
38
|
+
: '';
|
|
39
|
+
const full = lead + triggerClause;
|
|
40
|
+
if (full.length <= MAX_DESCRIPTION_LENGTH)
|
|
41
|
+
return full;
|
|
42
|
+
return full.slice(0, MAX_DESCRIPTION_LENGTH - 3) + '...';
|
|
43
|
+
}
|
|
9
44
|
/**
|
|
10
45
|
* Convert a Playbook to a Skill
|
|
11
46
|
*/
|
|
12
47
|
export function convertPlaybookToSkill(playbook) {
|
|
13
|
-
const totalUses = playbook.evolution.successCount + playbook.evolution.failureCount;
|
|
14
|
-
const successRate = getPlaybookSuccessRate(playbook);
|
|
15
48
|
// Build solution text from guidance
|
|
16
49
|
let solution = playbook.guidance.strategy;
|
|
17
50
|
if (playbook.guidance.tactics.length > 0) {
|
|
18
|
-
solution +=
|
|
51
|
+
solution +=
|
|
52
|
+
"\n\nTactics:\n" +
|
|
53
|
+
playbook.guidance.tactics.map((t, i) => `${i + 1}. ${t}`).join("\n");
|
|
19
54
|
}
|
|
20
55
|
if (playbook.guidance.steps?.length) {
|
|
21
|
-
solution +=
|
|
56
|
+
solution +=
|
|
57
|
+
"\n\nSteps:\n" +
|
|
58
|
+
playbook.guidance.steps.map((s, i) => `${i + 1}. ${s}`).join("\n");
|
|
59
|
+
}
|
|
60
|
+
// Build description for semantic matching and lightweight trigger routing
|
|
61
|
+
const description = buildDescription(playbook);
|
|
62
|
+
// Build structured instructions body
|
|
63
|
+
const instructionParts = [];
|
|
64
|
+
// --- When to use / When not to use (Change A) ---
|
|
65
|
+
if (playbook.applicability.situations.length > 0) {
|
|
66
|
+
instructionParts.push('## When to use\n\n'
|
|
67
|
+
+ playbook.applicability.situations.map((s) => `- ${s}`).join('\n'));
|
|
22
68
|
}
|
|
23
|
-
// Build verification text
|
|
24
|
-
const verification = playbook.verification.successIndicators.length > 0
|
|
25
|
-
? playbook.verification.successIndicators.join('. ')
|
|
26
|
-
: 'Verify the approach worked as expected.';
|
|
27
|
-
// Build notes from anti-patterns and refinements
|
|
28
|
-
const notesParts = [];
|
|
29
69
|
if (playbook.applicability.antiPatterns.length > 0) {
|
|
30
|
-
|
|
70
|
+
instructionParts.push('## When not to use\n\n'
|
|
71
|
+
+ playbook.applicability.antiPatterns.map((a) => `- ${a}`).join('\n'));
|
|
31
72
|
}
|
|
32
|
-
|
|
33
|
-
|
|
73
|
+
// --- Solution ---
|
|
74
|
+
instructionParts.push(`## Solution\n\n${solution}`);
|
|
75
|
+
// --- Verification with bulleted indicators (Change B) ---
|
|
76
|
+
const verificationParts = [];
|
|
77
|
+
if (playbook.verification.successIndicators.length > 0) {
|
|
78
|
+
verificationParts.push('Success:\n'
|
|
79
|
+
+ playbook.verification.successIndicators.map((s) => `- ${s}`).join('\n'));
|
|
34
80
|
}
|
|
35
|
-
if (playbook.
|
|
36
|
-
|
|
81
|
+
if (playbook.verification.failureIndicators.length > 0) {
|
|
82
|
+
verificationParts.push('Failure:\n'
|
|
83
|
+
+ playbook.verification.failureIndicators.map((f) => `- ${f}`).join('\n'));
|
|
37
84
|
}
|
|
38
85
|
if (playbook.verification.rollbackStrategy) {
|
|
39
|
-
|
|
86
|
+
verificationParts.push(`Rollback: ${playbook.verification.rollbackStrategy}`);
|
|
87
|
+
}
|
|
88
|
+
if (verificationParts.length > 0) {
|
|
89
|
+
instructionParts.push(`## Verification\n\n${verificationParts.join('\n\n')}`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
instructionParts.push('## Verification\n\nVerify the approach worked as expected.');
|
|
93
|
+
}
|
|
94
|
+
// --- Notes (refinements only — anti-patterns now in their own section) ---
|
|
95
|
+
const notesParts = [];
|
|
96
|
+
if (playbook.evolution.refinements.length > 0) {
|
|
97
|
+
notesParts.push('Refinements:\n'
|
|
98
|
+
+ playbook.evolution.refinements.map((r) => `- In ${r.context}: ${r.addition}`).join('\n'));
|
|
40
99
|
}
|
|
41
|
-
// Build description for semantic matching
|
|
42
|
-
const description = playbook.applicability.situations[0]
|
|
43
|
-
?? `${playbook.name}: ${playbook.guidance.strategy.slice(0, 100)}`;
|
|
44
|
-
// Build instructions as structured markdown combining all content
|
|
45
|
-
const instructionParts = [];
|
|
46
|
-
instructionParts.push(`## Problem\n${playbook.applicability.situations.join('. ')}`);
|
|
47
|
-
instructionParts.push(`## Solution\n${solution}`);
|
|
48
|
-
instructionParts.push(`## Verification\n${verification}`);
|
|
49
100
|
if (notesParts.length > 0) {
|
|
50
|
-
instructionParts.push(`## Notes\n${notesParts.join('\n\n')}`);
|
|
101
|
+
instructionParts.push(`## Notes\n\n${notesParts.join('\n\n')}`);
|
|
51
102
|
}
|
|
103
|
+
// --- Example ---
|
|
52
104
|
if (playbook.guidance.codeExample) {
|
|
53
|
-
instructionParts.push(`## Example\n\`\`\`\n${playbook.guidance.codeExample}\n\`\`\``);
|
|
105
|
+
instructionParts.push(`## Example\n\n\`\`\`\n${playbook.guidance.codeExample}\n\`\`\``);
|
|
54
106
|
}
|
|
55
107
|
const instructions = instructionParts.join('\n\n');
|
|
56
108
|
// Estimate tokens (rough: 4 chars per token)
|
|
@@ -61,23 +113,18 @@ export function convertPlaybookToSkill(playbook) {
|
|
|
61
113
|
version: playbook.evolution.version,
|
|
62
114
|
description,
|
|
63
115
|
instructions,
|
|
64
|
-
author: 'cognitive-core',
|
|
116
|
+
author: playbook.provenance?.curatedBy ?? 'cognitive-core',
|
|
65
117
|
tags: playbook.applicability.domains,
|
|
66
|
-
status:
|
|
67
|
-
metrics: {
|
|
68
|
-
usageCount: totalUses,
|
|
69
|
-
successRate,
|
|
70
|
-
lastUsed: playbook.evolution.lastUsed,
|
|
71
|
-
feedbackScores: [],
|
|
72
|
-
averageConfidence: playbook.confidence,
|
|
73
|
-
},
|
|
118
|
+
status: "active",
|
|
74
119
|
source: {
|
|
75
|
-
type:
|
|
120
|
+
type: "extracted",
|
|
76
121
|
sessionId: playbook.evolution.createdFrom[0],
|
|
77
122
|
importedAt: playbook.createdAt,
|
|
78
123
|
},
|
|
79
124
|
serving: {
|
|
80
|
-
summary: description.length > 150
|
|
125
|
+
summary: description.length > 150
|
|
126
|
+
? description.slice(0, 147) + "..."
|
|
127
|
+
: description,
|
|
81
128
|
tokenEstimate,
|
|
82
129
|
},
|
|
83
130
|
createdAt: playbook.createdAt,
|
|
@@ -136,10 +183,12 @@ export class SkillPublisher {
|
|
|
136
183
|
try {
|
|
137
184
|
const existing = await this.storage.getSkill(skillId);
|
|
138
185
|
if (!existing) {
|
|
139
|
-
return { deprecated: false, skillId, error:
|
|
186
|
+
return { deprecated: false, skillId, error: "Skill not found" };
|
|
140
187
|
}
|
|
141
|
-
existing.status =
|
|
142
|
-
existing.description =
|
|
188
|
+
existing.status = "deprecated";
|
|
189
|
+
existing.description =
|
|
190
|
+
(existing.description ? existing.description + " " : "") +
|
|
191
|
+
`[Deprecated: ${reason}]`;
|
|
143
192
|
existing.updatedAt = new Date();
|
|
144
193
|
await this.storage.saveSkill(existing);
|
|
145
194
|
this.publishedIds.delete(skillId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-publisher.js","sourceRoot":"","sources":["../../src/surfacing/skill-publisher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"skill-publisher.js","sourceRoot":"","sources":["../../src/surfacing/skill-publisher.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ import type { Skill, StorageAdapter, SkillVersion, SkillLineage } from 'skill-tr
|
|
|
12
12
|
* SQLite-backed StorageAdapter for skill-tree.
|
|
13
13
|
*
|
|
14
14
|
* Stores skills in a `skills` table with JSON columns for nested objects
|
|
15
|
-
* (tags,
|
|
16
|
-
* a separate `skill_versions` table. Dates are stored as ISO strings.
|
|
15
|
+
* (tags, namespace, taxonomy, lineage, etc.). Version history is tracked
|
|
16
|
+
* in a separate `skill_versions` table. Dates are stored as ISO strings.
|
|
17
17
|
*/
|
|
18
18
|
export declare class SqliteStorageAdapter implements StorageAdapter {
|
|
19
19
|
private db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-storage-adapter.d.ts","sourceRoot":"","sources":["../../src/surfacing/sqlite-storage-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-storage-adapter.d.ts","sourceRoot":"","sources":["../../src/surfacing/sqlite-storage-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA8BpF;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM;IAMpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuD3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAK3C,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDtC,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAyB7E,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMzC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAe3D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAWzD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAanD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,CAAC,UAAU;CAiBnB"}
|
|
@@ -12,8 +12,8 @@ import Database from 'better-sqlite3';
|
|
|
12
12
|
* SQLite-backed StorageAdapter for skill-tree.
|
|
13
13
|
*
|
|
14
14
|
* Stores skills in a `skills` table with JSON columns for nested objects
|
|
15
|
-
* (tags,
|
|
16
|
-
* a separate `skill_versions` table. Dates are stored as ISO strings.
|
|
15
|
+
* (tags, namespace, taxonomy, lineage, etc.). Version history is tracked
|
|
16
|
+
* in a separate `skill_versions` table. Dates are stored as ISO strings.
|
|
17
17
|
*/
|
|
18
18
|
export class SqliteStorageAdapter {
|
|
19
19
|
db;
|
|
@@ -44,6 +44,16 @@ export class SqliteStorageAdapter {
|
|
|
44
44
|
updated_at TEXT NOT NULL
|
|
45
45
|
)
|
|
46
46
|
`);
|
|
47
|
+
// Backwards-compat: drop the legacy metrics column on existing
|
|
48
|
+
// installs. skill-tree 0.2 dropped Skill.metrics; the column is no
|
|
49
|
+
// longer read or written. SQLite >= 3.35 supports DROP COLUMN; older
|
|
50
|
+
// versions silently fail and leave the column as harmless dead weight.
|
|
51
|
+
try {
|
|
52
|
+
this.db.exec('ALTER TABLE skills DROP COLUMN metrics');
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Column already absent or SQLite version doesn't support DROP COLUMN.
|
|
56
|
+
}
|
|
47
57
|
this.db.exec(`
|
|
48
58
|
CREATE TABLE IF NOT EXISTS skill_versions (
|
|
49
59
|
skill_id TEXT NOT NULL,
|
|
@@ -73,12 +83,12 @@ export class SqliteStorageAdapter {
|
|
|
73
83
|
const stmt = this.db.prepare(`
|
|
74
84
|
INSERT OR REPLACE INTO skills
|
|
75
85
|
(id, name, version, description, instructions,
|
|
76
|
-
author, status, tags,
|
|
86
|
+
author, status, tags, source,
|
|
77
87
|
serving, related, created_at, updated_at)
|
|
78
88
|
VALUES
|
|
79
|
-
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
|
89
|
+
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
80
90
|
`);
|
|
81
|
-
stmt.run(skill.id, skill.name, skill.version, skill.description ?? null, skill.instructions, skill.author ?? null, skill.status, JSON.stringify(skill.tags ?? []), JSON.stringify(skill.
|
|
91
|
+
stmt.run(skill.id, skill.name, skill.version, skill.description ?? null, skill.instructions, skill.author ?? null, skill.status, JSON.stringify(skill.tags ?? []), JSON.stringify(skill.source ?? {}), JSON.stringify(skill.serving ?? {}), JSON.stringify(skill.related ?? []), toISOString(skill.createdAt), toISOString(skill.updatedAt));
|
|
82
92
|
// Record version snapshot
|
|
83
93
|
const versionStmt = this.db.prepare(`
|
|
84
94
|
INSERT OR IGNORE INTO skill_versions
|
|
@@ -151,7 +161,6 @@ export class SqliteStorageAdapter {
|
|
|
151
161
|
* Convert a database row to a Skill object, parsing JSON columns and dates.
|
|
152
162
|
*/
|
|
153
163
|
rowToSkill(row) {
|
|
154
|
-
const metrics = JSON.parse(row.metrics);
|
|
155
164
|
return {
|
|
156
165
|
id: row.id,
|
|
157
166
|
name: row.name,
|
|
@@ -162,10 +171,6 @@ export class SqliteStorageAdapter {
|
|
|
162
171
|
status: row.status,
|
|
163
172
|
tags: JSON.parse(row.tags),
|
|
164
173
|
related: JSON.parse(row.related),
|
|
165
|
-
metrics: {
|
|
166
|
-
...metrics,
|
|
167
|
-
lastUsed: metrics.lastUsed ? new Date(metrics.lastUsed) : undefined,
|
|
168
|
-
},
|
|
169
174
|
source: JSON.parse(row.source),
|
|
170
175
|
serving: JSON.parse(row.serving),
|
|
171
176
|
createdAt: new Date(row.created_at),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-storage-adapter.js","sourceRoot":"","sources":["../../src/surfacing/sqlite-storage-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-storage-adapter.js","sourceRoot":"","sources":["../../src/surfacing/sqlite-storage-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/types/playbook.d.ts
CHANGED
|
@@ -22,6 +22,17 @@ export interface Playbook {
|
|
|
22
22
|
embedding?: number[];
|
|
23
23
|
createdAt: Date;
|
|
24
24
|
updatedAt: Date;
|
|
25
|
+
/**
|
|
26
|
+
* Whether end-users can invoke this skill directly (e.g. via /slash-command).
|
|
27
|
+
* Propagated into the published SKILL.md frontmatter as `user-invocable`.
|
|
28
|
+
*/
|
|
29
|
+
userInvocable?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Arbitrary key-value metadata propagated verbatim into the published
|
|
32
|
+
* SKILL.md frontmatter `metadata:` block. Use for ecosystem-specific
|
|
33
|
+
* fields (audience, component, ecosystem) without changing the core schema.
|
|
34
|
+
*/
|
|
35
|
+
publishMetadata?: Record<string, unknown>;
|
|
25
36
|
}
|
|
26
37
|
/**
|
|
27
38
|
* When to apply this playbook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbook.d.ts","sourceRoot":"","sources":["../../src/types/playbook.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAGb,aAAa,EAAE,qBAAqB,CAAC;IAGrC,QAAQ,EAAE,gBAAgB,CAAC;IAG3B,YAAY,EAAE,oBAAoB,CAAC;IAGnC,SAAS,EAAE,iBAAiB,CAAC;IAG7B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAGhC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"playbook.d.ts","sourceRoot":"","sources":["../../src/types/playbook.ts"],"names":[],"mappings":"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"}
|
package/dist/types/playbook.js
CHANGED
|
@@ -34,6 +34,8 @@ export function createPlaybook(input) {
|
|
|
34
34
|
complexity: input.complexity ?? 'moderate',
|
|
35
35
|
estimatedEffort: input.estimatedEffort ?? 3,
|
|
36
36
|
embedding: input.embedding,
|
|
37
|
+
userInvocable: input.userInvocable,
|
|
38
|
+
publishMetadata: input.publishMetadata,
|
|
37
39
|
createdAt: input.createdAt ?? now,
|
|
38
40
|
updatedAt: input.updatedAt ?? now,
|
|
39
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbook.js","sourceRoot":"","sources":["../../src/types/playbook.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"playbook.js","sourceRoot":"","sources":["../../src/types/playbook.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqIH;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAIC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAClF,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI;YAClC,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;SACtB;QACD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI;YAC5B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;SAChB;QACD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI;YAC9B,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,GAAG;SAChB;QACD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,4BAA4B;QACjE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,UAAU;QAC1C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,CAAC;QAC3C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG;QACjC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,OAAoC,OAAO;IAE3C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC;QACnC,KAAK,OAAO,CAAC;QACb;YACE,OAAO,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;IAChF,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,UAAkB,CAAC;IACtE,OAAO,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC;AACtF,CAAC"}
|
|
@@ -11,4 +11,5 @@ export { teamPlaybookExtractionTemplate, type TeamPlaybookExtractionInput, type
|
|
|
11
11
|
export { playbookEfficacyAuditTemplate, type PlaybookEfficacyAuditInput, type PlaybookEfficacyAuditOutput, type PlaybookRecommendation, } from './playbook-efficacy-audit.js';
|
|
12
12
|
export { playbookDecayDetectionTemplate, type PlaybookDecayDetectionInput, type PlaybookDecayDetectionOutput, type DecaySignal, } from './playbook-decay-detection.js';
|
|
13
13
|
export { playbookLifecycleReviewTemplate, type PlaybookLifecycleReviewInput, type PlaybookLifecycleReviewOutput, type LifecycleRecommendation, } from './playbook-lifecycle-review.js';
|
|
14
|
+
export { skillEnrichmentTemplate, type SkillEnrichmentInput, type SkillEnrichmentOutput, } from './skill-enrichment.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workspace/templates/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,6BAA6B,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,WAAW,GACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,+BAA+B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workspace/templates/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACpB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,6BAA6B,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,8BAA8B,EAC9B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,WAAW,GACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,+BAA+B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC"}
|
|
@@ -24,4 +24,6 @@ export { playbookEfficacyAuditTemplate, } from './playbook-efficacy-audit.js';
|
|
|
24
24
|
export { playbookDecayDetectionTemplate, } from './playbook-decay-detection.js';
|
|
25
25
|
// Playbook Lifecycle Review (meta-learning — portfolio health)
|
|
26
26
|
export { playbookLifecycleReviewTemplate, } from './playbook-lifecycle-review.js';
|
|
27
|
+
// Skill Enrichment (publish pipeline — agent-enriched SKILL.md generation)
|
|
28
|
+
export { skillEnrichmentTemplate, } from './skill-enrichment.js';
|
|
27
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workspace/templates/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,sFAAsF;AACtF,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,6DAA6D;AAC7D,OAAO,EACL,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAE9B,qEAAqE;AACrE,OAAO,EACL,sBAAsB,GAGvB,MAAM,sBAAsB,CAAC;AAE9B,4DAA4D;AAC5D,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,0DAA0D;AAC1D,OAAO,EACL,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAElC,mDAAmD;AACnD,OAAO,EACL,2BAA2B,GAE5B,MAAM,2BAA2B,CAAC;AAEnC,wDAAwD;AACxD,OAAO,EACL,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,OAAO,EACL,8BAA8B,GAE/B,MAAM,+BAA+B,CAAC;AAEvC,2DAA2D;AAC3D,OAAO,EACL,8BAA8B,GAK/B,MAAM,+BAA+B,CAAC;AAEvC,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,GAI9B,MAAM,8BAA8B,CAAC;AAEtC,qEAAqE;AACrE,OAAO,EACL,8BAA8B,GAI/B,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,OAAO,EACL,+BAA+B,GAIhC,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workspace/templates/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,sFAAsF;AACtF,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,6DAA6D;AAC7D,OAAO,EACL,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAE9B,qEAAqE;AACrE,OAAO,EACL,sBAAsB,GAGvB,MAAM,sBAAsB,CAAC;AAE9B,4DAA4D;AAC5D,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,0DAA0D;AAC1D,OAAO,EACL,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAElC,mDAAmD;AACnD,OAAO,EACL,2BAA2B,GAE5B,MAAM,2BAA2B,CAAC;AAEnC,wDAAwD;AACxD,OAAO,EACL,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,OAAO,EACL,8BAA8B,GAE/B,MAAM,+BAA+B,CAAC;AAEvC,2DAA2D;AAC3D,OAAO,EACL,8BAA8B,GAK/B,MAAM,+BAA+B,CAAC;AAEvC,6DAA6D;AAC7D,OAAO,EACL,6BAA6B,GAI9B,MAAM,8BAA8B,CAAC;AAEtC,qEAAqE;AACrE,OAAO,EACL,8BAA8B,GAI/B,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,OAAO,EACL,+BAA+B,GAIhC,MAAM,gCAAgC,CAAC;AAExC,2EAA2E;AAC3E,OAAO,EACL,uBAAuB,GAGxB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Enrichment Template
|
|
3
|
+
*
|
|
4
|
+
* Agent-in-the-loop step between playbook extraction and skill publishing.
|
|
5
|
+
* Given a Playbook and its procedurally generated SKILL.md skeleton, an agent
|
|
6
|
+
* enriches the skill with narrative prose, worked examples, cross-references,
|
|
7
|
+
* and a trigger-rich description — things a procedural converter cannot produce.
|
|
8
|
+
*
|
|
9
|
+
* Complexity routing:
|
|
10
|
+
* - Simple playbooks (<=3 tactics, low complexity) → heuristic: keep procedural output as-is
|
|
11
|
+
* - Standard/complex playbooks → agent enrichment
|
|
12
|
+
*/
|
|
13
|
+
import type { Playbook } from '../../types/index.js';
|
|
14
|
+
import type { AgenticTaskTemplate } from '../types.js';
|
|
15
|
+
export interface SkillEnrichmentInput {
|
|
16
|
+
/** The playbook to enrich into a skill */
|
|
17
|
+
playbook: Playbook;
|
|
18
|
+
/** Optional: existing hand-written SKILL.md to use as style reference */
|
|
19
|
+
styleReference?: string;
|
|
20
|
+
/** Optional: related skill names for cross-referencing */
|
|
21
|
+
relatedSkills?: Array<{
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
}>;
|
|
25
|
+
/** Optional: domain context (e.g. "swarmkit ecosystem", "TypeScript tooling") */
|
|
26
|
+
domainContext?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface SkillEnrichmentOutput {
|
|
29
|
+
/** Enriched SKILL.md frontmatter description (trigger-rich, under 1024 chars) */
|
|
30
|
+
description: string;
|
|
31
|
+
/** Enriched markdown body (replaces the procedural instructions) */
|
|
32
|
+
instructions: string;
|
|
33
|
+
/** Worked examples the agent generated */
|
|
34
|
+
examples: Array<{
|
|
35
|
+
title: string;
|
|
36
|
+
scenario: string;
|
|
37
|
+
steps: string;
|
|
38
|
+
}>;
|
|
39
|
+
/** Cross-references to related skills */
|
|
40
|
+
seeAlso: Array<{
|
|
41
|
+
name: string;
|
|
42
|
+
relation: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** Agent's assessment of the playbook's completeness */
|
|
45
|
+
gaps: string[];
|
|
46
|
+
}
|
|
47
|
+
export declare const skillEnrichmentTemplate: AgenticTaskTemplate<SkillEnrichmentInput, SkillEnrichmentOutput>;
|
|
48
|
+
//# sourceMappingURL=skill-enrichment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-enrichment.d.ts","sourceRoot":"","sources":["../../../src/workspace/templates/skill-enrichment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,QAAQ,EAAE,QAAQ,CAAC;IACnB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,yCAAyC;IACzC,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,wDAAwD;IACxD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAMD,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CACvD,oBAAoB,EACpB,qBAAqB,CAkNtB,CAAC"}
|