xibecode 1.0.8 → 1.2.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/dist/index.js CHANGED
@@ -8,6 +8,9 @@ import { configCommand } from './commands/config.js';
8
8
  import { mcpCommand } from './commands/mcp.js';
9
9
  import { diagnosticsCommand } from './commands/diagnostics.js';
10
10
  import { skillsCommand } from './commands/skills.js';
11
+ import { settingsCommand } from './commands/settings.js';
12
+ import { hooksCommand } from './commands/hooks.js';
13
+ import { memoryCommand } from './commands/memory.js';
11
14
  import dotenv from 'dotenv';
12
15
  import { createRequire } from 'module';
13
16
  const require = createRequire(import.meta.url);
@@ -80,8 +83,9 @@ program
80
83
  .description('Resume a previous chat session')
81
84
  .argument('[session-id]', 'Session ID to resume (optional - shows picker if not provided)')
82
85
  .option('--profile <name>', 'Config profile to use (default: configured default profile)')
86
+ .option('--all', 'Show sessions from all projects, not just the current directory')
83
87
  .action((sessionId, options) => {
84
- resumeCommand({ session: sessionId, profile: options.profile });
88
+ resumeCommand({ session: sessionId, profile: options.profile, all: options.all });
85
89
  });
86
90
  // Configuration
87
91
  program
@@ -117,6 +121,24 @@ program
117
121
  .command('skills [action] [args...]')
118
122
  .description('List/search/show skills (built-in + .xibecode/skills)')
119
123
  .action((action, args, options) => skillsCommand(action, args, options));
124
+ // Settings management
125
+ program
126
+ .command('settings [action] [args...]')
127
+ .description('Manage multi-source settings (list, get, set, sources, paths)')
128
+ .option('--profile <name>', 'Config profile to use')
129
+ .action((action, args, options) => settingsCommand(action, args, options));
130
+ // Hooks management
131
+ program
132
+ .command('hooks [action] [args...]')
133
+ .description('Manage lifecycle hooks (list, add, remove, events)')
134
+ .option('--profile <name>', 'Config profile to use')
135
+ .action((action, args, options) => hooksCommand(action, args, options));
136
+ // Memory management
137
+ program
138
+ .command('memory [action] [args...]')
139
+ .description('Manage project auto-memories (list, search, dream, path)')
140
+ .option('--profile <name>', 'Config profile to use')
141
+ .action((action, args, options) => memoryCommand(action, args, options));
120
142
  // MCP Server Management
121
143
  const mcpCmd = program
122
144
  .command('mcp')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAEzC,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;KACpD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,eAAe,EAAE,kDAAkD,CAAC;KAC3E,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;KACxE,MAAM,CAAC,+BAA+B,EAAE,iDAAiD,EAAE,KAAK,CAAC;KACjG,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,oBAAoB,EAAE,0EAA0E,EAAE,QAAQ,CAAC;KAClH,MAAM,CAAC,cAAc,EAAE,wEAAwE,EAAE,KAAK,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,wEAAwE,EAAE,KAAK,CAAC;KAC7G,MAAM,CAAC,WAAW,EAAE,qCAAqC,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,KAAK,CAAC;KAClE,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,EAAE,KAAK,CAAC;KACxF,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,8BAA8B;AAC9B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wFAAwF,CAAC;KACrG,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;KACpD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;KACxE,MAAM,CAAC,+BAA+B,EAAE,iDAAiD,EAAE,KAAK,CAAC;KACjG,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,EAAE,QAAQ,CAAC;KAClG,MAAM,CAAC,cAAc,EAAE,mDAAmD,EAAE,KAAK,CAAC;KAClF,MAAM,CAAC,oBAAoB,EAAE,qCAAqC,EAAE,KAAK,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,4EAA4E,CAAC;KACvG,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;KAC7E,MAAM,CAAC,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC;KAC5C,MAAM,CAAC,cAAc,EAAE,2CAA2C,EAAE,KAAK,CAAC;KAC1E,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,mBAAmB;AACnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;KACxE,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,EAAE,QAAQ,CAAC;KACtE,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KAC5C,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,8DAA8D,EAAE,KAAK,CAAC;KACxF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,4BAA4B;AAC5B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,QAAQ,CAAC,cAAc,EAAE,gEAAgE,CAAC;KAC1F,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,CAAC,SAA6B,EAAE,OAA6B,EAAE,EAAE;IACvE,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;KACxC,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;KACjD,MAAM,CAAC,2BAA2B,EAAE,0GAA0G,CAAC;KAChJ,MAAM,CAAC,wBAAwB,EAAE,qEAAqE,CAAC;KACvG,MAAM,CAAC,6BAA6B,EAAE,4CAA4C,CAAC;KACnF,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,8BAA8B,EAAE,gCAAgC,CAAC;KACxE,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;KAC5C,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;KAC3D,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KACpE,MAAM,CAAC,4BAA4B,EAAE,sBAAsB,CAAC;KAC5D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,qCAAqC;AACrC,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,qBAAqB,EAAE,qEAAqE,CAAC;KACpG,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;KACzF,MAAM,CAAC,gBAAgB,EAAE,4DAA4D,EAAE,KAAK,CAAC;KAC7F,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE,KAAK,CAAC;KACpD,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9B,iDAAiD;AACjD,OAAO;KACJ,OAAO,CAAC,2BAA2B,CAAC;KACpC,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,CAAC,MAA0B,EAAE,IAAc,EAAE,OAAY,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9G,wBAAwB;AACxB,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oCAAoC,CAAC,CAAC;AAErD,MAAM;KACH,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAEvC,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;KACjC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAElD,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AAExC,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1C,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;KACtC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAElD,MAAM;KACH,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uBAAuB,CAAC;KACpC,QAAQ,CAAC,QAAQ,EAAE,2CAA2C,CAAC;KAC/D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM;KACH,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEzC,qCAAqC;AACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-style-chat.d.ts","sourceRoot":"","sources":["../../src/ui/claude-style-chat.tsx"],"names":[],"mappings":"AAyBA,MAAM,MAAM,WAAW,GAAG;IACxB,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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC;AAyGF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAgrDhE,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkZ/E"}
1
+ {"version":3,"file":"claude-style-chat.d.ts","sourceRoot":"","sources":["../../src/ui/claude-style-chat.tsx"],"names":[],"mappings":"AA0BA,MAAM,MAAM,WAAW,GAAG;IACxB,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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CACzE,CAAC;AA2GF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AA+rDhE,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAof/E"}
@@ -20,6 +20,7 @@ import { SPINNER_VERBS } from '../constants/spinnerVerbs.js';
20
20
  import { extractAtReferences, splitAtReferences } from 'xibecode-core';
21
21
  import { loadImageAttachment, mimeFromExtension } from '../utils/image-attachments.js';
22
22
  import { SessionManager } from 'xibecode-core';
23
+ import { AutoMemoryManager, HooksManager, SettingsManager as CoreSettingsManager } from 'xibecode-core';
23
24
  function isAbortLikeError(err) {
24
25
  if (!err || typeof err !== 'object')
25
26
  return false;
@@ -101,7 +102,7 @@ const HERO_LOGO = [
101
102
  const WORK_SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
102
103
  /** How fast to advance OpenClaude-style spinner verbs (ms) */
103
104
  const WORK_VERB_ROTATE_MS = 2400;
104
- const QUICK_HELP = ['/help', '/mode', '/format', '/model', '/setup', '/config', '/donate', '/sponsor', '/clear', '/exit'];
105
+ const QUICK_HELP = ['/help', '/mode', '/format', '/model', '/setup', '/config', '/memory', '/hooks', '/donate', '/sponsor', '/clear', '/exit'];
105
106
  const CHAT_COMMANDS = [
106
107
  { name: '/help', description: 'Show available shortcuts and usage hints' },
107
108
  { name: '/mode', description: 'Switch agent mode from an interactive picker' },
@@ -110,6 +111,8 @@ const CHAT_COMMANDS = [
110
111
  { name: '/model', description: 'Fetch and switch available models for this provider' },
111
112
  { name: '/setup', description: 'Guided setup (set API key, then pick provider/model)' },
112
113
  { name: '/config', description: 'Show current config and quick config hints' },
114
+ { name: '/memory', description: 'Show auto-memories for this project' },
115
+ { name: '/hooks', description: 'Show registered lifecycle hooks' },
113
116
  { name: '/donate', description: 'Open the donation page in your browser' },
114
117
  { name: '/sponsor', description: 'Open the sponsorship page in your browser' },
115
118
  { name: '/exit', description: 'Exit the interactive chat session' },
@@ -336,13 +339,14 @@ function XibeCodeChatApp(props) {
336
339
  if (!isRunning)
337
340
  return;
338
341
  const id = setInterval(() => {
339
- // Silent means: no visible output (tool_call/tool_result/stream_text/response) for 90s.
340
- if (Date.now() - lastVisibleOutputAtRef.current > 90_000) {
342
+ // Silent means: no visible output (tool_call/tool_result/stream_text/response) for 180s.
343
+ // Some models (DeepSeek, etc.) can take a long time for their first token during complex tasks.
344
+ if (Date.now() - lastVisibleOutputAtRef.current > 180_000) {
341
345
  if (abortControllerRef.current && abortReasonRef.current === 'none') {
342
346
  abortReasonRef.current = 'watchdog';
343
347
  pushLine({
344
348
  type: 'info',
345
- text: `No output for 90s — restarting (attempt ${Math.min(restartAttemptsRef.current + 1, 2)}/2)…`,
349
+ text: `No output for 180s — restarting (attempt ${Math.min(restartAttemptsRef.current + 1, 2)}/2)…`,
346
350
  });
347
351
  abortControllerRef.current.abort();
348
352
  }
@@ -632,6 +636,16 @@ function XibeCodeChatApp(props) {
632
636
  startSetupWizard();
633
637
  return;
634
638
  }
639
+ if (resolvedInput === '/memory' || resolvedInput.startsWith('/memory ')) {
640
+ const subcmd = resolvedInput.replace('/memory', '').trim().toLowerCase();
641
+ props.onMemoryCommand?.(subcmd || 'list', pushLine);
642
+ return;
643
+ }
644
+ if (resolvedInput === '/hooks' || resolvedInput.startsWith('/hooks ')) {
645
+ const subcmd = resolvedInput.replace('/hooks', '').trim().toLowerCase();
646
+ props.onHooksCommand?.(subcmd || 'list', pushLine);
647
+ return;
648
+ }
635
649
  if (resolvedInput === '/format' || resolvedInput.startsWith('/format ')) {
636
650
  const arg = resolvedInput.replace(/^\/format\s*/i, '').trim().toLowerCase();
637
651
  if (!arg) {
@@ -1397,15 +1411,38 @@ export async function launchClaudeStyleChat(options) {
1397
1411
  }
1398
1412
  activeAgent.removeAllListeners('event');
1399
1413
  let streamedBuffer = '';
1414
+ let streamedLineEmitted = false;
1415
+ let streamFlushTimer = null;
1416
+ const flushStreamedBuffer = () => {
1417
+ if (streamedBuffer.trim()) {
1418
+ onLine({ type: 'assistant', text: streamedBuffer.trim() });
1419
+ streamedBuffer = '';
1420
+ streamedLineEmitted = false;
1421
+ }
1422
+ };
1400
1423
  activeAgent.on('event', (event) => {
1401
1424
  switch (event.type) {
1402
1425
  case 'thinking':
1426
+ // Flush any pending streamed text before showing thinking indicator
1427
+ flushStreamedBuffer();
1428
+ if (streamFlushTimer) {
1429
+ clearTimeout(streamFlushTimer);
1430
+ streamFlushTimer = null;
1431
+ }
1432
+ // Thinking messages are visible output — reset the watchdog timer
1433
+ opts?.onVisibleOutput?.();
1403
1434
  onLine({
1404
1435
  type: 'info',
1405
1436
  text: event.data?.message || 'Thinking…',
1406
1437
  });
1407
1438
  break;
1408
1439
  case 'tool_call': {
1440
+ // Flush any pending streamed text before showing tool call
1441
+ flushStreamedBuffer();
1442
+ if (streamFlushTimer) {
1443
+ clearTimeout(streamFlushTimer);
1444
+ streamFlushTimer = null;
1445
+ }
1409
1446
  opts?.onVisibleOutput?.();
1410
1447
  const name = String(event.data?.name ?? 'tool');
1411
1448
  const input = event.data?.input;
@@ -1417,6 +1454,12 @@ export async function launchClaudeStyleChat(options) {
1417
1454
  break;
1418
1455
  }
1419
1456
  case 'tool_result': {
1457
+ // Flush any pending streamed text before showing tool result
1458
+ flushStreamedBuffer();
1459
+ if (streamFlushTimer) {
1460
+ clearTimeout(streamFlushTimer);
1461
+ streamFlushTimer = null;
1462
+ }
1420
1463
  opts?.onVisibleOutput?.();
1421
1464
  const name = String(event.data?.name ?? 'tool');
1422
1465
  const result = event.data?.result;
@@ -1441,12 +1484,26 @@ export async function launchClaudeStyleChat(options) {
1441
1484
  case 'stream_text':
1442
1485
  opts?.onVisibleOutput?.();
1443
1486
  streamedBuffer += event.data?.text || '';
1487
+ // Emit buffered text incrementally every ~500ms or when buffer gets large
1488
+ // so the user sees real-time output instead of waiting for stream_end
1489
+ if (!streamedLineEmitted || streamedBuffer.length > 500) {
1490
+ flushStreamedBuffer();
1491
+ streamedLineEmitted = true;
1492
+ }
1493
+ else if (!streamFlushTimer) {
1494
+ streamFlushTimer = setTimeout(() => {
1495
+ streamFlushTimer = null;
1496
+ flushStreamedBuffer();
1497
+ streamedLineEmitted = true;
1498
+ }, 500);
1499
+ }
1444
1500
  break;
1445
1501
  case 'stream_end':
1446
- if (streamedBuffer.trim()) {
1447
- onLine({ type: 'assistant', text: streamedBuffer.trim() });
1502
+ if (streamFlushTimer) {
1503
+ clearTimeout(streamFlushTimer);
1504
+ streamFlushTimer = null;
1448
1505
  }
1449
- streamedBuffer = '';
1506
+ flushStreamedBuffer();
1450
1507
  break;
1451
1508
  case 'response':
1452
1509
  opts?.onVisibleOutput?.();
@@ -1591,8 +1648,73 @@ export async function launchClaudeStyleChat(options) {
1591
1648
  }
1592
1649
  };
1593
1650
  const root = createRoot({ exitOnCtrlC: true });
1651
+ // ── Memory & Hooks slash-command handlers ──
1652
+ const autoMemManager = new AutoMemoryManager({ cwd: process.cwd() });
1653
+ const coreSettingsManager = new CoreSettingsManager({ cwd: process.cwd() });
1654
+ const hooksMgr = new HooksManager(coreSettingsManager);
1655
+ await hooksMgr.loadFromSettingsManager().catch(() => { });
1656
+ const onMemoryCommand = (subcmd, pushLine) => {
1657
+ void (async () => {
1658
+ try {
1659
+ if (subcmd === 'list' || subcmd === '') {
1660
+ const memories = await autoMemManager.listMemories();
1661
+ if (memories.length === 0) {
1662
+ pushLine({ type: 'info', text: 'No memories found for this project. Memories are auto-extracted as you chat.' });
1663
+ return;
1664
+ }
1665
+ pushLine({ type: 'info', text: `Found ${memories.length} memory/memories:` });
1666
+ for (const mem of memories.slice(0, 10)) {
1667
+ const tags = mem.frontmatter.tags?.length ? ` [${mem.frontmatter.tags.join(', ')}]` : '';
1668
+ pushLine({ type: 'info', text: ` ${mem.frontmatter.type}${tags}: ${mem.content.trim().slice(0, 80)}${mem.content.length > 80 ? '...' : ''}` });
1669
+ }
1670
+ if (memories.length > 10) {
1671
+ pushLine({ type: 'info', text: ` ... and ${memories.length - 10} more. Use "xc memory list" to see all.` });
1672
+ }
1673
+ }
1674
+ else if (subcmd === 'dream') {
1675
+ pushLine({ type: 'info', text: 'Running dream consolidation...' });
1676
+ const result = await autoMemManager.dream();
1677
+ pushLine({ type: 'info', text: `Dream complete: created=${result.created}, merged=${result.merged}, pruned=${result.pruned}` });
1678
+ }
1679
+ else if (subcmd === 'path') {
1680
+ pushLine({ type: 'info', text: `Memory dir: ${autoMemManager.getMemoryDir()}` });
1681
+ }
1682
+ else {
1683
+ pushLine({ type: 'info', text: 'Usage: /memory [list|dream|path]. Default: list' });
1684
+ }
1685
+ }
1686
+ catch (err) {
1687
+ pushLine({ type: 'error', text: `Memory error: ${err?.message || err}` });
1688
+ }
1689
+ })();
1690
+ };
1691
+ const onHooksCommand = (subcmd, pushLine) => {
1692
+ const allHooks = hooksMgr.getAllHooks();
1693
+ const flatList = [];
1694
+ for (const [event, hooks] of allHooks) {
1695
+ for (const hook of hooks) {
1696
+ flatList.push({ event, config: hook.config, matcher: hook.matcher });
1697
+ }
1698
+ }
1699
+ if (subcmd === 'list' || subcmd === '') {
1700
+ if (flatList.length === 0) {
1701
+ pushLine({ type: 'info', text: 'No hooks configured. Use "xc hooks add" or edit ~/.xibecode/settings.json' });
1702
+ return;
1703
+ }
1704
+ pushLine({ type: 'info', text: `Registered hooks (${flatList.length}):` });
1705
+ for (const hook of flatList.slice(0, 10)) {
1706
+ const type = 'command' in hook.config ? 'command' : 'prompt' in hook.config ? 'prompt' : 'agent' in hook.config ? 'agent' : 'http' in hook.config ? 'http' : 'function';
1707
+ const value = hook.config.command || hook.config.prompt || hook.config.agent || hook.config.http || hook.config.url || '(fn)';
1708
+ const matcher = hook.matcher ? ` matcher="${hook.matcher}"` : '';
1709
+ pushLine({ type: 'info', text: ` ${hook.event}${matcher} -> ${type}: ${value}` });
1710
+ }
1711
+ }
1712
+ else {
1713
+ pushLine({ type: 'info', text: 'Usage: /hooks [list]. Default: list. Use "xc hooks" CLI for full management.' });
1714
+ }
1715
+ };
1594
1716
  try {
1595
- await renderAndRun(root, _jsx(XibeCodeChatApp, { model: model, initialMode: activeMode, provider: provider, baseUrl: baseUrl, needsFirstRunSetup: needsFirstRunSetup, defaultModel: model, modeOptions: modeOptions, initialRequestFormat: wireFormat, customProviderFormat: customProviderFormat, profile: options.profile, sessionId: currentSessionId, initialMessages: options.initialMessages, runPrompt: runPrompt, listBackgroundTasks: listBackgroundTasks, checkBackgroundTask: checkBackgroundTask, onUiLine: appendLogLine, registerUiSink: registerUiSink, registerModeSink: registerModeSink, loadModels: loadModels, onModelChange: onModelChange, onModeChange: onModeChange, onWireFormatChange: onWireFormatChange, onSessionCreated: onSessionCreated, onMessagesUpdate: onMessagesUpdate, getCurrentMessages: () => activeAgent?.getMessages() ?? currentSession?.messages ?? [] }));
1717
+ await renderAndRun(root, _jsx(XibeCodeChatApp, { model: model, initialMode: activeMode, provider: provider, baseUrl: baseUrl, needsFirstRunSetup: needsFirstRunSetup, defaultModel: model, modeOptions: modeOptions, initialRequestFormat: wireFormat, customProviderFormat: customProviderFormat, profile: options.profile, sessionId: currentSessionId, initialMessages: options.initialMessages, runPrompt: runPrompt, listBackgroundTasks: listBackgroundTasks, checkBackgroundTask: checkBackgroundTask, onUiLine: appendLogLine, registerUiSink: registerUiSink, registerModeSink: registerModeSink, loadModels: loadModels, onModelChange: onModelChange, onModeChange: onModeChange, onWireFormatChange: onWireFormatChange, onSessionCreated: onSessionCreated, onMessagesUpdate: onMessagesUpdate, getCurrentMessages: () => activeAgent?.getMessages() ?? currentSession?.messages ?? [], onMemoryCommand: onMemoryCommand, onHooksCommand: onHooksCommand }));
1596
1718
  }
1597
1719
  finally {
1598
1720
  process.off('unhandledRejection', onUnhandledRejection);