@axhub/genie 0.2.6 → 0.2.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/api-docs.html +2 -2
- package/dist/assets/App-CTKZtqB1.js +460 -0
- package/dist/assets/{ReviewApp-BEicSBzW.js → ReviewApp-DM6BNAzR.js} +1 -1
- package/dist/assets/{_basePickBy-DkiHsp3X.js → _basePickBy-CqJbRZ9y.js} +1 -1
- package/dist/assets/{_baseUniq-7ElXb2sX.js → _baseUniq-BS8YH8jO.js} +1 -1
- package/dist/assets/{arc-CEsS3MdK.js → arc-BBmKEN-S.js} +1 -1
- package/dist/assets/{architectureDiagram-2XIMDMQ5-BubZ7T3U.js → architectureDiagram-2XIMDMQ5-N5lcb82R.js} +1 -1
- package/dist/assets/{blockDiagram-WCTKOSBZ-Cza6M6Ht.js → blockDiagram-WCTKOSBZ-DTMwHuLn.js} +1 -1
- package/dist/assets/{c4Diagram-IC4MRINW-jhjtOQ12.js → c4Diagram-IC4MRINW-BTKlkXI9.js} +1 -1
- package/dist/assets/channel-1oJBvF-0.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB--HkodwbY.js → chunk-4BX2VUAB-DUdoTxAc.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-CyBuez4e.js → chunk-55IACEB6-Bm_92xe4.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-CuzG4iAl.js → chunk-FMBD7UC4-CGW0g62g.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-BNi8S861.js → chunk-JSJVCQXG-DYkTH3w1.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-D817O-GT.js → chunk-KX2RTZJC-C9oTlISU.js} +1 -1
- package/dist/assets/{chunk-NQ4KR5QH-DyujyOvx.js → chunk-NQ4KR5QH-CM50ygWP.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-VMEn-zxh.js → chunk-QZHKN3VN-7dzpYeNJ.js} +1 -1
- package/dist/assets/{chunk-WL4C6EOR-CQHHFLvx.js → chunk-WL4C6EOR-Cm9nQrsr.js} +1 -1
- package/dist/assets/classDiagram-VBA2DB6C-d5TeKFM4.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-d5TeKFM4.js +1 -0
- package/dist/assets/clone-CinxIlEu.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-qykDd54p.js → cose-bilkent-S5V4N54A-Ccp_p0JZ.js} +1 -1
- package/dist/assets/{dagre-KLK3FWXG-Bqp7DjEa.js → dagre-KLK3FWXG-fBwTLUp9.js} +1 -1
- package/dist/assets/{diagram-E7M64L7V-BKtx468K.js → diagram-E7M64L7V-CeNVmFUp.js} +1 -1
- package/dist/assets/{diagram-IFDJBPK2--fHfW6V2.js → diagram-IFDJBPK2-CtavyLGa.js} +1 -1
- package/dist/assets/{diagram-P4PSJMXO-D1kQI5RB.js → diagram-P4PSJMXO-CpQTjQwc.js} +1 -1
- package/dist/assets/{erDiagram-INFDFZHY-DT9YzdNw.js → erDiagram-INFDFZHY-B8R5vwhd.js} +1 -1
- package/dist/assets/{flowDiagram-PKNHOUZH-DWeNr4yg.js → flowDiagram-PKNHOUZH-BvkVVwIQ.js} +1 -1
- package/dist/assets/{ganttDiagram-A5KZAMGK--IgwcUhI.js → ganttDiagram-A5KZAMGK-DOu3hSNa.js} +1 -1
- package/dist/assets/{gitGraphDiagram-K3NZZRJ6-B5a8UWjN.js → gitGraphDiagram-K3NZZRJ6-C7zT67YE.js} +1 -1
- package/dist/assets/{graph-Cw1rYoD9.js → graph-D11wiwHo.js} +1 -1
- package/dist/assets/{highlighted-body-TPN3WLV5-BCxJHuqY.js → highlighted-body-TPN3WLV5-Babpthg-.js} +1 -1
- package/dist/assets/index-DFxzgWoO.js +2 -0
- package/dist/assets/index-YCFGDVKw.css +1 -0
- package/dist/assets/{infoDiagram-LFFYTUFH-D2u70rhN.js → infoDiagram-LFFYTUFH-BmA7IpQG.js} +1 -1
- package/dist/assets/{ishikawaDiagram-PHBUUO56-Cl8yrezU.js → ishikawaDiagram-PHBUUO56-BEquZd3E.js} +1 -1
- package/dist/assets/{journeyDiagram-4ABVD52K-ddP0AMU9.js → journeyDiagram-4ABVD52K-BfemGz7f.js} +1 -1
- package/dist/assets/{kanban-definition-K7BYSVSG-DbVt0v29.js → kanban-definition-K7BYSVSG-CWja3mln.js} +1 -1
- package/dist/assets/{layout-W_tRx4UV.js → layout-BLUNf-PJ.js} +1 -1
- package/dist/assets/{linear-CcMb2ay-.js → linear-DukIV_Xv.js} +1 -1
- package/dist/assets/{mermaid-O7DHMXV3-BBJqt8pT.js → mermaid-O7DHMXV3-SgtM28qI.js} +265 -215
- package/dist/assets/{mindmap-definition-YRQLILUH-BGhZa7Na.js → mindmap-definition-YRQLILUH-4UjqXITU.js} +1 -1
- package/dist/assets/{pieDiagram-SKSYHLDU-CDyJaACv.js → pieDiagram-SKSYHLDU-8AxqJd0M.js} +1 -1
- package/dist/assets/{quadrantDiagram-337W2JSQ-BSYuqf0Q.js → quadrantDiagram-337W2JSQ-D60m8V8r.js} +1 -1
- package/dist/assets/{requirementDiagram-Z7DCOOCP-Cfi9YX9H.js → requirementDiagram-Z7DCOOCP-zqh9jBVf.js} +1 -1
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-Di1ShaMF.js → sankeyDiagram-WA2Y5GQK-CDZILTLI.js} +1 -1
- package/dist/assets/{sequenceDiagram-2WXFIKYE-CYTTG38e.js → sequenceDiagram-2WXFIKYE-7BReFd0L.js} +1 -1
- package/dist/assets/{stateDiagram-RAJIS63D-CVZYMqyW.js → stateDiagram-RAJIS63D-HPTVdIG4.js} +1 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-DTUf5_gC.js +1 -0
- package/dist/assets/{timeline-definition-YZTLITO2-B1sdb5mK.js → timeline-definition-YZTLITO2-CTVllFgr.js} +1 -1
- package/dist/assets/{treemap-KZPCXAKY-CGG4gx3C.js → treemap-KZPCXAKY-BtyxboJZ.js} +1 -1
- package/dist/assets/{vennDiagram-LZ73GAT5-Dds37L2k.js → vennDiagram-LZ73GAT5-D96ZI6Mg.js} +1 -1
- package/dist/assets/{xychartDiagram-JWTSCODW-C8QKSyRR.js → xychartDiagram-JWTSCODW-eRk-39YO.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +35 -33
- 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 +1872 -0
- package/server/acp-runtime/index.js +408 -0
- package/server/acp-runtime/registry.js +45 -0
- package/server/acp-runtime/session-store.js +254 -0
- package/server/channels/runtime/AgentRuntimeAdapter.js +22 -80
- package/server/claude-sdk.js +24 -946
- package/server/cli.js +140 -2
- package/server/external-agent/service.js +52 -63
- package/server/gemini-cli.js +21 -360
- package/server/index.js +133 -58
- package/server/openai-codex.js +19 -695
- package/server/opencode-cli.js +68 -640
- package/server/projects.js +128 -85
- package/server/routes/agent.js +2 -0
- package/server/routes/cc-connect.js +1131 -0
- package/server/routes/cli-auth.js +1 -73
- package/server/routes/commands.js +4 -9
- package/server/routes/git.js +3 -20
- package/server/routes/projects.js +45 -24
- 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 +8 -3
- package/server/session-core/runtimeState.js +16 -17
- package/server/session-core/runtimeWriter.js +19 -12
- package/server/utils/ccConnectManager.js +390 -0
- package/server/utils/ccConnectState.js +575 -0
- package/server/utils/resolveCommandPath.js +71 -0
- package/server/utils/workspaceRoots.js +154 -0
- package/shared/conversationEvents.js +347 -10
- package/dist/assets/App-CYTE30Cf.js +0 -484
- package/dist/assets/channel-RmqTALN0.js +0 -1
- package/dist/assets/classDiagram-VBA2DB6C-wvVV1ggz.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-wvVV1ggz.js +0 -1
- package/dist/assets/clone-oT5aWXpf.js +0 -1
- package/dist/assets/index-CBuAXA5S.js +0 -2
- package/dist/assets/index-CyLWKyxy.css +0 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-Bbl0b4-i.js +0 -1
- package/server/cli.test.js +0 -76
- package/server/external-agent/service.test.js +0 -53
- package/server/external-agent/ws.test.js +0 -289
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { queryCodex } from '../../openai-codex.js';
|
|
3
|
-
import { queryGemini } from '../../gemini-cli.js';
|
|
4
|
-
import { queryOpencode } from '../../opencode-cli.js';
|
|
5
|
-
import { CODEX_MODELS, GEMINI_MODELS, OPENCODE_MODELS } from '../../../shared/modelConstants.js';
|
|
1
|
+
import { executeAgentPrompt } from '../../acp-runtime/index.js';
|
|
6
2
|
|
|
7
3
|
function normalizeBackend(backend) {
|
|
8
4
|
const normalized = String(backend || '').trim().toLowerCase();
|
|
@@ -12,13 +8,6 @@ function normalizeBackend(backend) {
|
|
|
12
8
|
return 'codex';
|
|
13
9
|
}
|
|
14
10
|
|
|
15
|
-
function getDefaultModel(backend) {
|
|
16
|
-
if (backend === 'codex') return CODEX_MODELS.DEFAULT;
|
|
17
|
-
if (backend === 'gemini') return GEMINI_MODELS.DEFAULT;
|
|
18
|
-
if (backend === 'opencode') return OPENCODE_MODELS.DEFAULT;
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
11
|
function createWriter(callbacks) {
|
|
23
12
|
const state = {
|
|
24
13
|
sessionId: null,
|
|
@@ -55,69 +44,28 @@ function createWriter(callbacks) {
|
|
|
55
44
|
return;
|
|
56
45
|
}
|
|
57
46
|
|
|
58
|
-
if (payload.type === '
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
callbacks.onDelta?.(delta);
|
|
47
|
+
if (payload.type === 'conversation-event' && payload.event) {
|
|
48
|
+
if (payload.event.kind === 'assistant_text_delta' && typeof payload.event.payload?.text === 'string') {
|
|
49
|
+
callbacks.onDelta?.(payload.event.payload.text);
|
|
62
50
|
return;
|
|
63
51
|
}
|
|
64
52
|
|
|
65
|
-
if (payload
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const isReasoning = !!payload?.data?.isReasoning || payload?.data?.itemType === 'reasoning';
|
|
76
|
-
|
|
77
|
-
// Feishu channel does not output model reasoning/thinking content.
|
|
78
|
-
if (isReasoning) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (itemId) {
|
|
83
|
-
state.codexDeltaItems.add(itemId);
|
|
53
|
+
if (payload.event.kind === 'session_state_changed') {
|
|
54
|
+
const nextState = String(payload.event.payload?.state || '').trim().toLowerCase();
|
|
55
|
+
if (nextState === 'completed') {
|
|
56
|
+
state.done = true;
|
|
57
|
+
} else if (nextState === 'errored') {
|
|
58
|
+
state.failed = true;
|
|
59
|
+
callbacks.onError?.(new Error(payload.event.payload?.message || 'Agent runtime error'));
|
|
60
|
+
} else if (nextState === 'aborted') {
|
|
61
|
+
state.failed = true;
|
|
62
|
+
callbacks.onError?.(new Error('Agent session aborted'));
|
|
84
63
|
}
|
|
85
|
-
|
|
86
|
-
callbacks.onDelta?.(payload.data.delta);
|
|
87
|
-
return;
|
|
88
64
|
}
|
|
89
|
-
|
|
90
|
-
if (payload?.data?.type === 'item_done' && typeof payload?.data?.content === 'string' && payload.data.content.length > 0) {
|
|
91
|
-
const itemId = payload?.data?.itemId ? String(payload.data.itemId) : null;
|
|
92
|
-
const isReasoning = !!payload?.data?.isReasoning || payload?.data?.itemType === 'reasoning';
|
|
93
|
-
const hasDeltaStreamed = !!(itemId && state.codexDeltaItems.has(itemId));
|
|
94
|
-
|
|
95
|
-
// Feishu channel does not output model reasoning/thinking content.
|
|
96
|
-
if (isReasoning) {
|
|
97
|
-
if (itemId) {
|
|
98
|
-
state.codexDeltaItems.delete(itemId);
|
|
99
|
-
}
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (!hasDeltaStreamed) {
|
|
104
|
-
callbacks.onDelta?.(payload.data.content);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (itemId) {
|
|
108
|
-
state.codexDeltaItems.delete(itemId);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (payload.type === 'claude-complete' || payload.type === 'codex-complete') {
|
|
116
|
-
state.done = true;
|
|
117
65
|
return;
|
|
118
66
|
}
|
|
119
67
|
|
|
120
|
-
if (payload.type === '
|
|
68
|
+
if (payload.type === 'error') {
|
|
121
69
|
state.failed = true;
|
|
122
70
|
callbacks.onError?.(new Error(payload.error || 'Agent runtime error'));
|
|
123
71
|
}
|
|
@@ -140,7 +88,6 @@ export async function runBackendSession({
|
|
|
140
88
|
onError,
|
|
141
89
|
}) {
|
|
142
90
|
const resolvedBackend = normalizeBackend(backend);
|
|
143
|
-
const resolvedModel = model || getDefaultModel(resolvedBackend);
|
|
144
91
|
|
|
145
92
|
const writer = createWriter({
|
|
146
93
|
onSessionId,
|
|
@@ -152,23 +99,18 @@ export async function runBackendSession({
|
|
|
152
99
|
projectPath,
|
|
153
100
|
cwd: projectPath,
|
|
154
101
|
sessionId: sessionId || undefined,
|
|
155
|
-
model:
|
|
102
|
+
model: model || undefined,
|
|
156
103
|
permissionMode: 'bypassPermissions',
|
|
157
104
|
resume: !!sessionId,
|
|
158
105
|
skipPermissions: true,
|
|
159
106
|
};
|
|
160
107
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
} else if (resolvedBackend === 'opencode') {
|
|
168
|
-
await queryOpencode(message, options, writer);
|
|
169
|
-
} else {
|
|
170
|
-
throw new Error(`Unsupported backend: ${resolvedBackend}`);
|
|
171
|
-
}
|
|
108
|
+
await executeAgentPrompt({
|
|
109
|
+
agentKey: resolvedBackend,
|
|
110
|
+
command: message,
|
|
111
|
+
options,
|
|
112
|
+
writer
|
|
113
|
+
});
|
|
172
114
|
|
|
173
115
|
return {
|
|
174
116
|
sessionId: writer.getState().sessionId || sessionId || null,
|