ctxr-cli 0.29.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/commands/land.d.ts.map +1 -1
- package/dist/commands/land.js +3 -18
- package/dist/commands/land.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +10 -2
- package/dist/commands/serve.js.map +1 -1
- package/dist/config/defaults.d.ts +2 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +39 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +57 -8
- package/dist/config/schema.js.map +1 -1
- package/dist/core/browse/approve.d.ts +3 -0
- package/dist/core/browse/approve.d.ts.map +1 -1
- package/dist/core/browse/approve.js.map +1 -1
- package/dist/core/browse/page-url.d.ts +15 -0
- package/dist/core/browse/page-url.d.ts.map +1 -1
- package/dist/core/browse/page-url.js +8 -1
- package/dist/core/browse/page-url.js.map +1 -1
- package/dist/core/forge/credentials.d.ts +12 -1
- package/dist/core/forge/credentials.d.ts.map +1 -1
- package/dist/core/forge/credentials.js +25 -1
- package/dist/core/forge/credentials.js.map +1 -1
- package/dist/core/forge/github.d.ts +9 -0
- package/dist/core/forge/github.d.ts.map +1 -1
- package/dist/core/forge/github.js +6 -0
- package/dist/core/forge/github.js.map +1 -1
- package/dist/core/mcp/drafts.d.ts +30 -0
- package/dist/core/mcp/drafts.d.ts.map +1 -0
- package/dist/core/mcp/drafts.js +52 -0
- package/dist/core/mcp/drafts.js.map +1 -0
- package/dist/core/mcp/http.d.ts +40 -0
- package/dist/core/mcp/http.d.ts.map +1 -0
- package/dist/core/mcp/http.js +90 -0
- package/dist/core/mcp/http.js.map +1 -0
- package/dist/core/mcp/jsonrpc.d.ts +73 -0
- package/dist/core/mcp/jsonrpc.d.ts.map +1 -0
- package/dist/core/mcp/jsonrpc.js +149 -0
- package/dist/core/mcp/jsonrpc.js.map +1 -0
- package/dist/core/mcp/members.d.ts +11 -0
- package/dist/core/mcp/members.d.ts.map +1 -0
- package/dist/core/mcp/members.js +21 -0
- package/dist/core/mcp/members.js.map +1 -0
- package/dist/core/mcp/oauth.d.ts +99 -0
- package/dist/core/mcp/oauth.d.ts.map +1 -0
- package/dist/core/mcp/oauth.js +454 -0
- package/dist/core/mcp/oauth.js.map +1 -0
- package/dist/core/mcp/pages.d.ts +3 -0
- package/dist/core/mcp/pages.d.ts.map +1 -0
- package/dist/core/mcp/pages.js +41 -0
- package/dist/core/mcp/pages.js.map +1 -0
- package/dist/core/mcp/ripgrep.d.ts +48 -0
- package/dist/core/mcp/ripgrep.d.ts.map +1 -0
- package/dist/core/mcp/ripgrep.js +98 -0
- package/dist/core/mcp/ripgrep.js.map +1 -0
- package/dist/core/mcp/rwlock.d.ts +16 -0
- package/dist/core/mcp/rwlock.d.ts.map +1 -0
- package/dist/core/mcp/rwlock.js +59 -0
- package/dist/core/mcp/rwlock.js.map +1 -0
- package/dist/core/mcp/sessions.d.ts +84 -0
- package/dist/core/mcp/sessions.d.ts.map +1 -0
- package/dist/core/mcp/sessions.js +154 -0
- package/dist/core/mcp/sessions.js.map +1 -0
- package/dist/core/mcp/surface.d.ts +42 -0
- package/dist/core/mcp/surface.d.ts.map +1 -0
- package/dist/core/mcp/surface.js +141 -0
- package/dist/core/mcp/surface.js.map +1 -0
- package/dist/core/mcp/sync.d.ts +91 -0
- package/dist/core/mcp/sync.d.ts.map +1 -0
- package/dist/core/mcp/sync.js +218 -0
- package/dist/core/mcp/sync.js.map +1 -0
- package/dist/core/mcp/tools/capture.d.ts +64 -0
- package/dist/core/mcp/tools/capture.d.ts.map +1 -0
- package/dist/core/mcp/tools/capture.js +182 -0
- package/dist/core/mcp/tools/capture.js.map +1 -0
- package/dist/core/mcp/tools/edit.d.ts +79 -0
- package/dist/core/mcp/tools/edit.d.ts.map +1 -0
- package/dist/core/mcp/tools/edit.js +212 -0
- package/dist/core/mcp/tools/edit.js.map +1 -0
- package/dist/core/mcp/tools/files.d.ts +163 -0
- package/dist/core/mcp/tools/files.d.ts.map +1 -0
- package/dist/core/mcp/tools/files.js +265 -0
- package/dist/core/mcp/tools/files.js.map +1 -0
- package/dist/core/mcp/tools/find.d.ts +82 -0
- package/dist/core/mcp/tools/find.d.ts.map +1 -0
- package/dist/core/mcp/tools/find.js +136 -0
- package/dist/core/mcp/tools/find.js.map +1 -0
- package/dist/core/mcp/tools/gather.d.ts +88 -0
- package/dist/core/mcp/tools/gather.d.ts.map +1 -0
- package/dist/core/mcp/tools/gather.js +123 -0
- package/dist/core/mcp/tools/gather.js.map +1 -0
- package/dist/core/mcp/tools/index.d.ts +21 -0
- package/dist/core/mcp/tools/index.d.ts.map +1 -0
- package/dist/core/mcp/tools/index.js +129 -0
- package/dist/core/mcp/tools/index.js.map +1 -0
- package/dist/core/skills.d.ts +18 -2
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -5
- package/dist/core/skills.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/mcp/Edit.md +7 -0
- package/templates/mcp/Glob.md +5 -0
- package/templates/mcp/Grep.md +10 -0
- package/templates/mcp/Read.md +7 -0
- package/templates/mcp/Write.md +7 -0
- package/templates/mcp/capture.md +9 -0
- package/templates/mcp/consent.html +40 -0
- package/templates/mcp/find.md +9 -0
- package/templates/mcp/gather.md +5 -0
- package/templates/mcp/server-instructions.md +17 -0
- package/templates/skills/ctxr-circleback/sweep.mjs +229 -0
- package/templates/skills/ctxr-circleback.md +70 -0
package/dist/core/skills.js
CHANGED
|
@@ -3,7 +3,7 @@ import { readdirSync, readFileSync } from 'node:fs';
|
|
|
3
3
|
import { mkdir, readdir, readFile, rm } from 'node:fs/promises';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import { DEFAULT_HOUSE_CONVENTIONS_FILE_NAME, DEFAULT_LOG_PATH, DEFAULT_MISSION_MAX_BYTES, DEFAULT_SCRATCH_PATH, RELATION_DIRECTEDNESS_NOTE, RELATION_VOCABULARY } from '../config/defaults.js';
|
|
6
|
+
import { DEFAULT_CIRCLEBACK_DECLINE_TAG, DEFAULT_HOUSE_CONVENTIONS_FILE_NAME, DEFAULT_LOG_PATH, DEFAULT_MISSION_MAX_BYTES, DEFAULT_SCRATCH_PATH, RELATION_DIRECTEDNESS_NOTE, RELATION_VOCABULARY } from '../config/defaults.js';
|
|
7
7
|
import { scanDocsDir, SKILL_FILE_NAME } from './conventions.js';
|
|
8
8
|
import { GRAPH_DOCUMENT_RELATIVE_PATH } from './graph/persist.js';
|
|
9
9
|
import { writeFileAtomic } from './fs/atomic.js';
|
|
@@ -280,6 +280,52 @@ const RESEARCH = {
|
|
|
280
280
|
.replaceAll('__LOG_PATH__', config.organize.log_path ?? DEFAULT_LOG_PATH)
|
|
281
281
|
.split('\n'),
|
|
282
282
|
};
|
|
283
|
+
/**
|
|
284
|
+
* circleback-sweep: the first opt-in owned skill, and the first that names a
|
|
285
|
+
* capture source. It exists only in a store that declares a `circleback`
|
|
286
|
+
* block, so the generic capture skill stays source-neutral. Named for the
|
|
287
|
+
* source rather than a command: there is no `ctxr circleback`. Its runner
|
|
288
|
+
* drives Circleback's own CLI, which holds its own credential; nothing here
|
|
289
|
+
* reads or stores one. `settings.json` is rendered because the runner, being
|
|
290
|
+
* stdlib-only, cannot parse `contexture.yaml`.
|
|
291
|
+
*/
|
|
292
|
+
const CIRCLEBACK = {
|
|
293
|
+
file: 'ctxr-circleback',
|
|
294
|
+
name: 'Circleback',
|
|
295
|
+
description: "Find the Circleback meetings this store's tag says it owes, render their captures into the inbox on a review branch, add the speaker judgment, and open the pull request.",
|
|
296
|
+
body: (config) => skillTemplate('ctxr-circleback')
|
|
297
|
+
.replaceAll('__SKILLS_PATH__', config.harness.skills_path.replace(/\/+$/, ''))
|
|
298
|
+
.replaceAll('__INBOX_PATH__', config.ingest.inbox_path)
|
|
299
|
+
.replaceAll('__DEFAULT_BRANCH__', config.git.default_branch)
|
|
300
|
+
.split('\n'),
|
|
301
|
+
supportingFiles: (config) => {
|
|
302
|
+
const files = new Map(skillSupportingFiles('ctxr-circleback'));
|
|
303
|
+
files.set('settings.json', circlebackSettings(config));
|
|
304
|
+
return files;
|
|
305
|
+
},
|
|
306
|
+
enabled: (config) => config.circleback !== undefined,
|
|
307
|
+
};
|
|
308
|
+
/** The store's Circleback routing, as the runner reads it. Only called for a store that declares the block. */
|
|
309
|
+
function circlebackSettings(config) {
|
|
310
|
+
const circleback = config.circleback;
|
|
311
|
+
if (circleback === undefined)
|
|
312
|
+
throw new Error('circleback settings rendered for a store without a circleback block');
|
|
313
|
+
const settings = {
|
|
314
|
+
tag: circleback.tag,
|
|
315
|
+
other_tags: circleback.other_tags ?? [],
|
|
316
|
+
decline_tag: circleback.decline_tag ?? DEFAULT_CIRCLEBACK_DECLINE_TAG,
|
|
317
|
+
inbox_path: config.ingest.inbox_path,
|
|
318
|
+
default_branch: config.git.default_branch,
|
|
319
|
+
required_section: config.ingest.required_capture_sections?.circleback ?? null,
|
|
320
|
+
};
|
|
321
|
+
return `${JSON.stringify(settings, null, 2)}\n`;
|
|
322
|
+
}
|
|
323
|
+
/** Owned skills a store gets only by opting in; each carries `enabled`. */
|
|
324
|
+
export const OPTIONAL_SKILLS = [CIRCLEBACK];
|
|
325
|
+
/** Every owned skill this store is shipped: the full set plus the opt-in ones its config enables. */
|
|
326
|
+
export function activeSkillSeeds(config) {
|
|
327
|
+
return [...SKILLS, ...OPTIONAL_SKILLS.filter((seed) => seed.enabled?.(config) === true)];
|
|
328
|
+
}
|
|
283
329
|
export const SKILLS = [
|
|
284
330
|
CAPTURE,
|
|
285
331
|
INGEST_ORCHESTRATION,
|
|
@@ -301,7 +347,7 @@ export const SKILLS = [
|
|
|
301
347
|
];
|
|
302
348
|
/** The owned skills, rendered against one store's configuration — what `syncShippedSkills` writes. */
|
|
303
349
|
export function renderSkills(config) {
|
|
304
|
-
return renderSkillSeeds(
|
|
350
|
+
return renderSkillSeeds(activeSkillSeeds(config), config);
|
|
305
351
|
}
|
|
306
352
|
function renderSkillSeeds(seeds, config) {
|
|
307
353
|
return seeds.map((seed) => ({
|
|
@@ -309,7 +355,7 @@ function renderSkillSeeds(seeds, config) {
|
|
|
309
355
|
name: seed.name,
|
|
310
356
|
description: seed.description,
|
|
311
357
|
content: skillDocument(seed, config),
|
|
312
|
-
supportingFiles: seed.supportingFiles?.() ?? new Map(),
|
|
358
|
+
supportingFiles: seed.supportingFiles?.(config) ?? new Map(),
|
|
313
359
|
}));
|
|
314
360
|
}
|
|
315
361
|
/**
|
|
@@ -341,7 +387,7 @@ export function skillPaths(config) {
|
|
|
341
387
|
* pruned. Returns every path it wrote or removed.
|
|
342
388
|
*/
|
|
343
389
|
export async function syncShippedSkills(root, config) {
|
|
344
|
-
return syncSkillSeeds(root, config,
|
|
390
|
+
return syncSkillSeeds(root, config, activeSkillSeeds(config));
|
|
345
391
|
}
|
|
346
392
|
export async function syncSkillSeeds(root, config, seeds) {
|
|
347
393
|
const changed = [];
|
|
@@ -411,7 +457,7 @@ export async function syncSkillSeeds(root, config, seeds) {
|
|
|
411
457
|
* not carry is left out here; reporting it is `syncVendoredSkills`' job.
|
|
412
458
|
* Paths are store-relative and posix, the spelling `skillPaths` and git use.
|
|
413
459
|
*/
|
|
414
|
-
export async function shippedSkillFiles(config, seeds =
|
|
460
|
+
export async function shippedSkillFiles(config, seeds = activeSkillSeeds(config)) {
|
|
415
461
|
const shipped = new Map();
|
|
416
462
|
const at = (...parts) => path.join(config.harness.skills_path, ...parts).split(path.sep).join('/');
|
|
417
463
|
for (const skill of renderSkillSeeds(seeds, config)) {
|
package/dist/core/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mCAAmC,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGhM,OAAO,EAAE,WAAW,EAAE,eAAe,EAAmB,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxH,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACtD,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC;;gBAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,KAAK,CAAC;AACf,CAAC;AA4CD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,gIAAgI,CAAC;AAEnI;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,wEAAwE,CAAC;AACnG,MAAM,eAAe,GAAG,8DAA8D,CAAC;AAEvF,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACzI,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAmB;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CAAC,IAAe,EAAE,MAAmB;IACzD,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,SAAS,IAAI,CAAC,IAAI,EAAE;QACpB,gBAAgB,IAAI,CAAC,WAAW,EAAE;QAClC,KAAK;QACL,EAAE;QACF,oBAAoB;QACpB,EAAE;QACF,KAAK,IAAI,CAAC,IAAI,EAAE;QAChB,EAAE;QACF,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,MAA6B;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB;IAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,oBAAoB;YACpB,EAAE;YACF,0GAA0G;YAC1G,4GAA4G;YAC5G,wCAAwC;SACzC,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,oBAAoB;QACpB,EAAE;QACF,sGAAsG;QACtG,2EAA2E;QAC3E,iFAAiF;KAClF,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,0BAA0B,SAAS,CAAC,WAAW,CAAC,6DAA6D,EAC7G,0GAA0G,EAC1G,uGAAuG,EACvG,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,KAAK,SAAS,CAAC,OAAO,CAAC,qFAAqF,EAC5G,qFAAqF,CACtF,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kGAAkG,CAAC,CAAC;IACnH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,SAAS,GAAc;IAC3B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,wHAAwH;IACrI,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,gBAAgB,CAAC;SAC5B,OAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;SACvD,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAC7E,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,GAAc;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,WAAW,EACT,kIAAkI;IACpI,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,cAAc,CAAC;SAC1B,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SACtD,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;SAC1D,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,oBAAoB,GAAc;IACtC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,oLAAoL;IACjM,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,2BAA2B,CAAC;SACvC,UAAU,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;SACnE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;SACvD,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC;SACxE,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,kBAAkB,GAAc;IACpC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,qHAAqH;IAClI,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACrI,CAAC;AAEF;;;;GAIG;AACH;;;;;GAKG;AACH,SAAS,oBAAoB;IAC3B,OAAO;QACL,mGAAmG;QACnG,wGAAwG;QACxG,gEAAgE;QAChE,EAAE;QACF,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9F,EAAE;QACF,MAAM,0BAA0B,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAc;IACrC,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qJAAqJ;IAClK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACjJ,CAAC;AAEF,MAAM,MAAM,GAAc;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,yIAAyI;IACtJ,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,OAAO,GAAc;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,WAAW,EACT,kSAAkS;IACpS,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,cAAc,CAAC;SAC1B,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC;SACxE,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;SAC3G,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,GAAc;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,+JAA+J;IAC5K,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACvH,CAAC;AAEF,MAAM,IAAI,GAAc;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,qKAAqK;IAClL,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACrH,CAAC;AAEF,MAAM,iBAAiB,GAAc;IACnC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,yLAAyL;IACtM,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CAClI,CAAC;AAEF,0FAA0F;AAC1F,SAAS,oBAAoB,CAAC,MAAmB;IAC/C,OAAO,IAAI;SACR,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,mCAAmC,CAAC;SACvE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,OAAO,GAAc;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,WAAW,EACT,gPAAgP;IAClP,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,eAAe,GAAc;IACjC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,mLAAmL;IACrL,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,sBAAsB,CAAC;SAClC,UAAU,CAAC,4BAA4B,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACtE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;SACvD,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,iBAAiB,GAAc;IACnC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,4JAA4J;IACzK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CAClI,CAAC;AAEF,MAAM,cAAc,GAAc;IAChC,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,yJAAyJ;IACtK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,qBAAqB,CAAC;SACjC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC;SACxE,UAAU,CAAC,yBAAyB,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAC1E,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,OAAO,GAAc;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,4IAA4I;IACzJ,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;CACtD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,cAAc,GAAc;IAChC,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+KAA+K;IACjL,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAChJ,eAAe,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;CACnE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAc;IAC1B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,0SAA0S;IAC5S,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,aAAa,CAAC,eAAe,CAAC;SAC3B,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,oBAAoB,CAAC;SACnF,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,gBAAgB,CAAC;SACxE,KAAK,CAAC,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAyB;IAC1C,OAAO;IACP,oBAAoB;IACpB,SAAS;IACT,kBAAkB;IAClB,mBAAmB;IACnB,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,OAAO;IACP,MAAM;IACN,IAAI;IACJ,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,OAAO;IACP,cAAc;IACd,QAAQ;CACT,CAAC;AAEF,sGAAsG;AACtG,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA2B,EAAE,MAAmB;IACxE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QACpC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,IAAI,GAAG,EAAkB;KACvE,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,MAAmB;IAC1D,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,CAAC,eAAe,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACjF,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAmB;IACvE,OAAO,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,MAAmB,EAAE,KAA2B;IACjG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAe,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5F,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;QAErE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAiB,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QACrG,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC,KAAK,OAAO;gBAAE,SAAS;YAC7D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,MAAM,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,MAAM,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpD,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC9B,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,OAAO,GAA+C,EAAE,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAAE,SAAS,CAAC,mCAAmC;QAC1F,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAmB,EAAE,KAAK,GAAyB,MAAM;IAC/F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,EAAE,GAAG,CAAC,GAAG,KAAe,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErH,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,eAAe;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,GAAG,GAAG,EAAE;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3H,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACtD,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;;YAClE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AA4BD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,iHAAiH;AACjH,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,KAAK,UAAU,IAAI,CAAC,GAAW;QAC7B,sEAAsE;QACtE,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1F,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACtD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,KAAK,EAAE;gBAAE,SAAS;YAC7D,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACpC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAuB,CAAC;IAC/G,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,YAAoB;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,OAAuE,EACvE,WAAmB;IAEnB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAuB,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1E,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,6BAA6B,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,MAAmB,EAAE,WAAmB;IAC7F,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE/C,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,gBAAoC;QACtF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;QACxE,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,MAAM,CAAC;IAC5E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;YACjG,IAAI,eAAe;gBAAE,SAAS,CAAC,yDAAyD;YAExF,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACzD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,6BAA6B,CAAC,EAAE,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,IAAI,GAAG,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAuB,CAAC;QACtE,IAAI,CAAC,CAAC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kCAAkC;gBACxC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI,gBAAgB,IAAI,eAAe,qEAAqE;gBACrH,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;YAAE,SAAS,CAAC,kBAAkB;QAEvF,MAAM,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,6BAA6B,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAA+C,EAAE,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC1F,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS,CAAC,0CAA0C;QAElF,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAuB,CAAC;QACtE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrG,IAAI,MAAM,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACzD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kCAAkC;gBACxC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI,gBAAgB,IAAI,eAAe,iFAAiF;gBACjI,OAAO,EAAE,KAAK,CAAC,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Kept in sync with package.json's "version" field. */
|
|
2
|
-
export declare const CLI_VERSION = "0.
|
|
2
|
+
export declare const CLI_VERSION = "0.31.0";
|
|
3
3
|
/**
|
|
4
4
|
* The npm package this executable is published as. Bound here, beside the
|
|
5
5
|
* version, because the release check resolves the latest published release by
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Kept in sync with package.json's "version" field. */
|
|
2
|
-
export const CLI_VERSION = '0.
|
|
2
|
+
export const CLI_VERSION = '0.31.0';
|
|
3
3
|
/**
|
|
4
4
|
* The npm package this executable is published as. Bound here, beside the
|
|
5
5
|
* version, because the release check resolves the latest published release by
|
package/package.json
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Makes an exact string replacement in a note, like a local Edit tool.
|
|
2
|
+
|
|
3
|
+
- Read the note first, and copy `old_string` exactly as it appears, including indentation and line breaks. Do not include the line-number prefix that `Read` shows.
|
|
4
|
+
- The edit fails if `old_string` is not unique in the note. Give more surrounding text to make it unique, or set `replace_all` to change every occurrence.
|
|
5
|
+
- Only notes can be edited: never configuration, the entry document, captures or tool-owned files.
|
|
6
|
+
|
|
7
|
+
Edits do not change the store directly. Each one is saved to your draft, a pull request that collects all of your edits and lands only once someone approves it on the store's approval page. Tell the person that, and give them the approval link the result returns. If someone asked for changes on your draft, more edits go into the same draft.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
A search tool over the store's files, built on ripgrep, with the same parameters as a local Grep tool.
|
|
2
|
+
|
|
3
|
+
- Supports full regular-expression syntax (e.g. `kestrel.*launch`, `^## Decisions`).
|
|
4
|
+
- Filter files with `glob` (e.g. `projects/**/*.md`) or `type` (e.g. `md`).
|
|
5
|
+
- `output_mode`: `content` shows matching lines (with `-n` line numbers, `-A`/`-B`/`-C` context); `files_with_matches` shows only file paths (the default); `count` shows match counts.
|
|
6
|
+
- `multiline: true` lets a pattern span lines.
|
|
7
|
+
- Results are in path order. Use `head_limit` and `offset` to page through many results.
|
|
8
|
+
- Matching captures still awaiting approval are listed after the results. They are not in the store yet.
|
|
9
|
+
|
|
10
|
+
For a plain question about what the store knows, `find` (with glosses and links) is usually the better start. Use Grep for an exact pattern.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Reads a file from the store. Works like a local Read tool: `file_path` is relative to the store root (a leading `/` means the store root), and the result is numbered like `cat -n`, starting at 1.
|
|
2
|
+
|
|
3
|
+
- By default it reads up to 2000 lines from the start; use `offset` and `limit` for longer files.
|
|
4
|
+
- It reads notes, the entry document (`AGENTS.md`), and captures under the inbox. A capture is raw material not yet filed into a note: never present it as what the store says.
|
|
5
|
+
- If you have a pending draft that changed this note (from `Edit` or `Write`), you get your draft's version, marked as such. Other people still see the version in the store until your draft is approved.
|
|
6
|
+
- Configuration, derived files and tool-owned folders cannot be read.
|
|
7
|
+
- A note's result names its page on the store's site. When you cite the note to the person, include that link.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Creates a new note, like a local Write tool, except that it never overwrites. Use `Edit` to change a note that already exists.
|
|
2
|
+
|
|
3
|
+
- `file_path` is relative to the store root and must end in `.md`, e.g. `projects/kestrel-launch.md`. Put it where similar notes live: use `Glob` or `find` to see the store's folders first.
|
|
4
|
+
- Follow the store's conventions for notes (frontmatter, headings, links). `Read` `AGENTS.md` if you have not.
|
|
5
|
+
- Captures of outside material go through `capture`, not `Write`.
|
|
6
|
+
|
|
7
|
+
Like edits, a new note goes into your draft and lands only once someone approves it. Tell the person, and give them the approval link the result returns.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Save one item of outside material — a meeting transcript or notes, an email, a document, a web page — into the store's inbox, where it waits to be reviewed and filed into notes. It never changes an existing note.
|
|
2
|
+
|
|
3
|
+
Rules:
|
|
4
|
+
- Pass the material in its own words. Copy it through; do not condense, reorder, correct or summarise it. If the source supplies its own summary, keep it in a separate section marked as the source's summary, beside the record rather than instead of it.
|
|
5
|
+
- One item per call. Two meetings are two captures.
|
|
6
|
+
- `source_type` names where the material came from, lowercased (for example `email`, `meeting`, `web`, `document`). Use the same word the store already uses for that source.
|
|
7
|
+
- `source_id` is the source system's own identifier for the item when you have one (a message id, a meeting id, a URL). Leave it out when there is none.
|
|
8
|
+
|
|
9
|
+
The store refuses material it already holds, and tells you where; tell the person rather than retrying.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Connect an app to __STORE_NAME__</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { color-scheme: light dark; --fg: #1d1d1f; --muted: #5f6368; --bg: #f6f6f4; --card: #ffffff; --line: #d9d9d4; --accent: #2f5d50; }
|
|
9
|
+
@media (prefers-color-scheme: dark) { :root { --fg: #ececea; --muted: #a4a4a0; --bg: #1b1b1a; --card: #262624; --line: #3a3a37; --accent: #8cc5b2; } }
|
|
10
|
+
* { box-sizing: border-box; }
|
|
11
|
+
body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 16px; background: var(--bg); color: var(--fg); font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
|
|
12
|
+
main { width: 100%; max-width: 440px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 28px 24px; }
|
|
13
|
+
h1 { font-size: 1.25rem; margin: 0 0 12px; }
|
|
14
|
+
p { margin: 0 0 12px; }
|
|
15
|
+
.muted { color: var(--muted); }
|
|
16
|
+
ul { margin: 0 0 16px; padding-left: 20px; }
|
|
17
|
+
code { font: 0.95em ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
18
|
+
.actions { display: flex; gap: 12px; margin-top: 20px; }
|
|
19
|
+
button { flex: 1; padding: 12px; font: inherit; font-weight: 600; border-radius: 8px; cursor: pointer; border: 1px solid var(--line); background: transparent; color: var(--fg); }
|
|
20
|
+
button.allow { border: 0; background: var(--accent); color: var(--card); }
|
|
21
|
+
</style>
|
|
22
|
+
</head>
|
|
23
|
+
<body>
|
|
24
|
+
<main>
|
|
25
|
+
<h1>Connect __CLIENT_NAME__ to __STORE_NAME__?</h1>
|
|
26
|
+
<p>You are signed in as <strong>__EMAIL__</strong>. If you allow it, this app may, as you:</p>
|
|
27
|
+
<ul>
|
|
28
|
+
__SCOPE_ITEMS__
|
|
29
|
+
</ul>
|
|
30
|
+
<p class="muted">It will be sent back to <code>__REDIRECT_HOST__</code>. Only allow this if you just started connecting the store from that app yourself.</p>
|
|
31
|
+
<form method="post" action="/authorize">
|
|
32
|
+
__HIDDEN_FIELDS__
|
|
33
|
+
<div class="actions">
|
|
34
|
+
<button type="submit" name="decision" value="deny">Cancel</button>
|
|
35
|
+
<button type="submit" name="decision" value="allow" class="allow">Allow</button>
|
|
36
|
+
</div>
|
|
37
|
+
</form>
|
|
38
|
+
</main>
|
|
39
|
+
</body>
|
|
40
|
+
</html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Look for notes in the store that contain a literal word or phrase (case-insensitive), or, with no text, get the map of the store.
|
|
2
|
+
|
|
3
|
+
With text: returns `notes` in path order — each with its path, its one-line gloss, up to three matching lines with line numbers, and a link when the store has a browsable address. There is no relevance score; choose from the glosses. Matching raw captures that have not been filed into a note come back separately in `unfiled` (marked `pending_merge` when still waiting for approval); they are not what the store says, so never quote them as its position.
|
|
4
|
+
|
|
5
|
+
Without text: returns every section of the store's catalog with the notes it lists and their glosses — use it to find the right words or the right notes to pass to `gather` as seeds.
|
|
6
|
+
|
|
7
|
+
When you cite a note, include its link, so the person can open it.
|
|
8
|
+
|
|
9
|
+
Use `under` to look in one folder only. Search for the distinctive word (a name, a project, a term), not a whole question.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Read notes in full, together with the notes linked to and from them — the store's own way of pulling in related context.
|
|
2
|
+
|
|
3
|
+
Start from note paths `find` returned (`seeds`), from a catalog section, from a folder (`under`), or from a note whose backlinks to follow (`entities`). With `hops: 1` (the default) you also get every note one link away; `hops: 0` returns only the notes you named. Each note carries why it is there (the labels, and its distance in links) and its full text, in a fixed order, until a size budget runs out; the remaining notes are listed without text — gather them again by name if you need them.
|
|
4
|
+
|
|
5
|
+
Cite what you use by its path. A capture (a path under the inbox) cannot start a gather: it is not a note yet. Read it with `Read` instead.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
This connector reaches __STORE_NAME__, a contexture store: a git repository of markdown notes that a group of people keep together, plus a raw inbox of material not yet filed into notes.
|
|
2
|
+
|
|
3
|
+
Use it whenever the person asks about something the store might hold — decisions, projects, people, meetings, how things work — before answering from general knowledge, and say when the store had nothing.
|
|
4
|
+
|
|
5
|
+
How to look something up:
|
|
6
|
+
|
|
7
|
+
1. Call `find` with a literal word or phrase from the question. It returns the notes containing it, in path order, each with a one-line gloss, the matching lines and a link. It does not rank: read the glosses and pick. Call `find` with no text to see the map of the store — every section and the notes it lists — when you do not know what word to search for.
|
|
8
|
+
2. Call `gather` with the paths that look relevant as seeds. It returns those notes and the notes linked to and from them, with their full text, and says why each one is there.
|
|
9
|
+
3. Answer from what came back, citing the note paths (and links, when given). If the notes disagree or look out of date, say so.
|
|
10
|
+
|
|
11
|
+
`find` also lists matching items in `unfiled`. Those are raw captures nobody has filed into a note yet; some are still waiting for approval. Never present them as what the store says. Mention them as unfiled material when they are relevant, and use them to notice that something was already captured.
|
|
12
|
+
|
|
13
|
+
How to save something: call `capture` when the person asks you to save, keep or record material in the store. Pass the material itself in its own words — a transcript, an email, a document, meeting notes as written — not your summary of it. One item per call. The capture waits on the store's approval page until someone approves it, then lands in the inbox for filing; it does not change any note. Tell the person it is awaiting approval, and give them the approval link the call returns.
|
|
14
|
+
|
|
15
|
+
The store also offers the file tools a coding assistant has locally, with the same names and parameters: `Read`, `Grep` and `Glob` to look around, and, for people allowed to edit, `Edit` and `Write` to change notes. Edits and new notes go into the person's draft, a pull request that lands only once someone approves it on the store's approval page; say so, and give the approval link each result returns. Read `AGENTS.md` before writing a note, so it follows the store's conventions.
|
|
16
|
+
|
|
17
|
+
Every result carries `store.head`, the commit it was read from, and `store.sync_error` when the server could not fetch the latest version; mention that the answer may be out of date if it is set.
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Work out which Circleback meetings this store owes, and render their captures on a review branch.
|
|
3
|
+
//
|
|
4
|
+
// Shipped by contexture as part of the ctxr-circleback skill; `ctxr update` rewrites it, so do not edit
|
|
5
|
+
// it in a store. Node standard library only. It drives Circleback's own CLI (`cb`), which holds its own
|
|
6
|
+
// credential, plus `git` and `gh`; it never reads or stores a credential itself.
|
|
7
|
+
//
|
|
8
|
+
// The store's routing is in settings.json beside this file. The store is CONTEXTURE_STORE_ROOT, or the
|
|
9
|
+
// git repository the current directory is in.
|
|
10
|
+
//
|
|
11
|
+
// Two facts about `cb` shape this file: search results carry no tags (every `tags` field is empty), so
|
|
12
|
+
// tags come from `cb meetings read`; and a meeting older than the plan's history window reads back with
|
|
13
|
+
// a notice in place of its notes, which is how a locked meeting is recognised.
|
|
14
|
+
|
|
15
|
+
import { execFileSync } from 'node:child_process';
|
|
16
|
+
import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
17
|
+
import { tmpdir } from 'node:os';
|
|
18
|
+
import path from 'node:path';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
20
|
+
|
|
21
|
+
const HERE = path.dirname(fileURLToPath(import.meta.url));
|
|
22
|
+
const LOOKBACK_DAYS = 35;
|
|
23
|
+
const URGENT_DAYS = 25;
|
|
24
|
+
const DECLINE_REPORT_DAYS = 8;
|
|
25
|
+
const PAGE_SIZE = 20;
|
|
26
|
+
const READ_BATCH = 50;
|
|
27
|
+
const BRANCH = 'circleback-capture';
|
|
28
|
+
const LOCKED_NOTICE = 'outside the history available';
|
|
29
|
+
|
|
30
|
+
function run(command, args, { cwd, check = true } = {}) {
|
|
31
|
+
try {
|
|
32
|
+
return execFileSync(command, args, { cwd, encoding: 'utf8', maxBuffer: 256 * 1024 * 1024, timeout: 180_000, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
33
|
+
} catch (error) {
|
|
34
|
+
if (!check) return error.stdout ?? '';
|
|
35
|
+
const detail = String(error.stderr || error.message).trim().slice(0, 300);
|
|
36
|
+
throw new Error(`${command} ${args.slice(0, 2).join(' ')} failed: ${detail}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function cb(args) {
|
|
41
|
+
return JSON.parse(run('cb', [...args, '--json']));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function storeRoot() {
|
|
45
|
+
const fromEnv = process.env.CONTEXTURE_STORE_ROOT;
|
|
46
|
+
if (fromEnv) return fromEnv;
|
|
47
|
+
return run('git', ['rev-parse', '--show-toplevel']).trim();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function tagNames(meeting) {
|
|
51
|
+
return new Set((meeting.tags ?? []).map((tag) => (typeof tag === 'string' ? tag : tag.name)));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function asList(value) {
|
|
55
|
+
return Array.isArray(value) ? value : [value];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function line(meeting) {
|
|
59
|
+
return `${meeting.createdAt.slice(0, 10)} | ${meeting.id} | ${meeting.name.trim()}`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Every meeting from the lookback window, read in full so its tags are present. */
|
|
63
|
+
function recentMeetings() {
|
|
64
|
+
const ids = [];
|
|
65
|
+
for (let page = 0; ; page += 1) {
|
|
66
|
+
const batch = cb(['meetings', 'search', '--last', String(LOOKBACK_DAYS), '--page', String(page)]);
|
|
67
|
+
ids.push(...batch.map((meeting) => meeting.id));
|
|
68
|
+
if (batch.length < PAGE_SIZE) break;
|
|
69
|
+
}
|
|
70
|
+
const meetings = [];
|
|
71
|
+
for (let i = 0; i < ids.length; i += READ_BATCH) meetings.push(...asList(cb(['meetings', 'read', ...ids.slice(i, i + READ_BATCH)])));
|
|
72
|
+
return meetings.sort((a, b) => a.createdAt.localeCompare(b.createdAt));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Circleback ids already in the default branch, and in each open pull request's diff. */
|
|
76
|
+
function presence(root, settings) {
|
|
77
|
+
run('git', ['fetch', '-q', 'origin'], { cwd: root });
|
|
78
|
+
const onMain = new Set(
|
|
79
|
+
run('git', ['grep', '-h', '-o', '-E', 'circleback/[A-Za-z0-9_-]+', `origin/${settings.default_branch}`], { cwd: root, check: false })
|
|
80
|
+
.split('\n')
|
|
81
|
+
.filter(Boolean)
|
|
82
|
+
.map((match) => match.slice('circleback/'.length)),
|
|
83
|
+
);
|
|
84
|
+
const inPullRequest = new Map();
|
|
85
|
+
for (const pr of JSON.parse(run('gh', ['pr', 'list', '--state', 'open', '--json', 'number'], { cwd: root }))) {
|
|
86
|
+
const diff = run('gh', ['pr', 'diff', String(pr.number)], { cwd: root, check: false });
|
|
87
|
+
for (const match of diff.matchAll(/circleback\/([A-Za-z0-9_-]+)/g)) if (!inPullRequest.has(match[1])) inPullRequest.set(match[1], pr.number);
|
|
88
|
+
}
|
|
89
|
+
return { onMain, inPullRequest };
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The review worktree, at a fixed path so a later run finds it: continuing the open pull request's branch
|
|
94
|
+
* when there is one, else fresh from the default branch. Whatever an earlier run left there is cleared
|
|
95
|
+
* first, because an agent running unattended may not be allowed to delete it.
|
|
96
|
+
*/
|
|
97
|
+
function prepareWorktree(root, settings) {
|
|
98
|
+
const worktree = path.join(tmpdir(), `ctxr-circleback-${path.basename(root)}`);
|
|
99
|
+
run('git', ['worktree', 'remove', '--force', worktree], { cwd: root, check: false });
|
|
100
|
+
rmSync(worktree, { recursive: true, force: true });
|
|
101
|
+
run('git', ['worktree', 'prune'], { cwd: root });
|
|
102
|
+
const open = JSON.parse(run('gh', ['pr', 'list', '--head', BRANCH, '--state', 'open', '--json', 'number'], { cwd: root }));
|
|
103
|
+
if (open.length > 0) {
|
|
104
|
+
run('git', ['fetch', '-q', 'origin', BRANCH], { cwd: root });
|
|
105
|
+
run('git', ['worktree', 'add', '-B', BRANCH, worktree, `origin/${BRANCH}`], { cwd: root });
|
|
106
|
+
run('git', ['merge', '-q', '--no-edit', `origin/${settings.default_branch}`], { cwd: worktree });
|
|
107
|
+
} else {
|
|
108
|
+
run('git', ['push', '-q', 'origin', '--delete', BRANCH], { cwd: root, check: false });
|
|
109
|
+
run('git', ['worktree', 'add', '-B', BRANCH, worktree, `origin/${settings.default_branch}`], { cwd: root });
|
|
110
|
+
}
|
|
111
|
+
return { worktree, continuing: open[0]?.number };
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function captureFileName(meeting) {
|
|
115
|
+
const slug = meeting.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '') || meeting.id;
|
|
116
|
+
return `circleback-${meeting.createdAt.slice(0, 10)}-${slug}.md`;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** The mechanical part of a capture. The speaker judgment is the agent's, added afterwards. */
|
|
120
|
+
function renderCapture(meeting, transcript, settings) {
|
|
121
|
+
const segments = asList(transcript)[0]?.transcript ?? [];
|
|
122
|
+
const seconds = Math.round(Number(meeting.duration ?? 0));
|
|
123
|
+
const out = [
|
|
124
|
+
'---',
|
|
125
|
+
`title: ${JSON.stringify(meeting.name.trim())}`,
|
|
126
|
+
'source_type: circleback',
|
|
127
|
+
`source_id: circleback/${meeting.id}`,
|
|
128
|
+
'capture_type: meeting',
|
|
129
|
+
'---',
|
|
130
|
+
`# ${meeting.name.trim()}`,
|
|
131
|
+
'',
|
|
132
|
+
`Circleback meeting \`${meeting.id}\`, ${meeting.createdAt} (upload time, UTC), duration ${Math.floor(seconds / 60)}m${String(seconds % 60).padStart(2, '0')}s, ${segments.length} transcript segments.`,
|
|
133
|
+
'',
|
|
134
|
+
'*The recording URL Circleback exposes is a signed, expiring link, so it is deliberately not recorded here. Retrieve it from Circleback by meeting id if it is needed.*',
|
|
135
|
+
'',
|
|
136
|
+
'## Attendees',
|
|
137
|
+
...(meeting.attendees ?? []).map((a) => `- ${a.name || '(unnamed)'}${a.email ? ` (${a.email})` : ''}`),
|
|
138
|
+
'',
|
|
139
|
+
'## Action items (Circleback)',
|
|
140
|
+
];
|
|
141
|
+
const items = meeting.actionItems ?? [];
|
|
142
|
+
for (const item of items) {
|
|
143
|
+
const description = (item.description ?? '').split(/\s+/).filter(Boolean).join(' ');
|
|
144
|
+
out.push(`- **${(item.title ?? '').trim()}** — assignee ${item.assignee?.name ?? 'unassigned'}, status ${item.status ?? '?'}.${description ? ` "${description}"` : ''}`);
|
|
145
|
+
}
|
|
146
|
+
if (items.length === 0) out.push('(none)');
|
|
147
|
+
out.push(
|
|
148
|
+
'',
|
|
149
|
+
"## Summary (Circleback's own, not the record)",
|
|
150
|
+
'',
|
|
151
|
+
(meeting.notes ?? '(none)').trim(),
|
|
152
|
+
'',
|
|
153
|
+
`## ${settings.required_section ?? 'Transcript'}`,
|
|
154
|
+
'',
|
|
155
|
+
"*Verbatim from Circleback, speaker-labelled, with start timestamps in seconds. Unedited: mis-transcriptions and speaker-attribution slips are the service's own.*",
|
|
156
|
+
'',
|
|
157
|
+
);
|
|
158
|
+
for (const segment of segments) {
|
|
159
|
+
const text = (segment.text ?? '').split(/\s+/).filter(Boolean).join(' ');
|
|
160
|
+
out.push(`**${segment.speaker || 'Unknown'}** (${segment.timestamp ?? 0}): ${text}`, '');
|
|
161
|
+
}
|
|
162
|
+
return `${out.map((l) => l.replace(/\s+$/, '')).join('\n').trimEnd()}\n`;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function section(title, lines) {
|
|
166
|
+
return [`\n${title} (${lines.length}):`, ...(lines.length > 0 ? lines : ['(none)'])];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function main() {
|
|
170
|
+
const settings = JSON.parse(readFileSync(path.join(HERE, 'settings.json'), 'utf8'));
|
|
171
|
+
const root = storeRoot();
|
|
172
|
+
const otherTags = new Set(settings.other_tags);
|
|
173
|
+
const { onMain, inPullRequest } = presence(root, settings);
|
|
174
|
+
const meetings = recentMeetings();
|
|
175
|
+
const now = Date.now();
|
|
176
|
+
const ageDays = (meeting) => (now - Date.parse(meeting.createdAt)) / 86_400_000;
|
|
177
|
+
|
|
178
|
+
const owed = [];
|
|
179
|
+
const locked = [];
|
|
180
|
+
const untagged = [];
|
|
181
|
+
const multiStore = [];
|
|
182
|
+
const declined = [];
|
|
183
|
+
let present = 0;
|
|
184
|
+
for (const meeting of meetings) {
|
|
185
|
+
const tags = tagNames(meeting);
|
|
186
|
+
const isLocked = (meeting.notes ?? '').includes(LOCKED_NOTICE);
|
|
187
|
+
const here = onMain.has(meeting.id) || inPullRequest.has(meeting.id);
|
|
188
|
+
const others = [...tags].filter((tag) => otherTags.has(tag));
|
|
189
|
+
if (tags.has(settings.tag) && here) present += 1;
|
|
190
|
+
if (tags.size === 0 && !here) untagged.push(`${line(meeting)}${isLocked ? ' (locked)' : ageDays(meeting) >= URGENT_DAYS ? ' (URGENT, locks soon)' : ''}`);
|
|
191
|
+
if (tags.has(settings.tag) && others.length > 0) multiStore.push(`${line(meeting)} (also ${others.join(', ')})`);
|
|
192
|
+
if (tags.has(settings.decline_tag) && ageDays(meeting) <= DECLINE_REPORT_DAYS) declined.push(line(meeting));
|
|
193
|
+
const isOwed = tags.has(settings.tag) && others.length === 0 && !tags.has(settings.decline_tag) && !here;
|
|
194
|
+
if (isOwed && isLocked) locked.push(line(meeting));
|
|
195
|
+
else if (isOwed) owed.push(meeting);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
const report = [
|
|
199
|
+
`Store tag \`${settings.tag}\`. Meetings in the last ${LOOKBACK_DAYS} days: ${meetings.length}. Already in this store or an open pull request: ${present}.`,
|
|
200
|
+
...section('TO CAPTURE — date | id | title', owed.map(line)),
|
|
201
|
+
];
|
|
202
|
+
if (owed.length > 0) {
|
|
203
|
+
const { worktree, continuing } = prepareWorktree(root, settings);
|
|
204
|
+
const inbox = path.join(worktree, settings.inbox_path);
|
|
205
|
+
mkdirSync(inbox, { recursive: true });
|
|
206
|
+
report.push(`\nWORKTREE: ${worktree} (branch \`${BRANCH}\`, ${continuing ? `continuing pull request #${continuing}` : `fresh from origin/${settings.default_branch}`})`);
|
|
207
|
+
report.push('CAPTURES RENDERED:');
|
|
208
|
+
for (const meeting of owed) {
|
|
209
|
+
const transcript = cb(['transcripts', 'read', meeting.id]);
|
|
210
|
+
const file = path.join(inbox, captureFileName(meeting));
|
|
211
|
+
writeFileSync(file, renderCapture(meeting, transcript, settings));
|
|
212
|
+
report.push(file);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
report.push(
|
|
216
|
+
...section(`LOCKED — tagged \`${settings.tag}\`, never captured, no longer readable in full`, locked),
|
|
217
|
+
...section('UNTAGGED', untagged),
|
|
218
|
+
...section('TAGGED FOR MORE THAN ONE STORE', multiStore),
|
|
219
|
+
...section(`DECLINED IN THE LAST ${DECLINE_REPORT_DAYS} DAYS — tagged \`${settings.decline_tag}\`, for confirmation`, declined),
|
|
220
|
+
);
|
|
221
|
+
process.stdout.write(`${report.join('\n')}\n`);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
try {
|
|
225
|
+
main();
|
|
226
|
+
} catch (error) {
|
|
227
|
+
// A scheduled job puts this output in the agent's prompt; it must see a failure, not an empty list.
|
|
228
|
+
process.stdout.write(`COLLECTION FAILED: ${error.message}\n`);
|
|
229
|
+
}
|