@axhub/genie 0.2.5 → 0.2.7
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/assets/App-BWSqiXAT.js +220 -0
- package/dist/assets/App-DrlLKa8f.css +1 -0
- package/dist/assets/ReviewApp-nz3mbArg.js +1 -0
- package/dist/assets/{_basePickBy-CFRQvihx.js → _basePickBy-C19AekOu.js} +1 -1
- package/dist/assets/{_baseUniq-Dhh8nCvs.js → _baseUniq-JsnevLw_.js} +1 -1
- package/dist/assets/{arc-DQ0v3dU4.js → arc-BLpcuBlf.js} +1 -1
- package/dist/assets/architectureDiagram-2XIMDMQ5-CarjBOOv.js +36 -0
- package/dist/assets/{blockDiagram-WCTKOSBZ-Bbxhj5KC.js → blockDiagram-WCTKOSBZ-DQBLwsUS.js} +3 -3
- package/dist/assets/c4Diagram-IC4MRINW-CGobwBIj.js +10 -0
- package/dist/assets/channel-DkFNxV_H.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-DlvtrM0q.js → chunk-4BX2VUAB-De63kbgc.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DJUSHyTa.js → chunk-55IACEB6-DtTDDdM9.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-C6Ch-htf.js → chunk-FMBD7UC4-DHuwd8tw.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-DzQIht58.js → chunk-JSJVCQXG-BgytFtmO.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-C05jARMH.js → chunk-KX2RTZJC-nZdp86aN.js} +1 -1
- package/dist/assets/chunk-NQ4KR5QH-CMH6EDP2.js +220 -0
- package/dist/assets/{chunk-QZHKN3VN-jxti9HTX.js → chunk-QZHKN3VN-DvUQ3mnO.js} +1 -1
- package/dist/assets/chunk-WL4C6EOR-Dn7db_6t.js +189 -0
- package/dist/assets/classDiagram-VBA2DB6C-DtwCEe8S.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-DtwCEe8S.js +1 -0
- package/dist/assets/clone-C0lCEIEO.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DD_nzqsz.js +1 -0
- package/dist/assets/cytoscape.esm-5J0xJHOV.js +321 -0
- package/dist/assets/{dagre-KLK3FWXG-DJ3dNSYk.js → dagre-KLK3FWXG-CHYIvW47.js} +1 -1
- package/dist/assets/diagram-E7M64L7V-TVdvHtGc.js +24 -0
- package/dist/assets/{diagram-IFDJBPK2-Da6K4aP-.js → diagram-IFDJBPK2-Dzsiln_C.js} +1 -1
- package/dist/assets/{diagram-P4PSJMXO-vZZKB92A.js → diagram-P4PSJMXO-DKnGbUpE.js} +1 -1
- package/dist/assets/erDiagram-INFDFZHY-5Kw0bByo.js +70 -0
- package/dist/assets/{flowDiagram-PKNHOUZH-DUV13pHi.js → flowDiagram-PKNHOUZH-BAZ2-jKp.js} +4 -4
- package/dist/assets/ganttDiagram-A5KZAMGK-CsADFkcq.js +292 -0
- package/dist/assets/{gitGraphDiagram-K3NZZRJ6-BZ5gW69I.js → gitGraphDiagram-K3NZZRJ6-BflpyjGy.js} +1 -1
- package/dist/assets/{graph-BbvHswRd.js → graph-suelaXFh.js} +1 -1
- package/dist/assets/highlighted-body-OFNGDK62-CZrBMazC.js +1 -0
- package/dist/assets/index-B01NxbUv.css +1 -0
- package/dist/assets/index-DW5pGgQ_.js +2 -0
- package/dist/assets/{infoDiagram-LFFYTUFH-8auUIPKW.js → infoDiagram-LFFYTUFH-pfD1FA3p.js} +1 -1
- package/dist/assets/ishikawaDiagram-PHBUUO56-ndm9snwO.js +70 -0
- package/dist/assets/journeyDiagram-4ABVD52K-HgF2t7z5.js +139 -0
- package/dist/assets/{kanban-definition-K7BYSVSG-Bappd2YO.js → kanban-definition-K7BYSVSG-FWinmur1.js} +5 -5
- package/dist/assets/{layout-BmbfFZKy.js → layout-vcz43XvZ.js} +1 -1
- package/dist/assets/{linear-WZnF-PT6.js → linear-le4gc0vx.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-CK8m3lad.js +870 -0
- package/dist/assets/mindmap-definition-YRQLILUH-CNq9SKj4.js +68 -0
- package/dist/assets/{pieDiagram-SKSYHLDU-uxjlAy1t.js → pieDiagram-SKSYHLDU-C7PKDh3b.js} +2 -2
- package/dist/assets/quadrantDiagram-337W2JSQ-B7FnztNO.js +7 -0
- package/dist/assets/requirementDiagram-Z7DCOOCP-Bl_BM2Th.js +73 -0
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-2-FHHM-R.js → sankeyDiagram-WA2Y5GQK-4gulcOP4.js} +3 -3
- package/dist/assets/sequenceDiagram-2WXFIKYE-VEuJDwyJ.js +145 -0
- package/dist/assets/{stateDiagram-RAJIS63D-DoW8U53H.js → stateDiagram-RAJIS63D-CB4Vl7qM.js} +1 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-C85ucl39.js +1 -0
- package/dist/assets/timeline-definition-YZTLITO2-BPGKhi7f.js +61 -0
- package/dist/assets/{treemap-KZPCXAKY-ajdAP-72.js → treemap-KZPCXAKY-DZSEE6Hz.js} +58 -58
- package/dist/assets/vendor-codemirror-CyOKkaQZ.js +31 -0
- package/dist/assets/vendor-react-CP4yFTs7.js +8 -0
- package/dist/assets/vendor-xterm-DfcmCpbH.js +66 -0
- package/dist/assets/{vennDiagram-LZ73GAT5-C9If0AT0.js → vennDiagram-LZ73GAT5-8E_G06fI.js} +4 -4
- package/dist/assets/xychartDiagram-JWTSCODW-CbBk50-O.js +7 -0
- package/dist/favicon.png +0 -0
- package/dist/icons/icon-128x128.png +0 -0
- package/dist/icons/icon-144x144.png +0 -0
- package/dist/icons/icon-152x152.png +0 -0
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-384x384.png +0 -0
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-72x72.png +0 -0
- package/dist/icons/icon-96x96.png +0 -0
- package/dist/index.html +4 -5
- package/dist/logo-128.png +0 -0
- package/dist/logo-256.png +0 -0
- package/dist/logo-32.png +0 -0
- package/dist/logo-512.png +0 -0
- package/dist/logo-64.png +0 -0
- package/package.json +2 -1
- package/server/_legacy-providers/README.md +30 -0
- package/server/_legacy-providers/claude-sdk.js +956 -0
- package/server/_legacy-providers/gemini-cli.js +368 -0
- package/server/_legacy-providers/openai-codex.js +705 -0
- package/server/_legacy-providers/opencode-cli.js +674 -0
- package/server/acp-runtime/client.js +1805 -0
- package/server/acp-runtime/client.test.js +688 -0
- package/server/acp-runtime/index.js +419 -0
- package/server/acp-runtime/registry.js +45 -0
- package/server/acp-runtime/session-store.js +254 -0
- package/server/acp-runtime/session-store.test.js +89 -0
- package/server/channels/runtime/AgentRuntimeAdapter.js +21 -70
- package/server/claude-sdk.js +24 -944
- package/server/cli.js +11 -5
- package/server/external-agent/service.js +77 -63
- package/server/gemini-cli.js +23 -360
- package/server/index.js +54 -46
- package/server/openai-codex.js +24 -698
- package/server/opencode-cli.js +70 -640
- package/server/routes/agent.js +2 -0
- package/server/routes/codex.js +5 -5
- package/server/routes/git.js +3 -20
- package/server/routes/mcp.js +18 -34
- package/server/routes/session-core.js +44 -10
- package/server/session-core/abortSession.js +2 -18
- package/server/session-core/eventStore.js +5 -1
- package/server/session-core/providerAdapters.js +98 -10
- package/server/session-core/providerDiscovery.js +2 -2
- package/server/session-core/runtimeState.js +16 -17
- package/server/session-core/runtimeWriter.js +19 -12
- package/server/utils/codexPath.js +3 -1
- package/server/utils/spawnCommand.js +7 -0
- package/shared/conversationEvents.js +347 -10
- package/shared/conversationEvents.test.js +403 -0
- package/dist/assets/App-BxazfNJn.js +0 -484
- package/dist/assets/App-qxJ8_QYu.css +0 -32
- package/dist/assets/ReviewApp-CsqTAlGU.js +0 -1
- package/dist/assets/architectureDiagram-2XIMDMQ5-DmUHdvQH.js +0 -36
- package/dist/assets/c4Diagram-IC4MRINW-BOivDlQU.js +0 -10
- package/dist/assets/channel-Cj8xVD0X.js +0 -1
- package/dist/assets/chunk-NQ4KR5QH-Ci-n7jfu.js +0 -220
- package/dist/assets/chunk-WL4C6EOR-C559Mk71.js +0 -189
- package/dist/assets/classDiagram-VBA2DB6C-CI2zklxw.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-CI2zklxw.js +0 -1
- package/dist/assets/clone-BEVqubrI.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-DNO9ncXL.js +0 -1
- package/dist/assets/cytoscape.esm-2ZfV8NB5.js +0 -331
- package/dist/assets/diagram-E7M64L7V-Ba_LGLun.js +0 -24
- package/dist/assets/erDiagram-INFDFZHY-Csb8dFdP.js +0 -70
- package/dist/assets/ganttDiagram-A5KZAMGK-B5Kv9Wfz.js +0 -292
- package/dist/assets/highlighted-body-TPN3WLV5-DZJajMGm.js +0 -1
- package/dist/assets/index-BFX9lxRB.css +0 -1
- package/dist/assets/index-BiErUGrv.js +0 -2
- package/dist/assets/ishikawaDiagram-PHBUUO56-JmsNlo2I.js +0 -70
- package/dist/assets/journeyDiagram-4ABVD52K-Cuudv7Vv.js +0 -139
- package/dist/assets/mermaid-O7DHMXV3-D-2fQRvw.js +0 -988
- package/dist/assets/mindmap-definition-YRQLILUH-BQHnzzud.js +0 -68
- package/dist/assets/quadrantDiagram-337W2JSQ-DpwZU-f_.js +0 -7
- package/dist/assets/requirementDiagram-Z7DCOOCP-C_9ClOWm.js +0 -73
- package/dist/assets/sequenceDiagram-2WXFIKYE-egns-0XI.js +0 -145
- package/dist/assets/stateDiagram-v2-FVOUBMTO-BoFZZ4Ds.js +0 -1
- package/dist/assets/timeline-definition-YZTLITO2-chPa8ppH.js +0 -61
- package/dist/assets/vendor-codemirror-Dz7_EqNA.js +0 -39
- package/dist/assets/vendor-react-Cpt6D04s.js +0 -59
- package/dist/assets/vendor-xterm-DfaPXD3y.js +0 -66
- package/dist/assets/xychartDiagram-JWTSCODW-DD42U6Or.js +0 -7
package/server/index.js
CHANGED
|
@@ -97,10 +97,13 @@ import fetch from 'node-fetch';
|
|
|
97
97
|
import mime from 'mime-types';
|
|
98
98
|
|
|
99
99
|
import { getProjects, getSessions, getSessionMessages, renameProject, deleteSession, deleteProject, addProjectManually, extractProjectDirectory, clearProjectDirectoryCache, clearProviderSessionLookupCaches, getGeminiSessionMessages } from './projects.js';
|
|
100
|
-
import {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
import {
|
|
101
|
+
executeAgentPrompt,
|
|
102
|
+
getActiveAgentSessions,
|
|
103
|
+
isAgentSessionActive,
|
|
104
|
+
resolveAgentPermission,
|
|
105
|
+
setAgentSessionMode
|
|
106
|
+
} from './acp-runtime/index.js';
|
|
104
107
|
import gitRoutes from './routes/git.js';
|
|
105
108
|
import authRoutes from './routes/auth.js';
|
|
106
109
|
import mcpRoutes from './routes/mcp.js';
|
|
@@ -566,7 +569,7 @@ app.post('/api/system/update', authenticateToken, async (req, res) => {
|
|
|
566
569
|
console.log('Starting system update from directory:', projectRoot);
|
|
567
570
|
|
|
568
571
|
const npmCommand = getNpmCommand();
|
|
569
|
-
const updateArgs = ['
|
|
572
|
+
const updateArgs = ['install', '-g', `${UPDATE_PACKAGE_NAME}@latest`];
|
|
570
573
|
|
|
571
574
|
// Run npm global update command
|
|
572
575
|
const child = spawn(npmCommand, updateArgs, {
|
|
@@ -1112,31 +1115,24 @@ function handleChatConnection(ws) {
|
|
|
1112
1115
|
try {
|
|
1113
1116
|
data = JSON.parse(message);
|
|
1114
1117
|
|
|
1115
|
-
|
|
1116
|
-
console.log('[DEBUG] User message:', data.command || '[Continue/Resume]');
|
|
1117
|
-
console.log('📁 Project:', data.options?.projectPath || 'Unknown');
|
|
1118
|
-
console.log('🔄 Session:', data.options?.sessionId ? 'Resume' : 'New');
|
|
1118
|
+
const agentCommandTypes = ['claude-command', 'codex-command', 'gemini-command', 'opencode-command'];
|
|
1119
1119
|
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
console.log('[DEBUG] Codex message:', data.command || '[Continue/Resume]');
|
|
1124
|
-
console.log('📁 Project:', data.options?.projectPath || data.options?.cwd || 'Unknown');
|
|
1125
|
-
console.log('🔄 Session:', data.options?.sessionId ? 'Resume' : 'New');
|
|
1126
|
-
console.log('🤖 Model:', data.options?.model || 'default');
|
|
1127
|
-
await queryCodex(data.command, data.options, new SessionEventMirrorWriter(baseWriter, 'codex'));
|
|
1128
|
-
} else if (data.type === 'gemini-command') {
|
|
1129
|
-
console.log('[DEBUG] Gemini message:', data.command || '[Continue/Resume]');
|
|
1120
|
+
if (agentCommandTypes.includes(data.type)) {
|
|
1121
|
+
const agentKey = data.type.replace(/-command$/, '');
|
|
1122
|
+
console.log(`[DEBUG] ${agentKey} message:`, data.command || '[Continue/Resume]');
|
|
1130
1123
|
console.log('📁 Project:', data.options?.projectPath || data.options?.cwd || 'Unknown');
|
|
1131
1124
|
console.log('🔄 Session:', data.options?.sessionId ? 'Resume' : 'New');
|
|
1132
1125
|
console.log('🤖 Model:', data.options?.model || 'default');
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1126
|
+
|
|
1127
|
+
await executeAgentPrompt({
|
|
1128
|
+
agentKey,
|
|
1129
|
+
command: data.command,
|
|
1130
|
+
options: {
|
|
1131
|
+
...(data.options || {}),
|
|
1132
|
+
clientRequestId: data.clientRequestId || data.options?.clientRequestId || null
|
|
1133
|
+
},
|
|
1134
|
+
writer: new SessionEventMirrorWriter(baseWriter, agentKey)
|
|
1135
|
+
});
|
|
1140
1136
|
} else if (data.type === 'abort-session') {
|
|
1141
1137
|
console.log('[DEBUG] Abort session request:', data.sessionId);
|
|
1142
1138
|
const provider = typeof data.provider === 'string' && data.provider.trim()
|
|
@@ -1147,13 +1143,29 @@ function handleChatConnection(ws) {
|
|
|
1147
1143
|
sessionId: data.sessionId,
|
|
1148
1144
|
writer: getSessionWriter(provider)
|
|
1149
1145
|
});
|
|
1150
|
-
} else if (data.type === '
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1146
|
+
} else if (data.type === 'set-session-mode') {
|
|
1147
|
+
const provider = typeof data.provider === 'string' && data.provider.trim()
|
|
1148
|
+
? data.provider.trim().toLowerCase()
|
|
1149
|
+
: 'claude';
|
|
1150
|
+
const modeId = String(data.modeId || '').trim();
|
|
1151
|
+
if (!data.sessionId || !modeId) {
|
|
1152
|
+
throw new Error('set-session-mode requires sessionId and modeId');
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
const changed = await setAgentSessionMode(provider, data.sessionId, modeId, {
|
|
1156
|
+
writer: getSessionWriter(provider)
|
|
1157
|
+
});
|
|
1158
|
+
|
|
1159
|
+
if (!changed) {
|
|
1160
|
+
throw new Error(`Unable to set session mode for ${provider}:${data.sessionId}`);
|
|
1161
|
+
}
|
|
1162
|
+
} else if (data.type === 'permission-response' || data.type === 'claude-permission-response') {
|
|
1154
1163
|
if (data.requestId) {
|
|
1155
|
-
|
|
1164
|
+
resolveAgentPermission(data.requestId, {
|
|
1156
1165
|
allow: Boolean(data.allow),
|
|
1166
|
+
optionId: data.optionId,
|
|
1167
|
+
outcome: data.outcome,
|
|
1168
|
+
cancelled: data.outcome?.outcome === 'cancelled' || Boolean(data.cancelled),
|
|
1157
1169
|
updatedInput: data.updatedInput,
|
|
1158
1170
|
message: data.message,
|
|
1159
1171
|
rememberEntry: data.rememberEntry
|
|
@@ -1164,17 +1176,7 @@ function handleChatConnection(ws) {
|
|
|
1164
1176
|
const provider = data.provider || 'claude';
|
|
1165
1177
|
const sessionId = data.sessionId;
|
|
1166
1178
|
const sessionWriter = getSessionWriter(provider);
|
|
1167
|
-
|
|
1168
|
-
if (provider === 'codex') {
|
|
1169
|
-
isActive = isCodexSessionActive(sessionId);
|
|
1170
|
-
} else if (provider === 'gemini') {
|
|
1171
|
-
isActive = isGeminiSessionActive(sessionId);
|
|
1172
|
-
} else if (provider === 'opencode') {
|
|
1173
|
-
isActive = isOpencodeSessionActive(sessionId);
|
|
1174
|
-
} else {
|
|
1175
|
-
// Use Claude Agents SDK
|
|
1176
|
-
isActive = isClaudeSDKSessionActive(sessionId);
|
|
1177
|
-
}
|
|
1179
|
+
const isActive = isAgentSessionActive(provider, sessionId);
|
|
1178
1180
|
|
|
1179
1181
|
sessionWriter.send({
|
|
1180
1182
|
type: 'session-status',
|
|
@@ -1185,9 +1187,10 @@ function handleChatConnection(ws) {
|
|
|
1185
1187
|
} else if (data.type === 'get-active-sessions') {
|
|
1186
1188
|
// Get all currently active sessions
|
|
1187
1189
|
const activeSessions = {
|
|
1188
|
-
claude:
|
|
1189
|
-
|
|
1190
|
-
|
|
1190
|
+
claude: getActiveAgentSessions('claude'),
|
|
1191
|
+
codex: getActiveAgentSessions('codex'),
|
|
1192
|
+
gemini: getActiveAgentSessions('gemini'),
|
|
1193
|
+
opencode: getActiveAgentSessions('opencode')
|
|
1191
1194
|
};
|
|
1192
1195
|
baseWriter.send({
|
|
1193
1196
|
type: 'active-sessions',
|
|
@@ -2119,13 +2122,18 @@ async function startServer() {
|
|
|
2119
2122
|
// Check if running in production mode (dist folder exists)
|
|
2120
2123
|
const distIndexPath = path.join(__dirname, '../dist/index.html');
|
|
2121
2124
|
const isProduction = fs.existsSync(distIndexPath);
|
|
2125
|
+
const runtimeEnvironment = resolveRuntimeEnvironment(isProduction);
|
|
2126
|
+
const frontendMode = isProduction ? 'BUILT DIST' : 'VITE DEV SERVER';
|
|
2122
2127
|
|
|
2123
2128
|
// Log Claude implementation mode
|
|
2124
2129
|
console.log(`${c.info('[INFO]')} Using Claude Agents SDK for Claude integration`);
|
|
2125
|
-
console.log(`${c.info('[INFO]')}
|
|
2130
|
+
console.log(`${c.info('[INFO]')} Runtime environment: ${c.bright(String(runtimeEnvironment).toUpperCase())}`);
|
|
2131
|
+
console.log(`${c.info('[INFO]')} Frontend source: ${c.bright(frontendMode)}`);
|
|
2126
2132
|
|
|
2127
2133
|
if (!isProduction) {
|
|
2128
2134
|
console.log(`${c.warn('[WARN]')} Note: Requests will be proxied to Vite dev server at ${c.dim('http://localhost:' + (process.env.VITE_PORT || 5173))}`);
|
|
2135
|
+
} else {
|
|
2136
|
+
console.log(`${c.info('[INFO]')} Serving frontend assets from ${c.dim(path.join(__dirname, '../dist'))}`);
|
|
2129
2137
|
}
|
|
2130
2138
|
|
|
2131
2139
|
server.listen(PORT, '0.0.0.0', async () => {
|