@kodus/cli 0.4.5 → 0.4.8
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/agents/claude-code.agent.d.ts.map +1 -1
- package/dist/agents/claude-code.agent.js +4 -1
- package/dist/agents/claude-code.agent.js.map +1 -1
- package/dist/agents/codex.agent.d.ts +14 -0
- package/dist/agents/codex.agent.d.ts.map +1 -0
- package/dist/agents/codex.agent.js +77 -0
- package/dist/agents/codex.agent.js.map +1 -0
- package/dist/agents/cursor.agent.d.ts +29 -0
- package/dist/agents/cursor.agent.d.ts.map +1 -0
- package/dist/agents/cursor.agent.js +85 -0
- package/dist/agents/cursor.agent.js.map +1 -0
- package/dist/commands/memory/disable.d.ts.map +1 -1
- package/dist/commands/memory/disable.js +10 -5
- package/dist/commands/memory/disable.js.map +1 -1
- package/dist/commands/memory/enable.d.ts.map +1 -1
- package/dist/commands/memory/enable.js +24 -7
- package/dist/commands/memory/enable.js.map +1 -1
- package/dist/commands/memory/session-hooks/claude-code.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks/claude-code.js +4 -1
- package/dist/commands/memory/session-hooks/claude-code.js.map +1 -1
- package/dist/commands/memory/session-hooks/codex.d.ts +2 -0
- package/dist/commands/memory/session-hooks/codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/codex.js +16 -0
- package/dist/commands/memory/session-hooks/codex.js.map +1 -0
- package/dist/commands/memory/session-hooks/cursor.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks/cursor.js +7 -12
- package/dist/commands/memory/session-hooks/cursor.js.map +1 -1
- package/dist/commands/memory/session-hooks/index.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks/index.js +7 -1
- package/dist/commands/memory/session-hooks/index.js.map +1 -1
- package/dist/commands/memory/session-hooks-install-codex.d.ts +19 -0
- package/dist/commands/memory/session-hooks-install-codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-codex.js +91 -0
- package/dist/commands/memory/session-hooks-install-codex.js.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts +9 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.js +119 -0
- package/dist/commands/memory/session-hooks-install-cursor.js.map +1 -0
- package/dist/commands/memory/session-hooks-install.d.ts.map +1 -1
- package/dist/commands/memory/session-hooks-install.js +3 -2
- package/dist/commands/memory/session-hooks-install.js.map +1 -1
- package/dist/services/lifecycle.service.d.ts +1 -0
- package/dist/services/lifecycle.service.d.ts.map +1 -1
- package/dist/services/lifecycle.service.js +76 -2
- package/dist/services/lifecycle.service.js.map +1 -1
- package/dist/services/session-local.service.d.ts +16 -0
- package/dist/services/session-local.service.d.ts.map +1 -1
- package/dist/services/session-local.service.js +49 -0
- package/dist/services/session-local.service.js.map +1 -1
- package/dist/types/session.d.ts +3 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/utils/skills-sync.d.ts.map +1 -1
- package/dist/utils/skills-sync.js +12 -0
- package/dist/utils/skills-sync.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
const SESSION_HOOK_MARKER = 'kodus decisions hooks codex';
|
|
4
|
+
/**
|
|
5
|
+
* Installs Codex session tracking hooks into ~/.codex/config.toml.
|
|
6
|
+
*
|
|
7
|
+
* Codex uses TOML [[hooks]] arrays:
|
|
8
|
+
* [[hooks]]
|
|
9
|
+
* event = "AfterAgent"
|
|
10
|
+
* command = "kodus decisions hooks codex AfterAgent"
|
|
11
|
+
*
|
|
12
|
+
* Currently only AfterAgent is useful (maps to TurnEnd).
|
|
13
|
+
*/
|
|
14
|
+
export async function installCodexSessionHooks(configPath) {
|
|
15
|
+
let content = '';
|
|
16
|
+
try {
|
|
17
|
+
content = await fs.readFile(configPath, 'utf-8');
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (error.code !== 'ENOENT') {
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Check if already installed
|
|
25
|
+
if (content.includes(SESSION_HOOK_MARKER)) {
|
|
26
|
+
return { configPath, changed: false };
|
|
27
|
+
}
|
|
28
|
+
const hookBlock = [
|
|
29
|
+
'',
|
|
30
|
+
'[[hooks]]',
|
|
31
|
+
'event = "AfterAgent"',
|
|
32
|
+
`command = "${SESSION_HOOK_MARKER} AfterAgent"`,
|
|
33
|
+
'',
|
|
34
|
+
].join('\n');
|
|
35
|
+
const nextContent = content.trim().length === 0
|
|
36
|
+
? hookBlock.trim() + '\n'
|
|
37
|
+
: content.replace(/\s*$/, '') + '\n' + hookBlock;
|
|
38
|
+
await fs.mkdir(path.dirname(configPath), { recursive: true });
|
|
39
|
+
await fs.writeFile(configPath, nextContent, 'utf-8');
|
|
40
|
+
return { configPath, changed: true };
|
|
41
|
+
}
|
|
42
|
+
export async function removeCodexSessionHooks(configPath) {
|
|
43
|
+
let content;
|
|
44
|
+
try {
|
|
45
|
+
content = await fs.readFile(configPath, 'utf-8');
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return { configPath, removed: false };
|
|
49
|
+
}
|
|
50
|
+
if (!content.includes(SESSION_HOOK_MARKER)) {
|
|
51
|
+
return { configPath, removed: false };
|
|
52
|
+
}
|
|
53
|
+
// Remove [[hooks]] blocks that contain our marker command.
|
|
54
|
+
// A hook block starts with [[hooks]] and ends before the next
|
|
55
|
+
// [[something]] or end of file.
|
|
56
|
+
const lines = content.split('\n');
|
|
57
|
+
const resultLines = [];
|
|
58
|
+
let i = 0;
|
|
59
|
+
while (i < lines.length) {
|
|
60
|
+
const line = lines[i];
|
|
61
|
+
if (line.trim() === '[[hooks]]') {
|
|
62
|
+
// Peek ahead — if this block contains our marker, skip it
|
|
63
|
+
const blockLines = getTomlBlock(lines, i);
|
|
64
|
+
if (blockLines.some((l) => l.includes(SESSION_HOOK_MARKER))) {
|
|
65
|
+
i += blockLines.length;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
resultLines.push(line);
|
|
70
|
+
i++;
|
|
71
|
+
}
|
|
72
|
+
const nextContent = resultLines
|
|
73
|
+
.join('\n')
|
|
74
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
75
|
+
.replace(/^\n+/, '')
|
|
76
|
+
.replace(/\n*$/, '\n');
|
|
77
|
+
await fs.writeFile(configPath, nextContent === '\n' ? '' : nextContent, 'utf-8');
|
|
78
|
+
return { configPath, removed: true };
|
|
79
|
+
}
|
|
80
|
+
function getTomlBlock(lines, startIndex) {
|
|
81
|
+
const block = [lines[startIndex]];
|
|
82
|
+
for (let i = startIndex + 1; i < lines.length; i++) {
|
|
83
|
+
const trimmed = lines[i].trim();
|
|
84
|
+
if (trimmed.startsWith('[[') || trimmed.startsWith('[')) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
block.push(lines[i]);
|
|
88
|
+
}
|
|
89
|
+
return block;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=session-hooks-install-codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hooks-install-codex.js","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install-codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function installCursorSessionHooks(repoRoot: string): Promise<{
|
|
2
|
+
settingsPath: string;
|
|
3
|
+
changed: boolean;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function removeCursorSessionHooks(repoRoot: string): Promise<{
|
|
6
|
+
settingsPath: string;
|
|
7
|
+
removed: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=session-hooks-install-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hooks-install-cursor.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install-cursor.ts"],"names":[],"mappings":"AAsFA,wBAAsB,yBAAyB,CAC3C,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAoCrD;AAED,wBAAsB,wBAAwB,CAC1C,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiDrD"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
const SESSIONS_HOOK_PREFIX = 'kodus decisions hooks cursor';
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function isSessionsHookCommand(command) {
|
|
8
|
+
return command.includes('kodus decisions hooks');
|
|
9
|
+
}
|
|
10
|
+
async function readCursorHooksConfig(filePath) {
|
|
11
|
+
try {
|
|
12
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
13
|
+
const parsed = JSON.parse(content);
|
|
14
|
+
if (!isRecord(parsed)) {
|
|
15
|
+
return { version: 1, hooks: {} };
|
|
16
|
+
}
|
|
17
|
+
const rawHooks = isRecord(parsed.hooks) ? parsed.hooks : {};
|
|
18
|
+
// Validate that each hook value is an array of objects with `command`
|
|
19
|
+
const hooks = {};
|
|
20
|
+
for (const [key, value] of Object.entries(rawHooks)) {
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
hooks[key] = value.filter((e) => isRecord(e) && typeof e.command === 'string');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
version: typeof parsed.version === 'number' ? parsed.version : 1,
|
|
27
|
+
hooks,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error.code === 'ENOENT') {
|
|
32
|
+
return { version: 1, hooks: {} };
|
|
33
|
+
}
|
|
34
|
+
// Malformed JSON — start fresh rather than crashing
|
|
35
|
+
if (error instanceof SyntaxError) {
|
|
36
|
+
return { version: 1, hooks: {} };
|
|
37
|
+
}
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function upsertHook(hooks, eventName, command) {
|
|
42
|
+
const entries = hooks[eventName] ?? [];
|
|
43
|
+
hooks[eventName] = entries;
|
|
44
|
+
// Check if exact command already exists
|
|
45
|
+
if (entries.some((e) => e.command === command)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// Replace existing kodus sessions hook if present
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
if (isSessionsHookCommand(entry.command)) {
|
|
51
|
+
entry.command = command;
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
entries.push({ command });
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
export async function installCursorSessionHooks(repoRoot) {
|
|
59
|
+
const settingsPath = path.join(repoRoot, '.cursor', 'hooks.json');
|
|
60
|
+
const config = await readCursorHooksConfig(settingsPath);
|
|
61
|
+
const cmd = (hookEvent) => `${SESSIONS_HOOK_PREFIX} ${hookEvent}`;
|
|
62
|
+
let changed = false;
|
|
63
|
+
changed =
|
|
64
|
+
upsertHook(config.hooks, 'sessionStart', cmd('sessionStart')) ||
|
|
65
|
+
changed;
|
|
66
|
+
changed =
|
|
67
|
+
upsertHook(config.hooks, 'sessionEnd', cmd('sessionEnd')) || changed;
|
|
68
|
+
changed = upsertHook(config.hooks, 'stop', cmd('stop')) || changed;
|
|
69
|
+
changed =
|
|
70
|
+
upsertHook(config.hooks, 'beforeSubmitPrompt', cmd('beforeSubmitPrompt')) || changed;
|
|
71
|
+
changed =
|
|
72
|
+
upsertHook(config.hooks, 'subagentStart', cmd('subagentStart')) ||
|
|
73
|
+
changed;
|
|
74
|
+
changed =
|
|
75
|
+
upsertHook(config.hooks, 'subagentStop', cmd('subagentStop')) ||
|
|
76
|
+
changed;
|
|
77
|
+
if (changed) {
|
|
78
|
+
await fs.mkdir(path.dirname(settingsPath), { recursive: true });
|
|
79
|
+
await fs.writeFile(settingsPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
|
|
80
|
+
}
|
|
81
|
+
return { settingsPath, changed };
|
|
82
|
+
}
|
|
83
|
+
export async function removeCursorSessionHooks(repoRoot) {
|
|
84
|
+
const settingsPath = path.join(repoRoot, '.cursor', 'hooks.json');
|
|
85
|
+
let config;
|
|
86
|
+
try {
|
|
87
|
+
config = await readCursorHooksConfig(settingsPath);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return { settingsPath, removed: false };
|
|
91
|
+
}
|
|
92
|
+
let removed = false;
|
|
93
|
+
for (const eventName of Object.keys(config.hooks)) {
|
|
94
|
+
const entries = config.hooks[eventName];
|
|
95
|
+
if (!Array.isArray(entries)) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const filtered = entries.filter((e) => !isSessionsHookCommand(e.command));
|
|
99
|
+
if (filtered.length < entries.length) {
|
|
100
|
+
removed = true;
|
|
101
|
+
}
|
|
102
|
+
if (filtered.length === 0) {
|
|
103
|
+
delete config.hooks[eventName];
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
config.hooks[eventName] = filtered;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (removed) {
|
|
110
|
+
if (Object.keys(config.hooks).length === 0) {
|
|
111
|
+
await fs.writeFile(settingsPath, JSON.stringify({ version: 1, hooks: {} }, null, 2) + '\n', 'utf-8');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
await fs.writeFile(settingsPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { settingsPath, removed };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=session-hooks-install-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-hooks-install-cursor.js","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install-cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAc5D,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,qBAAqB,CAChC,QAAgB;IAEhB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,sEAAsE;QACtE,MAAM,KAAK,GAAsC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CACjC,CAAC;YAC3B,CAAC;QACL,CAAC;QACD,OAAO;YACH,OAAO,EACH,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3D,KAAK;SACR,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QACD,oDAAoD;QACpD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CACf,KAAwC,EACxC,SAAiB,EACjB,OAAe;IAEf,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACvC,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAE3B,wCAAwC;IACxC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,kDAAkD;IAClD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,GAAG,oBAAoB,IAAI,SAAS,EAAE,CAAC;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO;QACH,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;YAC7D,OAAO,CAAC;IACZ,OAAO;QACH,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC;IACzE,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACnE,OAAO;QACH,UAAU,CACN,MAAM,CAAC,KAAK,EACZ,oBAAoB,EACpB,GAAG,CAAC,oBAAoB,CAAC,CAC5B,IAAI,OAAO,CAAC;IACjB,OAAO;QACH,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,CAAC;IACZ,OAAO;QACH,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;YAC7D,OAAO,CAAC;IAEZ,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,SAAS,CACd,YAAY,EACZ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACtC,OAAO,CACV,CAAC;IACN,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAElE,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,SAAS;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAC3C,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QACvC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,CAAC,SAAS,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACzD,OAAO,CACV,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,CAAC,SAAS,CACd,YAAY,EACZ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACtC,OAAO,CACV,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-hooks-install.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install.ts"],"names":[],"mappings":"AAyGA,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"session-hooks-install.d.ts","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install.ts"],"names":[],"mappings":"AAyGA,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAoCrD;AAED,wBAAsB,kBAAkB,CACpC,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA8ErD"}
|
|
@@ -94,9 +94,10 @@ export async function installSessionHooks(repoRoot, agentName) {
|
|
|
94
94
|
upsertHook(hooks, 'UserPromptSubmit', '', cmd('user-prompt-submit')) ||
|
|
95
95
|
changed;
|
|
96
96
|
changed =
|
|
97
|
-
upsertHook(hooks, '
|
|
97
|
+
upsertHook(hooks, 'SubagentStart', '', cmd('subagent-start')) ||
|
|
98
|
+
changed;
|
|
98
99
|
changed =
|
|
99
|
-
upsertHook(hooks, '
|
|
100
|
+
upsertHook(hooks, 'SubagentStop', '', cmd('subagent-stop')) || changed;
|
|
100
101
|
changed =
|
|
101
102
|
upsertHook(hooks, 'PostToolUse', 'TodoWrite', cmd('post-todo')) ||
|
|
102
103
|
changed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-hooks-install.js","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-hooks-install.js","sourceRoot":"","sources":["../../../src/commands/memory/session-hooks-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.service.d.ts","sourceRoot":"","sources":["../../src/services/lifecycle.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle.service.d.ts","sourceRoot":"","sources":["../../src/services/lifecycle.service.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACR,cAAc,EACd,SAAS,EAIZ,MAAM,qBAAqB,CAAC;AA2B7B,cAAM,gBAAgB;IACZ,QAAQ,CACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;YA6BF,kBAAkB;YAuClB,eAAe;YAuDf,aAAa;YAiJb,gBAAgB;YA8BhB,mBAAmB;YAyDnB,oBAAoB;YAwCpB,iBAAiB;CA4BlC;AAeD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';
|
|
|
2
2
|
import { gitService } from './git.service.js';
|
|
3
3
|
import { hookLogger } from './hook-logger.service.js';
|
|
4
4
|
import { transcriptService } from './transcript.service.js';
|
|
5
|
-
import { saveLocal, loadLocal, removeLocal } from './session-local.service.js';
|
|
5
|
+
import { saveLocal, loadLocal, removeLocal, listStaleSessions, } from './session-local.service.js';
|
|
6
6
|
import { api } from './api/index.js';
|
|
7
7
|
const require = createRequire(import.meta.url);
|
|
8
8
|
const pkg = require('../../package.json');
|
|
@@ -57,6 +57,8 @@ class LifecycleService {
|
|
|
57
57
|
model_session_id: event.sessionId,
|
|
58
58
|
transcript_path: event.sessionRef,
|
|
59
59
|
});
|
|
60
|
+
// Clean up stale sessions from previous crashes (> 30 min old)
|
|
61
|
+
await this.cleanupStaleSessions(repoRoot, agentType);
|
|
60
62
|
const [branch, baseCommit, gitRemote] = await Promise.all([
|
|
61
63
|
getBranch(),
|
|
62
64
|
getHead(),
|
|
@@ -124,9 +126,42 @@ class LifecycleService {
|
|
|
124
126
|
model_session_id: event.sessionId,
|
|
125
127
|
});
|
|
126
128
|
const local = await loadLocal(repoRoot, event.sessionId);
|
|
127
|
-
|
|
129
|
+
// Dedup: if this turn was already completed (e.g. Stop + PostToolUse
|
|
130
|
+
// both firing TurnEnd), skip the duplicate.
|
|
131
|
+
if (local?.turnCompleted) {
|
|
132
|
+
await hookLogger.info('turn-end-dedup-skipped', 'lifecycle', {
|
|
133
|
+
agent: agentType,
|
|
134
|
+
model_session_id: event.sessionId,
|
|
135
|
+
turn_id: local.turnId,
|
|
136
|
+
});
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
128
139
|
const transcriptPath = local?.transcriptPath ?? event.sessionRef ?? '';
|
|
129
140
|
const transcriptOffset = local?.transcriptOffset ?? 0;
|
|
141
|
+
// When local state is missing it means turn_start never fired
|
|
142
|
+
// (e.g. UserPromptSubmit hook didn't trigger). Generate a synthetic
|
|
143
|
+
// turn_start so the backend always receives a matching pair.
|
|
144
|
+
const turnId = local?.turnId ?? `${Date.now()}`;
|
|
145
|
+
if (!local) {
|
|
146
|
+
await hookLogger.warn('turn-end-without-turn-start', 'lifecycle', {
|
|
147
|
+
agent: agentType,
|
|
148
|
+
model_session_id: event.sessionId,
|
|
149
|
+
synthetic_turn_id: turnId,
|
|
150
|
+
});
|
|
151
|
+
const [synthBranch, synthCommit] = await Promise.all([
|
|
152
|
+
getBranch(),
|
|
153
|
+
getHead(),
|
|
154
|
+
]);
|
|
155
|
+
sendEvent({
|
|
156
|
+
type: 'turn_start',
|
|
157
|
+
sessionId: event.sessionId,
|
|
158
|
+
branch: synthBranch,
|
|
159
|
+
timestamp: new Date().toISOString(),
|
|
160
|
+
turnId,
|
|
161
|
+
prompt: '',
|
|
162
|
+
commitBefore: synthCommit,
|
|
163
|
+
}, repoRoot);
|
|
164
|
+
}
|
|
130
165
|
const emptyTokenUsage = {
|
|
131
166
|
inputTokens: 0,
|
|
132
167
|
cacheCreationTokens: 0,
|
|
@@ -168,6 +203,16 @@ class LifecycleService {
|
|
|
168
203
|
getBranch(),
|
|
169
204
|
getHead(),
|
|
170
205
|
]);
|
|
206
|
+
// Mark turn as completed BEFORE sending the event to prevent
|
|
207
|
+
// duplicate turn_end from Stop + PostToolUse(TodoWrite) both firing.
|
|
208
|
+
// Save even for synthetic turns (when local was null) so subsequent
|
|
209
|
+
// TurnEnd calls for the same session are deduped.
|
|
210
|
+
await saveLocal(repoRoot, event.sessionId, {
|
|
211
|
+
turnId,
|
|
212
|
+
transcriptPath,
|
|
213
|
+
transcriptOffset,
|
|
214
|
+
turnCompleted: true,
|
|
215
|
+
});
|
|
171
216
|
sendEvent({
|
|
172
217
|
type: 'turn_end',
|
|
173
218
|
sessionId: event.sessionId,
|
|
@@ -237,6 +282,35 @@ class LifecycleService {
|
|
|
237
282
|
}, repoRoot);
|
|
238
283
|
}
|
|
239
284
|
// -------------------------------------------------------------------------
|
|
285
|
+
// Stale Session Cleanup
|
|
286
|
+
// -------------------------------------------------------------------------
|
|
287
|
+
async cleanupStaleSessions(repoRoot, agentType) {
|
|
288
|
+
const STALE_THRESHOLD_MS = 30 * 60 * 1000; // 30 minutes
|
|
289
|
+
try {
|
|
290
|
+
const stale = await listStaleSessions(repoRoot, STALE_THRESHOLD_MS);
|
|
291
|
+
if (stale.length === 0) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
const branch = await getBranch();
|
|
295
|
+
for (const { sessionId } of stale) {
|
|
296
|
+
await hookLogger.info('stale-session-cleanup', 'lifecycle', {
|
|
297
|
+
agent: agentType,
|
|
298
|
+
stale_session_id: sessionId,
|
|
299
|
+
});
|
|
300
|
+
sendEvent({
|
|
301
|
+
type: 'session_end',
|
|
302
|
+
sessionId,
|
|
303
|
+
branch,
|
|
304
|
+
timestamp: new Date().toISOString(),
|
|
305
|
+
}, repoRoot);
|
|
306
|
+
await removeLocal(repoRoot, sessionId);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// Best-effort cleanup — never block the current session
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// -------------------------------------------------------------------------
|
|
240
314
|
// Subagent End (post-task)
|
|
241
315
|
// -------------------------------------------------------------------------
|
|
242
316
|
async handleSubagentEnd(repoRoot, agentType, event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.service.js","sourceRoot":"","sources":["../../src/services/lifecycle.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle.service.js","sourceRoot":"","sources":["../../src/services/lifecycle.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,24 @@ export interface LocalSessionData {
|
|
|
2
2
|
turnId: string;
|
|
3
3
|
transcriptPath: string;
|
|
4
4
|
transcriptOffset: number;
|
|
5
|
+
/** Set to true after turn_end is sent — prevents duplicate turn_end events */
|
|
6
|
+
turnCompleted?: boolean;
|
|
5
7
|
}
|
|
6
8
|
export declare function saveLocal(repoRoot: string, sessionId: string, data: LocalSessionData): Promise<void>;
|
|
7
9
|
export declare function loadLocal(repoRoot: string, sessionId: string): Promise<LocalSessionData | null>;
|
|
8
10
|
export declare function removeLocal(repoRoot: string, sessionId: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Mark the current turn as completed to prevent duplicate turn_end events
|
|
13
|
+
* (e.g. Stop + PostToolUse(TodoWrite) both triggering TurnEnd).
|
|
14
|
+
*/
|
|
15
|
+
export declare function markTurnCompleted(repoRoot: string, sessionId: string): Promise<void>;
|
|
16
|
+
export interface StaleSession {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
ageMs: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* List session files older than maxAgeMs.
|
|
22
|
+
* Used on SessionStart to detect orphaned sessions from previous crashes.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listStaleSessions(repoRoot: string, maxAgeMs: number): Promise<StaleSession[]>;
|
|
9
25
|
//# sourceMappingURL=session-local.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-local.service.d.ts","sourceRoot":"","sources":["../../src/services/session-local.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-local.service.d.ts","sourceRoot":"","sources":["../../src/services/session-local.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAYD,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAUlC;AAED,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAgCzB"}
|
|
@@ -30,4 +30,53 @@ export async function removeLocal(repoRoot, sessionId) {
|
|
|
30
30
|
// Ignore if file doesn't exist
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Mark the current turn as completed to prevent duplicate turn_end events
|
|
35
|
+
* (e.g. Stop + PostToolUse(TodoWrite) both triggering TurnEnd).
|
|
36
|
+
*/
|
|
37
|
+
export async function markTurnCompleted(repoRoot, sessionId) {
|
|
38
|
+
const data = await loadLocal(repoRoot, sessionId);
|
|
39
|
+
if (!data) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
data.turnCompleted = true;
|
|
43
|
+
const filePath = sessionPath(repoRoot, sessionId);
|
|
44
|
+
await fs.writeFile(filePath, JSON.stringify(data) + '\n', 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* List session files older than maxAgeMs.
|
|
48
|
+
* Used on SessionStart to detect orphaned sessions from previous crashes.
|
|
49
|
+
*/
|
|
50
|
+
export async function listStaleSessions(repoRoot, maxAgeMs) {
|
|
51
|
+
const dir = path.join(repoRoot, SESSION_DIR);
|
|
52
|
+
let entries;
|
|
53
|
+
try {
|
|
54
|
+
entries = await fs.readdir(dir);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const now = Date.now();
|
|
60
|
+
const stale = [];
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
if (!entry.endsWith('.json')) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
const filePath = path.join(dir, entry);
|
|
67
|
+
const stat = await fs.stat(filePath);
|
|
68
|
+
const ageMs = now - stat.mtimeMs;
|
|
69
|
+
if (ageMs > maxAgeMs) {
|
|
70
|
+
stale.push({
|
|
71
|
+
sessionId: entry.replace(/\.json$/, ''),
|
|
72
|
+
ageMs,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Skip files we can't stat
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return stale;
|
|
81
|
+
}
|
|
33
82
|
//# sourceMappingURL=session-local.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-local.service.js","sourceRoot":"","sources":["../../src/services/session-local.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session-local.service.js","sourceRoot":"","sources":["../../src/services/session-local.service.ts"],"names":[],"mappings":"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"}
|
package/dist/types/session.d.ts
CHANGED
|
@@ -100,7 +100,9 @@ export interface LogEntry {
|
|
|
100
100
|
}
|
|
101
101
|
export type AgentType = 'claude-code' | 'cursor' | 'codex';
|
|
102
102
|
export declare const SUPPORTED_SESSION_AGENTS: Set<AgentType>;
|
|
103
|
-
export type ClaudeCodeHookEvent = 'session-start' | 'session-end' | 'stop' | 'user-prompt-submit' | '
|
|
103
|
+
export type ClaudeCodeHookEvent = 'session-start' | 'session-end' | 'stop' | 'user-prompt-submit' | 'subagent-start' | 'subagent-stop' | 'post-todo' | 'pre-task' | 'post-task';
|
|
104
|
+
export type CursorHookEvent = 'sessionStart' | 'sessionEnd' | 'stop' | 'beforeSubmitPrompt' | 'subagentStart' | 'subagentStop';
|
|
105
|
+
export type CodexHookEvent = 'AfterAgent' | 'AfterToolUse';
|
|
104
106
|
export interface TranscriptEntry {
|
|
105
107
|
type: string;
|
|
106
108
|
timestamp?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-sync.d.ts","sourceRoot":"","sources":["../../src/utils/skills-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,oBAAoB,EAAqB,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,wBAAwB,+FAI3B,CAAC;AAKX,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACnC;AA4MD,wBAAgB,4BAA4B,CACxC,GAAG,SAAgB,EACnB,OAAO,SAAe,GACvB,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"skills-sync.d.ts","sourceRoot":"","sources":["../../src/utils/skills-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,oBAAoB,EAAqB,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,wBAAwB,+FAI3B,CAAC;AAKX,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACnC;AA4MD,wBAAgB,4BAA4B,CACxC,GAAG,SAAgB,EACnB,OAAO,SAAe,GACvB,eAAe,EAAE,CA2KnB;AAYD,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAiH1B"}
|
|
@@ -310,6 +310,18 @@ export function buildDefaultSkillSyncTargets(cwd = process.cwd(), homeDir = os.h
|
|
|
310
310
|
activationPath: path.join(cwd, '.gemini'),
|
|
311
311
|
baseDir: path.join(cwd, '.gemini', 'skills'),
|
|
312
312
|
},
|
|
313
|
+
{
|
|
314
|
+
label: 'Kiro project skills',
|
|
315
|
+
type: 'skill',
|
|
316
|
+
activationPath: path.join(cwd, '.kiro'),
|
|
317
|
+
baseDir: path.join(cwd, '.kiro', 'skills'),
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
label: 'Kiro user skills',
|
|
321
|
+
type: 'skill',
|
|
322
|
+
activationPath: path.join(homeDir, '.kiro'),
|
|
323
|
+
baseDir: path.join(homeDir, '.kiro', 'skills'),
|
|
324
|
+
},
|
|
313
325
|
];
|
|
314
326
|
}
|
|
315
327
|
async function loadSkillsForSync(skills) {
|