xibecode 1.0.8 → 1.2.2
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/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +33 -35
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/hooks.d.ts +13 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +134 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/memory.d.ts +13 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +88 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/resume.d.ts +3 -0
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +36 -9
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/settings.d.ts +14 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +89 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/ui/claude-style-chat.d.ts.map +1 -1
- package/dist/ui/claude-style-chat.js +355 -11
- package/dist/ui/claude-style-chat.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAaA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsHD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBA+BrD"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -8,7 +8,7 @@ import { SkillManager } from 'xibecode-core';
|
|
|
8
8
|
import { builtInSkillsDir } from '../utils/built-in-skills-dir.js';
|
|
9
9
|
import { MCPClientManager } from 'xibecode-core';
|
|
10
10
|
import { CodingToolExecutor, NeuralMemory } from 'xibecode-core';
|
|
11
|
-
import { EnhancedAgent } from 'xibecode-core';
|
|
11
|
+
import { EnhancedAgent, AgentStream } from 'xibecode-core';
|
|
12
12
|
import { SessionManager } from 'xibecode-core';
|
|
13
13
|
async function runPlainChat(options) {
|
|
14
14
|
const require = createRequire(import.meta.url);
|
|
@@ -41,36 +41,6 @@ async function runPlainChat(options) {
|
|
|
41
41
|
const print = (line) => {
|
|
42
42
|
process.stdout.write(line.endsWith('\n') ? line : line + '\n');
|
|
43
43
|
};
|
|
44
|
-
const onEvent = (event) => {
|
|
45
|
-
switch (event.type) {
|
|
46
|
-
case 'thinking':
|
|
47
|
-
print(`[info] ${event.data?.message || 'Thinking…'}`);
|
|
48
|
-
break;
|
|
49
|
-
case 'tool_call':
|
|
50
|
-
print(`[tool] ${String(event.data?.name ?? 'tool')}`);
|
|
51
|
-
break;
|
|
52
|
-
case 'tool_result':
|
|
53
|
-
print(`[tool_out] ${String(event.data?.name ?? 'tool')}: ${event.data?.success === false ? 'error' : 'ok'}`);
|
|
54
|
-
break;
|
|
55
|
-
case 'stream_start':
|
|
56
|
-
print('[assistant] ');
|
|
57
|
-
break;
|
|
58
|
-
case 'stream_text':
|
|
59
|
-
process.stdout.write(String(event.data?.text ?? ''));
|
|
60
|
-
break;
|
|
61
|
-
case 'stream_end':
|
|
62
|
-
process.stdout.write('\n');
|
|
63
|
-
break;
|
|
64
|
-
case 'response':
|
|
65
|
-
print(String(event.data?.text ?? ''));
|
|
66
|
-
break;
|
|
67
|
-
case 'error':
|
|
68
|
-
print(`[error] ${event.data?.message || event.data?.error || 'Unknown error'}`);
|
|
69
|
-
break;
|
|
70
|
-
default:
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
44
|
rl.prompt();
|
|
75
45
|
for await (const line of rl) {
|
|
76
46
|
const input = String(line ?? '').trim();
|
|
@@ -107,10 +77,38 @@ async function runPlainChat(options) {
|
|
|
107
77
|
requestFormat: config.get('requestFormat') ?? 'auto',
|
|
108
78
|
defaultSkillsPrompt,
|
|
109
79
|
}, provider);
|
|
110
|
-
agent.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
80
|
+
const stream = new AgentStream(agent, input, toolExecutor.getTools(), toolExecutor);
|
|
81
|
+
let costLabel = '';
|
|
82
|
+
await stream.onEvent((event) => {
|
|
83
|
+
switch (event.type) {
|
|
84
|
+
case 'thinking':
|
|
85
|
+
print(`[info] ${event.message}`);
|
|
86
|
+
break;
|
|
87
|
+
case 'text_delta':
|
|
88
|
+
process.stdout.write(event.text);
|
|
89
|
+
break;
|
|
90
|
+
case 'tool_call_start':
|
|
91
|
+
print(`[tool] ${event.name}`);
|
|
92
|
+
break;
|
|
93
|
+
case 'tool_call_end':
|
|
94
|
+
print(`[tool_out] ${event.name}: ${event.success ? 'ok' : 'error'}`);
|
|
95
|
+
break;
|
|
96
|
+
case 'warning':
|
|
97
|
+
print(`[warn] ${event.message}`);
|
|
98
|
+
break;
|
|
99
|
+
case 'error':
|
|
100
|
+
print(`[error] ${event.message}`);
|
|
101
|
+
break;
|
|
102
|
+
case 'complete':
|
|
103
|
+
costLabel = event.costLabel ?? '';
|
|
104
|
+
break;
|
|
105
|
+
case 'cancelled':
|
|
106
|
+
print('[cancelled]');
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
process.stdout.write('\n');
|
|
111
|
+
print(`[done]` + (costLabel ? ` cost ${costLabel}` : ''));
|
|
114
112
|
rl.prompt();
|
|
115
113
|
}
|
|
116
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks command - manage lifecycle hooks.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* xc hooks list List all registered hooks
|
|
6
|
+
* xc hooks add <event> <type> <value> Add a hook
|
|
7
|
+
* xc hooks remove <event> <index> Remove a hook by index
|
|
8
|
+
* xc hooks events List available hook events
|
|
9
|
+
*/
|
|
10
|
+
export declare function hooksCommand(action: string | undefined, args: string[], _options: {
|
|
11
|
+
profile?: string;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Hf"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hooks command - manage lifecycle hooks.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* xc hooks list List all registered hooks
|
|
6
|
+
* xc hooks add <event> <type> <value> Add a hook
|
|
7
|
+
* xc hooks remove <event> <index> Remove a hook by index
|
|
8
|
+
* xc hooks events List available hook events
|
|
9
|
+
*/
|
|
10
|
+
import { HooksManager, SettingsManager, HOOK_EVENTS } from 'xibecode-core';
|
|
11
|
+
export async function hooksCommand(action, args, _options) {
|
|
12
|
+
const settingsManager = new SettingsManager({ cwd: process.cwd() });
|
|
13
|
+
const hooksManager = new HooksManager(settingsManager);
|
|
14
|
+
await hooksManager.loadFromSettingsManager();
|
|
15
|
+
const act = action || 'list';
|
|
16
|
+
switch (act) {
|
|
17
|
+
case 'list': {
|
|
18
|
+
const allHooks = hooksManager.getAllHooks();
|
|
19
|
+
const flatList = [];
|
|
20
|
+
let idx = 0;
|
|
21
|
+
for (const [event, hooks] of allHooks) {
|
|
22
|
+
for (const hook of hooks) {
|
|
23
|
+
flatList.push({ ...hook, index: idx++ });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (flatList.length === 0) {
|
|
27
|
+
console.log('No hooks configured.');
|
|
28
|
+
console.log('Use "xc hooks add" to add one, or edit ~/.xibecode/settings.json');
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
console.log('Registered hooks:\n');
|
|
32
|
+
for (const hook of flatList) {
|
|
33
|
+
const config = hook.config;
|
|
34
|
+
const type = 'command' in config ? 'command' : 'prompt' in config ? 'prompt' : 'agent' in config ? 'agent' : 'http' in config ? 'http' : 'function';
|
|
35
|
+
const value = config.command || config.prompt || config.agent || config.http || '(function)';
|
|
36
|
+
const matcher = hook.matcher ? ` matcher="${hook.matcher}"` : '';
|
|
37
|
+
const once = config.once ? ' [once]' : '';
|
|
38
|
+
console.log(` [${hook.index}] ${hook.event}${matcher}${once}`);
|
|
39
|
+
console.log(` type: ${type} | value: ${value}`);
|
|
40
|
+
}
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
case 'add': {
|
|
44
|
+
const event = args[0];
|
|
45
|
+
const type = args[1];
|
|
46
|
+
const value = args.slice(2).join(' ');
|
|
47
|
+
if (!event || !type || !value) {
|
|
48
|
+
console.error('Usage: xc hooks add <event> <type> <value>');
|
|
49
|
+
console.error(' Types: command, http');
|
|
50
|
+
console.error(' Example: xc hooks add PreToolUse command "echo $TOOL_NAME >> /tmp/tool-log.txt"');
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
if (!HOOK_EVENTS.includes(event)) {
|
|
54
|
+
console.error(`Invalid event: ${event}`);
|
|
55
|
+
console.error(`Available events: ${HOOK_EVENTS.join(', ')}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
let hookConfig;
|
|
59
|
+
if (type === 'command') {
|
|
60
|
+
hookConfig = { type: 'command', command: value };
|
|
61
|
+
}
|
|
62
|
+
else if (type === 'http') {
|
|
63
|
+
hookConfig = { type: 'http', url: value };
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
console.error(`Unsupported hook type: ${type}. Supported: command, http`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
const settings = await settingsManager.getSettings();
|
|
70
|
+
const hooks = settings.hooks || {};
|
|
71
|
+
const eventHooks = hooks[event] || [];
|
|
72
|
+
eventHooks.push({ matcher: undefined, hooks: [hookConfig] });
|
|
73
|
+
hooks[event] = eventHooks;
|
|
74
|
+
await settingsManager.updateSource('user', { hooks });
|
|
75
|
+
console.log(`Added ${type} hook for ${event}.`);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case 'remove': {
|
|
79
|
+
const event = args[0];
|
|
80
|
+
const indexStr = args[1];
|
|
81
|
+
if (!event || indexStr === undefined) {
|
|
82
|
+
console.error('Usage: xc hooks remove <event> <index>');
|
|
83
|
+
console.error(' Use "xc hooks list" to see hook indices.');
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
const index = parseInt(indexStr, 10);
|
|
87
|
+
const settings = await settingsManager.getSettings();
|
|
88
|
+
const hooks = settings.hooks || {};
|
|
89
|
+
const eventHooks = hooks[event];
|
|
90
|
+
if (!eventHooks || !Array.isArray(eventHooks)) {
|
|
91
|
+
console.error(`No hooks found for event: ${event}`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
if (index < 0 || index >= eventHooks.length) {
|
|
95
|
+
console.error(`Invalid index: ${index}. Event ${event} has ${eventHooks.length} hook(s).`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
eventHooks.splice(index, 1);
|
|
99
|
+
if (eventHooks.length === 0) {
|
|
100
|
+
delete hooks[event];
|
|
101
|
+
}
|
|
102
|
+
await settingsManager.updateSource('user', { hooks });
|
|
103
|
+
console.log(`Removed hook [${index}] from ${event}.`);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case 'events': {
|
|
107
|
+
console.log('Available hook events:\n');
|
|
108
|
+
for (const evt of HOOK_EVENTS) {
|
|
109
|
+
const desc = getEventDescription(evt);
|
|
110
|
+
console.log(` ${evt.padEnd(20)} ${desc}`);
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
console.error(`Unknown action: ${act}`);
|
|
116
|
+
console.error('Available actions: list, add, remove, events');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function getEventDescription(event) {
|
|
121
|
+
const descriptions = {
|
|
122
|
+
PreToolUse: 'Before a tool is executed',
|
|
123
|
+
PostToolUse: 'After a tool is executed',
|
|
124
|
+
SessionStart: 'When a session begins',
|
|
125
|
+
SessionEnd: 'When a session ends',
|
|
126
|
+
UserPromptSubmit: 'When user submits a prompt',
|
|
127
|
+
Stop: 'When the agent stops normally',
|
|
128
|
+
StopFailure: 'When the agent stops due to failure',
|
|
129
|
+
PreCompact: 'Before context compaction',
|
|
130
|
+
PostCompact: 'After context compaction',
|
|
131
|
+
};
|
|
132
|
+
return descriptions[event] || '';
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3E,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAA0B,EAC1B,IAAc,EACd,QAA8B;IAE9B,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,YAAY,CAAC,uBAAuB,EAAE,CAAC;IAE7C,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC;IAE7B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAA8C,EAAE,CAAC;YAC/D,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;gBAChF,MAAM;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,IAAI,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;gBACpJ,MAAM,KAAK,GAAI,MAAc,CAAC,OAAO,IAAK,MAAc,CAAC,MAAM,IAAK,MAAc,CAAC,KAAK,IAAK,MAAc,CAAC,IAAI,IAAI,YAAY,CAAC;gBACjI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAc,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACxC,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;gBACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,qBAAqB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,UAAsB,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,UAAU,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC;YACjE,CAAC;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAgB,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,4BAA4B,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAK,EAAU,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACtC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7D,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;YAE1B,MAAM,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAS,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,aAAa,KAAK,GAAG,CAAC,CAAC;YAChD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAc,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxD,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAK,EAAU,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAEhC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,WAAW,KAAK,QAAQ,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAS,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,UAAU,KAAK,GAAG,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,YAAY,GAA2B;QAC3C,UAAU,EAAE,2BAA2B;QACvC,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,uBAAuB;QACrC,UAAU,EAAE,qBAAqB;QACjC,gBAAgB,EAAE,4BAA4B;QAC9C,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,2BAA2B;QACvC,WAAW,EAAE,0BAA0B;KACxC,CAAC;IACF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory command - manage project auto-memories.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* xc memory list List all memories for this project
|
|
6
|
+
* xc memory search <query> Search memories by keyword
|
|
7
|
+
* xc memory dream Force dream consolidation
|
|
8
|
+
* xc memory path Show memory directory path
|
|
9
|
+
*/
|
|
10
|
+
export declare function memoryCommand(action: string | undefined, args: string[], _options: {
|
|
11
|
+
profile?: string;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkEf"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory command - manage project auto-memories.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* xc memory list List all memories for this project
|
|
6
|
+
* xc memory search <query> Search memories by keyword
|
|
7
|
+
* xc memory dream Force dream consolidation
|
|
8
|
+
* xc memory path Show memory directory path
|
|
9
|
+
*/
|
|
10
|
+
import { AutoMemoryManager } from 'xibecode-core';
|
|
11
|
+
export async function memoryCommand(action, args, _options) {
|
|
12
|
+
const manager = new AutoMemoryManager({ cwd: process.cwd() });
|
|
13
|
+
const act = action || 'list';
|
|
14
|
+
switch (act) {
|
|
15
|
+
case 'list': {
|
|
16
|
+
const memories = await manager.listMemories();
|
|
17
|
+
if (memories.length === 0) {
|
|
18
|
+
console.log('No memories found for this project.');
|
|
19
|
+
console.log('Memories are auto-extracted as you chat with XibeCode.');
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
console.log(`Found ${memories.length} memory/memories:\n`);
|
|
23
|
+
for (const mem of memories) {
|
|
24
|
+
const age = formatAge(mem.mtime);
|
|
25
|
+
const tags = mem.frontmatter.tags?.length
|
|
26
|
+
? ` [${mem.frontmatter.tags.join(', ')}]`
|
|
27
|
+
: '';
|
|
28
|
+
console.log(` ${mem.frontmatter.type}${tags} (${age})`);
|
|
29
|
+
console.log(` ${mem.content.trim().slice(0, 100)}${mem.content.length > 100 ? '...' : ''}`);
|
|
30
|
+
console.log(` File: ${mem.filename}`);
|
|
31
|
+
console.log();
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case 'search': {
|
|
36
|
+
const query = args.join(' ');
|
|
37
|
+
if (!query) {
|
|
38
|
+
console.error('Usage: xc memory search <query>');
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
const context = await manager.getContextMemories(query);
|
|
42
|
+
if (!context) {
|
|
43
|
+
console.log('No relevant memories found.');
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
console.log('Relevant memories:\n');
|
|
47
|
+
console.log(context);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case 'dream': {
|
|
51
|
+
console.log('Running dream consolidation...');
|
|
52
|
+
const result = await manager.dream();
|
|
53
|
+
console.log(`Dream complete: created=${result.created}, merged=${result.merged}, pruned=${result.pruned}`);
|
|
54
|
+
if (result.errors.length > 0) {
|
|
55
|
+
console.log('Errors:');
|
|
56
|
+
for (const err of result.errors) {
|
|
57
|
+
console.log(` - ${err}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'path': {
|
|
63
|
+
console.log(`Memory directory: ${manager.getMemoryDir()}`);
|
|
64
|
+
console.log(`Memory entrypoint: ${manager.getMemoryEntrypoint()}`);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
console.error(`Unknown action: ${act}`);
|
|
69
|
+
console.error('Available actions: list, search, dream, path');
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function formatAge(date) {
|
|
74
|
+
const ms = Date.now() - date.getTime();
|
|
75
|
+
const hours = Math.floor(ms / (1000 * 60 * 60));
|
|
76
|
+
if (hours < 1)
|
|
77
|
+
return 'just now';
|
|
78
|
+
if (hours < 24)
|
|
79
|
+
return `${hours}h ago`;
|
|
80
|
+
const days = Math.floor(hours / 24);
|
|
81
|
+
if (days < 7)
|
|
82
|
+
return `${days}d ago`;
|
|
83
|
+
const weeks = Math.floor(days / 7);
|
|
84
|
+
if (weeks < 4)
|
|
85
|
+
return `${weeks}w ago`;
|
|
86
|
+
return date.toISOString().split('T')[0];
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
interface ResumeOptions {
|
|
2
2
|
profile?: string;
|
|
3
3
|
session?: string;
|
|
4
|
+
all?: boolean;
|
|
5
|
+
/** Resume into a new session (fork) instead of continuing the original. */
|
|
6
|
+
forkSession?: boolean;
|
|
4
7
|
}
|
|
5
8
|
export declare function resumeCommand(options: ResumeOptions): Promise<void>;
|
|
6
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.tsx"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA2HD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCzE"}
|
package/dist/commands/resume.js
CHANGED
|
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import { Box, Text, useApp, useInput, createRoot } from '../ink.js';
|
|
4
4
|
import TextInput from 'ink-text-input';
|
|
5
|
-
import { SessionManager } from 'xibecode-core';
|
|
5
|
+
import { SessionManager, loadTranscriptFile, findMainConversationTip, buildConversationChain, recoverConversationV2 } from 'xibecode-core';
|
|
6
6
|
import { launchClaudeStyleChat } from '../ui/claude-style-chat.js';
|
|
7
7
|
import { ConfigManager } from '../utils/config.js';
|
|
8
8
|
import { renderAndRun } from '../interactiveHelpers.js';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as os from 'os';
|
|
9
11
|
function formatRelativeTime(dateStr) {
|
|
10
12
|
const date = new Date(dateStr);
|
|
11
13
|
const now = new Date();
|
|
@@ -56,7 +58,7 @@ function SessionPicker(props) {
|
|
|
56
58
|
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: "claude", children: "Resume Session" }) }), _jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: "inactive", children: "Filter: " }), _jsx(TextInput, { value: filter, onChange: setFilter, placeholder: "Search sessions..." })] }), filteredSessions.length === 0 ? (_jsx(Text, { color: "inactive", children: "No sessions found." })) : (_jsx(Box, { flexDirection: "column", children: visibleSessions.map((session, idx) => {
|
|
57
59
|
const absoluteIndex = windowStart + idx;
|
|
58
60
|
const isSelected = absoluteIndex === selectedIndex;
|
|
59
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: isSelected ? 'claude' : 'inactive', children: isSelected ? '▸ ' : ' ' }), _jsx(Text, { bold: true, color: isSelected ? 'claude' : 'text', children: session.title })] }), _jsxs(Text, { color: "subtle", children: [' ', formatRelativeTime(session.updated), " \u00B7 ", session.model, " \u00B7", ' ', session.id.slice(0, 20), "..."] })] }, session.id));
|
|
61
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: isSelected ? 'claude' : 'inactive', children: isSelected ? '▸ ' : ' ' }), _jsx(Text, { bold: true, color: isSelected ? 'claude' : 'text', children: session.title })] }), _jsxs(Text, { color: "subtle", children: [' ', formatRelativeTime(session.updated), " \u00B7 ", session.model, " \u00B7", ' ', session.id.slice(0, 20), "...", session.cwd ? ` · ${session.cwd.split('/').slice(-2).join('/')}` : ''] })] }, session.id));
|
|
60
62
|
}) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "subtle", children: "\u2191/\u2193 navigate \u00B7 Enter select \u00B7 Esc cancel" }) })] }));
|
|
61
63
|
}
|
|
62
64
|
async function showSessionPicker(sessions) {
|
|
@@ -82,12 +84,14 @@ export async function resumeCommand(options) {
|
|
|
82
84
|
console.error(`Session not found: ${options.session}`);
|
|
83
85
|
process.exit(1);
|
|
84
86
|
}
|
|
85
|
-
await resumeSession(session, config, options.profile);
|
|
87
|
+
await resumeSession(session, config, options.profile, options.forkSession);
|
|
86
88
|
return;
|
|
87
89
|
}
|
|
88
|
-
const sessions =
|
|
90
|
+
const sessions = options.all
|
|
91
|
+
? await sessionManager.listSessions()
|
|
92
|
+
: await sessionManager.listSessions(process.cwd());
|
|
89
93
|
if (sessions.length === 0) {
|
|
90
|
-
console.log('No sessions found
|
|
94
|
+
console.log(options.all ? 'No sessions found.' : `No sessions found in ${process.cwd()}.`);
|
|
91
95
|
console.log('\nStart a new session with: xibecode chat');
|
|
92
96
|
process.exit(0);
|
|
93
97
|
return;
|
|
@@ -104,9 +108,9 @@ export async function resumeCommand(options) {
|
|
|
104
108
|
process.exit(1);
|
|
105
109
|
return;
|
|
106
110
|
}
|
|
107
|
-
await resumeSession(session, config, options.profile);
|
|
111
|
+
await resumeSession(session, config, options.profile, options.forkSession);
|
|
108
112
|
}
|
|
109
|
-
async function resumeSession(session, config, profile) {
|
|
113
|
+
async function resumeSession(session, config, profile, forkSession) {
|
|
110
114
|
console.log(`\nResuming session: ${session.title}`);
|
|
111
115
|
console.log(`Session ID: ${session.id}`);
|
|
112
116
|
console.log(`Model: ${session.model}`);
|
|
@@ -119,17 +123,40 @@ async function resumeSession(session, config, profile) {
|
|
|
119
123
|
}
|
|
120
124
|
const baseUrl = config.getBaseUrl();
|
|
121
125
|
const provider = config.get('provider');
|
|
122
|
-
|
|
126
|
+
// Try to load from JSONL transcript for enhanced recovery
|
|
127
|
+
let messages = session.messages;
|
|
128
|
+
let interruptionState = { kind: 'none' };
|
|
129
|
+
try {
|
|
130
|
+
const sanitizedCwd = session.cwd.replace(/[^a-zA-Z0-9]/g, '-').slice(0, 60);
|
|
131
|
+
const jsonlPath = path.join(os.homedir(), '.xibecode', 'projects', sanitizedCwd, `${session.id}.jsonl`);
|
|
132
|
+
const { byUuid, leafUuids, entries } = await loadTranscriptFile(jsonlPath);
|
|
133
|
+
const tip = findMainConversationTip(byUuid, leafUuids);
|
|
134
|
+
if (tip) {
|
|
135
|
+
const chain = buildConversationChain(byUuid, tip);
|
|
136
|
+
const recovered = recoverConversationV2(chain);
|
|
137
|
+
messages = recovered.messages;
|
|
138
|
+
interruptionState = recovered.turnInterruptionState;
|
|
139
|
+
if (recovered.wasInterrupted) {
|
|
140
|
+
console.log('Session was interrupted mid-turn. Auto-continuing...');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// JSONL transcript not available — use the legacy session messages
|
|
146
|
+
}
|
|
147
|
+
const initialMessages = messages.map((msg) => ({
|
|
123
148
|
role: msg.role,
|
|
124
149
|
content: msg.content,
|
|
125
150
|
}));
|
|
151
|
+
// When forking, use a new session ID; otherwise reuse the original
|
|
152
|
+
const sessionId = forkSession ? undefined : session.id;
|
|
126
153
|
await launchClaudeStyleChat({
|
|
127
154
|
model: session.model,
|
|
128
155
|
baseUrl,
|
|
129
156
|
apiKey,
|
|
130
157
|
provider,
|
|
131
158
|
profile,
|
|
132
|
-
sessionId
|
|
159
|
+
sessionId,
|
|
133
160
|
initialMessages,
|
|
134
161
|
});
|
|
135
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings command - manage multi-source settings.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* xc settings list Show all merged settings
|
|
6
|
+
* xc settings get <key> Get a specific setting value
|
|
7
|
+
* xc settings set <key> <val> Set a setting in user-level config
|
|
8
|
+
* xc settings sources Show settings sources and priorities
|
|
9
|
+
* xc settings paths Show settings file paths
|
|
10
|
+
*/
|
|
11
|
+
export declare function settingsCommand(action: string | undefined, args: string[], options: {
|
|
12
|
+
profile?: string;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiFf"}
|