@shgroup/opencode-serenity-plugin 0.2.0 → 0.3.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 +78 -150
- package/dist/activation.js +6 -6
- package/dist/activation.js.map +1 -1
- package/dist/ccc-status.d.ts +13 -0
- package/dist/ccc-status.d.ts.map +1 -0
- package/dist/ccc-status.js +70 -0
- package/dist/ccc-status.js.map +1 -0
- package/dist/config-schema.d.ts +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -7
- package/dist/errors.js.map +1 -1
- package/dist/fs/file-system-tool.d.ts.map +1 -1
- package/dist/fs/file-system-tool.js +98 -8
- package/dist/fs/file-system-tool.js.map +1 -1
- package/dist/fs/resolve-path.d.ts +8 -8
- package/dist/fs/resolve-path.d.ts.map +1 -1
- package/dist/fs/resolve-path.js +9 -9
- package/dist/fs/resolve-path.js.map +1 -1
- package/dist/hooks/compacting.d.ts +8 -5
- package/dist/hooks/compacting.d.ts.map +1 -1
- package/dist/hooks/compacting.js +53 -14
- package/dist/hooks/compacting.js.map +1 -1
- package/dist/hooks/shell-env.d.ts +6 -6
- package/dist/hooks/shell-env.d.ts.map +1 -1
- package/dist/hooks/shell-env.js +12 -10
- package/dist/hooks/shell-env.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/init/init-wizard.d.ts +1 -1
- package/dist/init/init-wizard.js +9 -9
- package/dist/init/init-wizard.js.map +1 -1
- package/dist/msm.d.ts +3 -3
- package/dist/msm.d.ts.map +1 -1
- package/dist/msm.js +24 -22
- package/dist/msm.js.map +1 -1
- package/dist/session/session-tool.js +2 -2
- package/dist/session/session-tool.js.map +1 -1
- package/dist/skills/install-skill.js +4 -4
- package/dist/skills/install-skill.js.map +1 -1
- package/dist/skills/template-loader.d.ts +2 -2
- package/dist/skills/template-loader.d.ts.map +1 -1
- package/dist/skills/template-loader.js +4 -3
- package/dist/skills/template-loader.js.map +1 -1
- package/dist/tui.js +5 -5
- package/dist/tui.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/util/init.d.ts +6 -6
- package/dist/util/init.d.ts.map +1 -1
- package/dist/util/init.js +9 -9
- package/dist/util/init.js.map +1 -1
- package/dist/util/msm-call.js +3 -3
- package/dist/util/msm-call.js.map +1 -1
- package/dist/util/msm-exec-runtime.d.ts.map +1 -1
- package/dist/util/msm-exec-runtime.js +16 -2
- package/dist/util/msm-exec-runtime.js.map +1 -1
- package/dist/util/path.d.ts +4 -4
- package/dist/util/path.d.ts.map +1 -1
- package/dist/util/path.js +6 -6
- package/dist/util/path.js.map +1 -1
- package/dist/util/serenity-file.d.ts +6 -6
- package/dist/util/serenity-file.d.ts.map +1 -1
- package/dist/util/serenity-file.js +7 -7
- package/dist/util/serenity-file.js.map +1 -1
- package/package.json +2 -2
|
@@ -71,23 +71,23 @@ function assertNotProtected(root, absPath, targetLabel) {
|
|
|
71
71
|
// Protect .serenity file from deletion
|
|
72
72
|
const serenityMarker = resolve(root, '.serenity');
|
|
73
73
|
if (absPath === serenityMarker) {
|
|
74
|
-
throw new FileSystemError(`file-system: refusing to delete protected path: ${targetLabel} (.serenity is the
|
|
74
|
+
throw new FileSystemError(`file-system: refusing to delete protected path: ${targetLabel} (.serenity is the CCC marker)`);
|
|
75
75
|
}
|
|
76
76
|
// Protect the root directory itself
|
|
77
77
|
if (absPath === root) {
|
|
78
|
-
throw new FileSystemError(`file-system: refusing to delete the
|
|
78
|
+
throw new FileSystemError(`file-system: refusing to delete the CCC root directory: ${targetLabel}`);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
// ── Tool 定义 ──
|
|
82
82
|
const SUBCOMMANDS = [
|
|
83
83
|
'root', 'resolve', 'exists', 'list', 'relative',
|
|
84
|
-
'mkdir', 'rm', 'mv', 'cp', 'touch',
|
|
84
|
+
'mkdir', 'rm', 'mv', 'cp', 'touch', 'tree', 'append',
|
|
85
85
|
];
|
|
86
86
|
export const fileSystemTool = tool({
|
|
87
87
|
description: `Serenity file-system utility (v${VERSION}). ` +
|
|
88
|
-
'Resolves paths relative to the
|
|
89
|
-
'Use this instead of raw read/edit tools when you need to work with
|
|
90
|
-
'All subcommands validate that paths stay within the
|
|
88
|
+
'Resolves paths relative to the CCC root (the directory containing .serenity). ' +
|
|
89
|
+
'Use this instead of raw read/edit tools when you need to work with CCC paths. ' +
|
|
90
|
+
'All subcommands validate that paths stay within the CCC root.',
|
|
91
91
|
args: {
|
|
92
92
|
subcommand: z
|
|
93
93
|
.enum(SUBCOMMANDS)
|
|
@@ -101,11 +101,13 @@ export const fileSystemTool = tool({
|
|
|
101
101
|
' rm — Delete files/directories (batch: pass multiple paths via paths arg)\n' +
|
|
102
102
|
' mv — Move or rename a file/directory\n' +
|
|
103
103
|
' cp — Copy a file or directory\n' +
|
|
104
|
-
' touch — Create empty file or update timestamp'
|
|
104
|
+
' touch — Create empty file or update timestamp\n' +
|
|
105
|
+
' tree — Recursive directory listing, tree-like output as JSON\n' +
|
|
106
|
+
' append — Append content to a file (like shell >>)'),
|
|
105
107
|
path: z
|
|
106
108
|
.string()
|
|
107
109
|
.optional()
|
|
108
|
-
.describe('Single path argument for resolve/exists/list/relative/mkdir/touch subcommands. ' +
|
|
110
|
+
.describe('Single path argument for resolve/exists/list/relative/mkdir/touch/tree/append subcommands. ' +
|
|
109
111
|
'Can be relative (from serenity root) or absolute (must be inside serenity root for write operations).'),
|
|
110
112
|
paths: z
|
|
111
113
|
.array(z.string())
|
|
@@ -131,6 +133,28 @@ export const fileSystemTool = tool({
|
|
|
131
133
|
.optional()
|
|
132
134
|
.default(false)
|
|
133
135
|
.describe('Preview changes without actually modifying files. Supported by rm.'),
|
|
136
|
+
depth: z
|
|
137
|
+
.number()
|
|
138
|
+
.int()
|
|
139
|
+
.min(1)
|
|
140
|
+
.max(10)
|
|
141
|
+
.optional()
|
|
142
|
+
.default(3)
|
|
143
|
+
.describe('Max depth for tree subcommand (1-10, default 3)'),
|
|
144
|
+
'files-only': z
|
|
145
|
+
.boolean()
|
|
146
|
+
.optional()
|
|
147
|
+
.default(false)
|
|
148
|
+
.describe('With tree: show only files'),
|
|
149
|
+
'dirs-only': z
|
|
150
|
+
.boolean()
|
|
151
|
+
.optional()
|
|
152
|
+
.default(false)
|
|
153
|
+
.describe('With tree: show only directories'),
|
|
154
|
+
content: z
|
|
155
|
+
.string()
|
|
156
|
+
.optional()
|
|
157
|
+
.describe('Content to append (for append subcommand)'),
|
|
134
158
|
},
|
|
135
159
|
execute: async (input, ctx) => {
|
|
136
160
|
const cwd = ctx.directory;
|
|
@@ -312,6 +336,72 @@ export const fileSystemTool = tool({
|
|
|
312
336
|
writeFileSync(absPath, '', 'utf8');
|
|
313
337
|
return `created empty file: ${input.path}`;
|
|
314
338
|
}
|
|
339
|
+
// ── tree (recursive directory listing) ──
|
|
340
|
+
if (sub === 'tree') {
|
|
341
|
+
if (!input.path)
|
|
342
|
+
throw new FileSystemError('file-system tree: requires a path argument');
|
|
343
|
+
const absPath = input.path.startsWith('/')
|
|
344
|
+
? input.path
|
|
345
|
+
: resolveRootPath(root, input.path);
|
|
346
|
+
if (!existsSync(absPath)) {
|
|
347
|
+
throw new FileSystemError(`file-system tree: path "${absPath}" does not exist`);
|
|
348
|
+
}
|
|
349
|
+
const maxDepth = input.depth ?? 3;
|
|
350
|
+
const filesOnly = input['files-only'] ?? false;
|
|
351
|
+
const dirsOnly = input['dirs-only'] ?? false;
|
|
352
|
+
function filterTree(entries, keepType) {
|
|
353
|
+
return entries.filter(e => {
|
|
354
|
+
if (e.type === keepType) {
|
|
355
|
+
if (e.children)
|
|
356
|
+
e.children = filterTree(e.children, keepType);
|
|
357
|
+
return true;
|
|
358
|
+
}
|
|
359
|
+
return false;
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
function walk(dir, currentDepth) {
|
|
363
|
+
if (currentDepth > maxDepth)
|
|
364
|
+
return [];
|
|
365
|
+
const names = readdirSync(dir).sort();
|
|
366
|
+
return names.map(name => {
|
|
367
|
+
const full = resolve(dir, name);
|
|
368
|
+
const stat = statSync(full);
|
|
369
|
+
const entry = {
|
|
370
|
+
name,
|
|
371
|
+
type: detectFileType(stat),
|
|
372
|
+
size: stat.size,
|
|
373
|
+
sizeHuman: humanSize(stat.size),
|
|
374
|
+
};
|
|
375
|
+
if (stat.isDirectory()) {
|
|
376
|
+
entry.children = walk(full, currentDepth + 1);
|
|
377
|
+
}
|
|
378
|
+
return entry;
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
let entries = walk(absPath, 1);
|
|
382
|
+
if (filesOnly) {
|
|
383
|
+
entries = filterTree(entries, 'file');
|
|
384
|
+
}
|
|
385
|
+
if (dirsOnly) {
|
|
386
|
+
entries = filterTree(entries, 'dir');
|
|
387
|
+
}
|
|
388
|
+
return JSON.stringify({ path: absPath, entries, maxDepth }, null, 2);
|
|
389
|
+
}
|
|
390
|
+
// ── append (append content to file) ──
|
|
391
|
+
if (sub === 'append') {
|
|
392
|
+
if (!input.path)
|
|
393
|
+
throw new FileSystemError('file-system append: requires a path argument');
|
|
394
|
+
if (!input.content)
|
|
395
|
+
throw new FileSystemError('file-system append: requires content argument');
|
|
396
|
+
const absPath = validateWritePath(root, input.path);
|
|
397
|
+
const parentDir = dirname(absPath);
|
|
398
|
+
if (!existsSync(parentDir)) {
|
|
399
|
+
mkdirSync(parentDir, { recursive: true });
|
|
400
|
+
}
|
|
401
|
+
const content = input.content;
|
|
402
|
+
writeFileSync(absPath, content, { flag: 'a' });
|
|
403
|
+
return `appended ${Buffer.byteLength(content, 'utf8')} bytes to ${input.path}`;
|
|
404
|
+
}
|
|
315
405
|
throw new FileSystemError(`file-system: unknown subcommand "${sub}"`);
|
|
316
406
|
},
|
|
317
407
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system-tool.js","sourceRoot":"","sources":["../../src/fs/file-system-tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-system-tool.js","sourceRoot":"","sources":["../../src/fs/file-system-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* resolve-path.ts — 宁静号文件系统基础设施
|
|
3
3
|
*
|
|
4
4
|
* 核心能力:
|
|
5
|
-
* - 向上遍历寻找 .serenity
|
|
6
|
-
* -
|
|
5
|
+
* - 向上遍历寻找 .serenity 文件(CCC 根检测)
|
|
6
|
+
* - 基于 CCC 根做路径解析
|
|
7
7
|
* - 路径安全校验(确保在根内)
|
|
8
8
|
*
|
|
9
9
|
* 供 file-system-tool.ts 消费,也可被其他模块复用。
|
|
@@ -22,14 +22,14 @@ export declare function findSerenityRoot(cwd: string): string;
|
|
|
22
22
|
*/
|
|
23
23
|
export declare function findSerenityRootSafe(cwd: string): string | null;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
* @returns
|
|
25
|
+
* readSerenityCccName — 从 .serenity 文件读取 CCC 名
|
|
26
|
+
* @returns CCC 名(如 "home-serenity", "tg-serenity")或 null
|
|
27
27
|
*/
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function readSerenityCccName(root: string): string | null;
|
|
29
29
|
/**
|
|
30
30
|
* resolveRootPath — 将 path 基于宁静号根解析为绝对路径
|
|
31
31
|
*
|
|
32
|
-
* @param root
|
|
32
|
+
* @param root CCC 根路径
|
|
33
33
|
* @param path 相对路径(如 "AGENT_SESSIONS/")或绝对路径
|
|
34
34
|
* @returns 解析后的绝对路径
|
|
35
35
|
*/
|
|
@@ -37,7 +37,7 @@ export declare function resolveRootPath(root: string, path: string): string;
|
|
|
37
37
|
/**
|
|
38
38
|
* isPathInsideSerenity — 判断路径是否在宁静号根内
|
|
39
39
|
*
|
|
40
|
-
* @param root
|
|
40
|
+
* @param root CCC 根路径
|
|
41
41
|
* @param target 要检查的路径(绝对路径)
|
|
42
42
|
* @returns true 当 target 在 root 目录内
|
|
43
43
|
*/
|
|
@@ -45,7 +45,7 @@ export declare function isPathInsideSerenity(root: string, target: string): bool
|
|
|
45
45
|
/**
|
|
46
46
|
* serenityPathRelative — 获取 target 相对于宁静号根的路径
|
|
47
47
|
*
|
|
48
|
-
* @param root
|
|
48
|
+
* @param root CCC 根路径
|
|
49
49
|
* @param target 绝对路径
|
|
50
50
|
* @returns 相对路径(如 ".opencode/skills/eap/SKILL.md")
|
|
51
51
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-path.d.ts","sourceRoot":"","sources":["../../src/fs/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"resolve-path.d.ts","sourceRoot":"","sources":["../../src/fs/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ/D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG1E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMzE"}
|
package/dist/fs/resolve-path.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* resolve-path.ts — 宁静号文件系统基础设施
|
|
3
3
|
*
|
|
4
4
|
* 核心能力:
|
|
5
|
-
* - 向上遍历寻找 .serenity
|
|
6
|
-
* -
|
|
5
|
+
* - 向上遍历寻找 .serenity 文件(CCC 根检测)
|
|
6
|
+
* - 基于 CCC 根做路径解析
|
|
7
7
|
* - 路径安全校验(确保在根内)
|
|
8
8
|
*
|
|
9
9
|
* 供 file-system-tool.ts 消费,也可被其他模块复用。
|
|
@@ -28,7 +28,7 @@ export function findSerenityRoot(cwd) {
|
|
|
28
28
|
// 到达根目录
|
|
29
29
|
const parent = dirname(current);
|
|
30
30
|
if (parent === current) {
|
|
31
|
-
throw new Error(`No
|
|
31
|
+
throw new Error(`No CCC found: no .serenity file found when walking up from "${cwd}"`);
|
|
32
32
|
}
|
|
33
33
|
current = parent;
|
|
34
34
|
}
|
|
@@ -46,10 +46,10 @@ export function findSerenityRootSafe(cwd) {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
* @returns
|
|
49
|
+
* readSerenityCccName — 从 .serenity 文件读取 CCC 名
|
|
50
|
+
* @returns CCC 名(如 "home-serenity", "tg-serenity")或 null
|
|
51
51
|
*/
|
|
52
|
-
export function
|
|
52
|
+
export function readSerenityCccName(root) {
|
|
53
53
|
const marker = resolve(root, '.serenity');
|
|
54
54
|
try {
|
|
55
55
|
const content = readFileSync(marker, 'utf8').trim();
|
|
@@ -62,7 +62,7 @@ export function readSerenityInstanceName(root) {
|
|
|
62
62
|
/**
|
|
63
63
|
* resolveRootPath — 将 path 基于宁静号根解析为绝对路径
|
|
64
64
|
*
|
|
65
|
-
* @param root
|
|
65
|
+
* @param root CCC 根路径
|
|
66
66
|
* @param path 相对路径(如 "AGENT_SESSIONS/")或绝对路径
|
|
67
67
|
* @returns 解析后的绝对路径
|
|
68
68
|
*/
|
|
@@ -75,7 +75,7 @@ export function resolveRootPath(root, path) {
|
|
|
75
75
|
/**
|
|
76
76
|
* isPathInsideSerenity — 判断路径是否在宁静号根内
|
|
77
77
|
*
|
|
78
|
-
* @param root
|
|
78
|
+
* @param root CCC 根路径
|
|
79
79
|
* @param target 要检查的路径(绝对路径)
|
|
80
80
|
* @returns true 当 target 在 root 目录内
|
|
81
81
|
*/
|
|
@@ -86,7 +86,7 @@ export function isPathInsideSerenity(root, target) {
|
|
|
86
86
|
/**
|
|
87
87
|
* serenityPathRelative — 获取 target 相对于宁静号根的路径
|
|
88
88
|
*
|
|
89
|
-
* @param root
|
|
89
|
+
* @param root CCC 根路径
|
|
90
90
|
* @param target 绝对路径
|
|
91
91
|
* @returns 相对路径(如 ".opencode/skills/eap/SKILL.md")
|
|
92
92
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../src/fs/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3B,SAAS;IACT,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,QAAQ;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,
|
|
1
|
+
{"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../src/fs/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE3B,SAAS;IACT,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,QAAQ;QACR,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,+DAA+D,GAAG,GAAG,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAc;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,MAAc;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,+BAA+B,IAAI,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Compacting / System Transform Hook 工厂
|
|
2
|
+
* Compacting / System Transform / Tool Definition Hook 工厂
|
|
3
3
|
*
|
|
4
4
|
* 包含:
|
|
5
|
-
* 1. experimental.chat.system.transform —
|
|
5
|
+
* 1. experimental.chat.system.transform — 注入操作约束摘要 + SKILL.md 全文到 system prompt
|
|
6
6
|
* 2. experimental.session.compacting — 压缩时注入"serenity 关键状态" context
|
|
7
|
+
* 3. tool.definition — 为 subagent task tool 注入约束警告 + 可用工具
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
* - system.transform
|
|
9
|
+
* design:
|
|
10
|
+
* - system.transform(v0.3 扩展):
|
|
11
|
+
* 1) 注入 === Serenity Constraints === 摘要块(idempotent dedup)
|
|
12
|
+
* 2) 注入 state.skillContent 全文(idempotent dedup)
|
|
10
13
|
* - 同一 session 内 system.transform 可能被多次触发(每次重建 system prompt),
|
|
11
|
-
* 通过检查 output.system
|
|
14
|
+
* 通过检查 output.system 是否已包含目标内容实现 idempotent dedup(无状态)
|
|
12
15
|
* - compacting 保留:避免 serenity 关键状态被压缩丢失
|
|
13
16
|
*/
|
|
14
17
|
import type { Hooks } from '@opencode-ai/plugin';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compacting.d.ts","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compacting.d.ts","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAkH5D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAsBzE"}
|
package/dist/hooks/compacting.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Compacting / System Transform Hook 工厂
|
|
2
|
+
* Compacting / System Transform / Tool Definition Hook 工厂
|
|
3
3
|
*
|
|
4
4
|
* 包含:
|
|
5
|
-
* 1. experimental.chat.system.transform —
|
|
5
|
+
* 1. experimental.chat.system.transform — 注入操作约束摘要 + SKILL.md 全文到 system prompt
|
|
6
6
|
* 2. experimental.session.compacting — 压缩时注入"serenity 关键状态" context
|
|
7
|
+
* 3. tool.definition — 为 subagent task tool 注入约束警告 + 可用工具
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
* - system.transform
|
|
9
|
+
* design:
|
|
10
|
+
* - system.transform(v0.3 扩展):
|
|
11
|
+
* 1) 注入 === Serenity Constraints === 摘要块(idempotent dedup)
|
|
12
|
+
* 2) 注入 state.skillContent 全文(idempotent dedup)
|
|
10
13
|
* - 同一 session 内 system.transform 可能被多次触发(每次重建 system prompt),
|
|
11
|
-
* 通过检查 output.system
|
|
14
|
+
* 通过检查 output.system 是否已包含目标内容实现 idempotent dedup(无状态)
|
|
12
15
|
* - compacting 保留:避免 serenity 关键状态被压缩丢失
|
|
13
16
|
*/
|
|
14
17
|
import { getState, ensureReady } from '../state.js';
|
|
@@ -21,9 +24,26 @@ const systemTransformImpl = async (_input, output) => {
|
|
|
21
24
|
return;
|
|
22
25
|
}
|
|
23
26
|
const state = getState();
|
|
27
|
+
// 注入操作约束摘要(帮助 Agent 理解运行上下文)
|
|
28
|
+
// idempotent:检查 output.system 中是否已包含标记头
|
|
29
|
+
const marker = '=== Serenity Constraints ===';
|
|
30
|
+
if (!output.system.some(s => typeof s === 'string' && s.includes(marker))) {
|
|
31
|
+
const block = [
|
|
32
|
+
'',
|
|
33
|
+
'=== Serenity Constraints ===',
|
|
34
|
+
`Root: ${state.cwdRoot}`,
|
|
35
|
+
' • File access → read/edit/write/grep/glob limited to root (RR5)',
|
|
36
|
+
' • Shell → use msm_exec (bash is high-risk fallback; use msm_exec by default — D19)',
|
|
37
|
+
' • Subagent → inherits ALL constraints (no bypass)',
|
|
38
|
+
' • SSH → use ssh-connect (not raw ssh)',
|
|
39
|
+
' • Multi-step → session-tool create first',
|
|
40
|
+
'',
|
|
41
|
+
].join('\n');
|
|
42
|
+
output.system.push(block);
|
|
43
|
+
}
|
|
44
|
+
// 注入 SKILL.md 全文
|
|
24
45
|
if (!state.skillContent)
|
|
25
46
|
return; // SKILL.md 读失败或缺失 → 跳过
|
|
26
|
-
// idempotent dedup:检查 output.system 是否已包含 skillContent
|
|
27
47
|
if (output.system.includes(state.skillContent))
|
|
28
48
|
return;
|
|
29
49
|
output.system.push(state.skillContent);
|
|
@@ -36,11 +56,18 @@ const sessionCompactingImpl = async (_input, output) => {
|
|
|
36
56
|
return;
|
|
37
57
|
}
|
|
38
58
|
const state = getState();
|
|
39
|
-
output.context.push(`[serenity-state] cwdRoot=${state.cwdRoot};
|
|
59
|
+
output.context.push(`[serenity-state] cwdRoot=${state.cwdRoot}; cccName=${state.cccName}; skillPath=${state.skillPath}`);
|
|
40
60
|
};
|
|
41
61
|
/**
|
|
42
|
-
* tool.definition — 为 task tool
|
|
43
|
-
*
|
|
62
|
+
* tool.definition — 为 task tool(subagent 创建)注入 serenity 上下文。
|
|
63
|
+
*
|
|
64
|
+
* 核心信息:subagent 继承全部 serenity 约束。
|
|
65
|
+
* 目的:防止 primary agent 以为“派 subagent 能绕过限制”。
|
|
66
|
+
*
|
|
67
|
+
* 包括:
|
|
68
|
+
* 1. 实例信息(instance name + root path)
|
|
69
|
+
* 2. 明确声明 subagent 受相同限制(路径守卫、bash 开关等)
|
|
70
|
+
* 3. subagent 可用的工具清单
|
|
44
71
|
*
|
|
45
72
|
* 只劫持 toolID === 'task',其他 tool 透传。
|
|
46
73
|
*/
|
|
@@ -55,16 +82,28 @@ const toolDefinitionImpl = async (input, output) => {
|
|
|
55
82
|
return;
|
|
56
83
|
}
|
|
57
84
|
const state = getState();
|
|
58
|
-
if (!state.activated || !state.
|
|
85
|
+
if (!state.activated || !state.cccName)
|
|
59
86
|
return;
|
|
60
87
|
const context = [
|
|
61
88
|
`=== Serenity System Context ===`,
|
|
62
|
-
`
|
|
89
|
+
`CCC: ${state.cccName}`,
|
|
63
90
|
`Root: ${state.cwdRoot}`,
|
|
64
91
|
``,
|
|
65
|
-
`
|
|
66
|
-
`
|
|
67
|
-
|
|
92
|
+
`WARNING: Subagents inherit ALL serenity constraints.`,
|
|
93
|
+
`Spawning a subagent does NOT bypass serenity restrictions.`,
|
|
94
|
+
``,
|
|
95
|
+
`Constraints that also apply to subagents:`,
|
|
96
|
+
` - File access (read/edit/write/grep/glob) is LIMITED to the serenity root.`,
|
|
97
|
+
` Paths outside ${state.cwdRoot} will be REJECTED.`,
|
|
98
|
+
` - bash is high-risk fallback; use msm_exec by default (D19).`,
|
|
99
|
+
` - For shell commands, use msm_exec with an appropriate MSM.`,
|
|
100
|
+
``,
|
|
101
|
+
`If the primary agent is blocked by a constraint, the subagent will be blocked too.`,
|
|
102
|
+
`Do NOT delegate restricted operations to a subagent as a workaround.`,
|
|
103
|
+
``,
|
|
104
|
+
`Available serenity tools (subagent can use these):`,
|
|
105
|
+
` - msm_list — discover registered MSM tools with descriptions`,
|
|
106
|
+
` - msm_exec — execute an MSM by name with string array args`,
|
|
68
107
|
` - file_system — safe file operations within serenity root`,
|
|
69
108
|
` - session_tool — session lifecycle management`,
|
|
70
109
|
``,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compacting.js","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compacting.js","sourceRoot":"","sources":["../../src/hooks/compacting.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Shell Environment Hook 工厂
|
|
3
3
|
*
|
|
4
4
|
* 包含:shell.env hook
|
|
5
|
-
* 职责(v0.
|
|
6
|
-
* - 注入
|
|
7
|
-
* - 注入
|
|
8
|
-
* - 注入 SERENITY_PLUGIN_VERSION
|
|
5
|
+
* 职责(v0.2 ACC/CCC 对齐):
|
|
6
|
+
* - 注入 SERENITY_ROOT = state.cwdRoot(所有 bash 子进程可见,旧名 HOME_SERENITY_ROOT 保留 deprecated)
|
|
7
|
+
* - 注入 SERENITY_CCC = state.cccName(旧名 SERENITY_INSTANCE 保留 deprecated)
|
|
8
|
+
* - 注入 SERENITY_VERSION = pkg.version(旧名 SERENITY_PLUGIN_VERSION 保留 deprecated)
|
|
9
9
|
*
|
|
10
|
-
* 注意:
|
|
11
|
-
* shell.env 仍生效到 msm_exec 子进程 +
|
|
10
|
+
* 注意:bash 是高风险 fallback(D19);msm_exec 为默认执行路径,
|
|
11
|
+
* shell.env 仍生效到 msm_exec 子进程 + 用户终端。
|
|
12
12
|
*/
|
|
13
13
|
import type { Hooks } from '@opencode-ai/plugin';
|
|
14
14
|
import { type HookConfig } from './util.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-env.d.ts","sourceRoot":"","sources":["../../src/hooks/shell-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"shell-env.d.ts","sourceRoot":"","sources":["../../src/hooks/shell-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAmB5D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAQlE"}
|
package/dist/hooks/shell-env.js
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Shell Environment Hook 工厂
|
|
3
3
|
*
|
|
4
4
|
* 包含:shell.env hook
|
|
5
|
-
* 职责(v0.
|
|
6
|
-
* - 注入
|
|
7
|
-
* - 注入
|
|
8
|
-
* - 注入 SERENITY_PLUGIN_VERSION
|
|
5
|
+
* 职责(v0.2 ACC/CCC 对齐):
|
|
6
|
+
* - 注入 SERENITY_ROOT = state.cwdRoot(所有 bash 子进程可见,旧名 HOME_SERENITY_ROOT 保留 deprecated)
|
|
7
|
+
* - 注入 SERENITY_CCC = state.cccName(旧名 SERENITY_INSTANCE 保留 deprecated)
|
|
8
|
+
* - 注入 SERENITY_VERSION = pkg.version(旧名 SERENITY_PLUGIN_VERSION 保留 deprecated)
|
|
9
9
|
*
|
|
10
|
-
* 注意:
|
|
11
|
-
* shell.env 仍生效到 msm_exec 子进程 +
|
|
10
|
+
* 注意:bash 是高风险 fallback(D19);msm_exec 为默认执行路径,
|
|
11
|
+
* shell.env 仍生效到 msm_exec 子进程 + 用户终端。
|
|
12
12
|
*/
|
|
13
13
|
import { getState, ensureReady } from '../state.js';
|
|
14
14
|
import { safeCreateHook } from './util.js';
|
|
@@ -21,10 +21,12 @@ const shellEnvImpl = async (_input, output) => {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
const state = getState();
|
|
24
|
-
output.env.
|
|
25
|
-
output.env.
|
|
26
|
-
|
|
27
|
-
output.env.
|
|
24
|
+
output.env.SERENITY_ROOT = state.cwdRoot;
|
|
25
|
+
output.env.HOME_SERENITY_ROOT = state.cwdRoot; // deprecated alias
|
|
26
|
+
output.env.SERENITY_CCC = state.cccName;
|
|
27
|
+
output.env.SERENITY_INSTANCE = state.cccName; // deprecated alias
|
|
28
|
+
output.env.SERENITY_VERSION = pkg.version;
|
|
29
|
+
output.env.SERENITY_PLUGIN_VERSION = pkg.version; // deprecated alias
|
|
28
30
|
};
|
|
29
31
|
/** 工厂:返回 shell env 相关的 hooks 集合
|
|
30
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-env.js","sourceRoot":"","sources":["../../src/hooks/shell-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAmB,MAAM,WAAW,CAAC;AAC5D,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D,MAAM,YAAY,GAAoC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"shell-env.js","sourceRoot":"","sources":["../../src/hooks/shell-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAmB,MAAM,WAAW,CAAC;AAC5D,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D,MAAM,YAAY,GAAoC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC7E,IAAI,CAAC;QACH,MAAM,WAAW,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAG,mBAAmB;IACpE,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAK,mBAAmB;IACrE,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,mBAAmB;AACvE,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,CAAC,WAAW,CAAC,GAAG,cAAc,CACjC,WAAW,EACX,GAAG,EAAE,CAAC,YAAY,EAClB,MAAM,CACP,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;;;;;AAsDzD,wBAGE"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* opencode-serenity-plugin — server entry
|
|
3
3
|
*
|
|
4
|
-
* 职责:注册
|
|
4
|
+
* 职责:注册 6 个自定义工具 + 6 个 system hook,实现 serenity 认知基础设施的
|
|
5
5
|
* plugin 层(MSM 框架、文件系统操作、会话管理、路径守卫、skill 注入等)。
|
|
6
6
|
*
|
|
7
7
|
* 设计文档见 docs/:
|
|
@@ -21,6 +21,7 @@ import { tryActivateSync } from './activation.js';
|
|
|
21
21
|
import { msmListTool, msmExecTool, msmAdminTool, } from './msm.js';
|
|
22
22
|
import { fileSystemTool } from './fs/file-system-tool.js';
|
|
23
23
|
import { sessionTool } from './session/session-tool.js';
|
|
24
|
+
import { cccStatusTool } from './ccc-status.js';
|
|
24
25
|
import { createPermissionGuards } from './hooks/permission-guards.js';
|
|
25
26
|
import { createCompactingHooks } from './hooks/compacting.js';
|
|
26
27
|
import { createShellEnv } from './hooks/shell-env.js';
|
|
@@ -44,6 +45,7 @@ const plugin = async (input) => {
|
|
|
44
45
|
msm_admin: msmAdminTool,
|
|
45
46
|
file_system: fileSystemTool, // v0.1 D4: 跨实例文件系统工具
|
|
46
47
|
session_tool: sessionTool, // v0.1 D5: 通用会话管理工具
|
|
48
|
+
ccc_status: cccStatusTool, // v0.3 D18: CCC 三原则状态检查
|
|
47
49
|
},
|
|
48
50
|
...createPermissionGuards(),
|
|
49
51
|
...createCompactingHooks(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,GAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,MAAM,GAAW,KAAK,EAAE,KAAK,EAAE,EAAE;IACrC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE9F,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,8CAA8C;IAE9C,+DAA+D;IAC/D,MAAM,KAAK,GAAU;QACnB,IAAI,EAAE;YACJ,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,cAAc,EAAE,qBAAqB;YAClD,YAAY,EAAE,WAAW,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,GAEb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,MAAM,GAAW,KAAK,EAAE,KAAK,EAAE,EAAE;IACrC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE9F,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,8CAA8C;IAE9C,+DAA+D;IAC/D,MAAM,KAAK,GAAU;QACnB,IAAI,EAAE;YACJ,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,cAAc,EAAE,qBAAqB;YAClD,YAAY,EAAE,WAAW,EAAE,oBAAoB;YAC/C,UAAU,EAAE,aAAa,EAAE,wBAAwB;SACpD;QACD,GAAG,sBAAsB,EAAE;QAC3B,GAAG,qBAAqB,EAAE;QAC1B,GAAG,cAAc,EAAE;QACnB,KAAK,EAAE,gCAAgC,CAAC;YACtC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;SACpC,CAAC;KACH,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,eAAe;IACb,EAAE,EAAE,iCAAiC;IACrC,MAAM,EAAE,MAAM;CACf,CAAC"}
|