@axhub/genie 0.2.9 → 0.2.10
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-CYCCsgwf.js +264 -0
- package/dist/assets/{ReviewApp-C9K--AQE.js → ReviewApp-0srHIXwb.js} +1 -1
- package/dist/assets/{_basePickBy-DR_8uFCo.js → _basePickBy-DVVb07UV.js} +1 -1
- package/dist/assets/{_baseUniq-D0njlQ_7.js → _baseUniq-BtbziL5G.js} +1 -1
- package/dist/assets/{arc-CKlr_Rec.js → arc-BsCC8yBD.js} +1 -1
- package/dist/assets/{architectureDiagram-2XIMDMQ5-BmO_uLUH.js → architectureDiagram-2XIMDMQ5-woFp6eNI.js} +1 -1
- package/dist/assets/{blockDiagram-WCTKOSBZ-DhAeO-56.js → blockDiagram-WCTKOSBZ-ya8VAc2k.js} +1 -1
- package/dist/assets/{c4Diagram-IC4MRINW-C67kFoXx.js → c4Diagram-IC4MRINW-CY1dZmIZ.js} +1 -1
- package/dist/assets/channel-BMhScXFe.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-mLLagvJi.js → chunk-4BX2VUAB-CR1lAd74.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-Lx-hOjlM.js → chunk-55IACEB6-CP98WcFC.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Bt-XmVUV.js → chunk-FMBD7UC4-D9c7ijAB.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-Cya6gaDV.js → chunk-JSJVCQXG-DQAGYOn-.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-Bd7Ig6tF.js → chunk-KX2RTZJC-BbTXiDq7.js} +1 -1
- package/dist/assets/{chunk-NQ4KR5QH-5UAE0Vg-.js → chunk-NQ4KR5QH-BI6AX0dr.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-BAxZ8m7w.js → chunk-QZHKN3VN-DB3V2Ifo.js} +1 -1
- package/dist/assets/{chunk-WL4C6EOR-DjDPvUUP.js → chunk-WL4C6EOR-DhzTthv6.js} +1 -1
- package/dist/assets/classDiagram-VBA2DB6C-CMIxlWcT.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-CMIxlWcT.js +1 -0
- package/dist/assets/clone-BPqOt4r3.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-D-60XrkJ.js → cose-bilkent-S5V4N54A-BQ09ZE2j.js} +1 -1
- package/dist/assets/{dagre-KLK3FWXG-bqu3ZS4K.js → dagre-KLK3FWXG-Dc2ueD_R.js} +1 -1
- package/dist/assets/{diagram-E7M64L7V-BueeqoYm.js → diagram-E7M64L7V-DP-LsQoL.js} +1 -1
- package/dist/assets/{diagram-IFDJBPK2-D4fDv2E7.js → diagram-IFDJBPK2-Cg6r42cB.js} +1 -1
- package/dist/assets/{diagram-P4PSJMXO-WqipY3fN.js → diagram-P4PSJMXO-aHsfoUZE.js} +1 -1
- package/dist/assets/{erDiagram-INFDFZHY-D0oVnO-x.js → erDiagram-INFDFZHY-qBXJ4aAz.js} +1 -1
- package/dist/assets/{flowDiagram-PKNHOUZH-DzbGyxrr.js → flowDiagram-PKNHOUZH-D_13emJM.js} +1 -1
- package/dist/assets/{ganttDiagram-A5KZAMGK-BwhbbgCP.js → ganttDiagram-A5KZAMGK-BvIcOLwz.js} +1 -1
- package/dist/assets/{gitGraphDiagram-K3NZZRJ6-DZgAh_KM.js → gitGraphDiagram-K3NZZRJ6-ad0vvNcU.js} +1 -1
- package/dist/assets/{graph-DzKos-N0.js → graph-CeJCMjan.js} +1 -1
- package/dist/assets/{highlighted-body-TPN3WLV5-CKDMgz3X.js → highlighted-body-TPN3WLV5-B_novwSz.js} +1 -1
- package/dist/assets/index-C514cLyb.js +2 -0
- package/dist/assets/index-h1DBl_g3.css +1 -0
- package/dist/assets/{infoDiagram-LFFYTUFH-BFicZbTf.js → infoDiagram-LFFYTUFH-lOxAqb3m.js} +1 -1
- package/dist/assets/{ishikawaDiagram-PHBUUO56-CtihxDxl.js → ishikawaDiagram-PHBUUO56-DIr-51gj.js} +1 -1
- package/dist/assets/{journeyDiagram-4ABVD52K-Du00J8_d.js → journeyDiagram-4ABVD52K-CYcIW0ZU.js} +1 -1
- package/dist/assets/{kanban-definition-K7BYSVSG-BJi9S0iQ.js → kanban-definition-K7BYSVSG-C1ZK616a.js} +1 -1
- package/dist/assets/{layout-B80Sityu.js → layout-CI2RM-v6.js} +1 -1
- package/dist/assets/{linear-sRQLOf5H.js → linear-DE7bISck.js} +1 -1
- package/dist/assets/{mermaid-O7DHMXV3-CBuVs4eJ.js → mermaid-O7DHMXV3-XxAJo8EK.js} +6 -6
- package/dist/assets/{mindmap-definition-YRQLILUH-C5IL_xi-.js → mindmap-definition-YRQLILUH-Dz6EFjmn.js} +1 -1
- package/dist/assets/{pieDiagram-SKSYHLDU-CeTwlJ8z.js → pieDiagram-SKSYHLDU-DPpEzUed.js} +1 -1
- package/dist/assets/{quadrantDiagram-337W2JSQ-COfUcLWt.js → quadrantDiagram-337W2JSQ-xdoXNet7.js} +1 -1
- package/dist/assets/{requirementDiagram-Z7DCOOCP-DSb-CJ5B.js → requirementDiagram-Z7DCOOCP-DUq8H3CL.js} +1 -1
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-8jtuVb45.js → sankeyDiagram-WA2Y5GQK-CmqEUxRu.js} +1 -1
- package/dist/assets/{sequenceDiagram-2WXFIKYE-C2VpkMwA.js → sequenceDiagram-2WXFIKYE-DhtXRNiH.js} +1 -1
- package/dist/assets/{stateDiagram-RAJIS63D-fmwMqxxc.js → stateDiagram-RAJIS63D-Dj0HOlbN.js} +1 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-C9utf5gv.js +1 -0
- package/dist/assets/{timeline-definition-YZTLITO2-Dx1hP5lg.js → timeline-definition-YZTLITO2-DUuJzZB5.js} +1 -1
- package/dist/assets/{treemap-KZPCXAKY-CkLOdYCZ.js → treemap-KZPCXAKY-DpYBQ0qr.js} +1 -1
- package/dist/assets/vendor-codemirror-CMHSJ_9p.js +9 -0
- package/dist/assets/{vennDiagram-LZ73GAT5-D6KWcnln.js → vennDiagram-LZ73GAT5-DpePUyOd.js} +1 -1
- package/dist/assets/{xychartDiagram-JWTSCODW-6fh6qmzN.js → xychartDiagram-JWTSCODW-Cfp1I4_U.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +6 -5
- package/server/acp-runtime/client.js +120 -14
- package/server/acp-runtime/index.js +54 -0
- package/server/acp-runtime/registry.js +2 -2
- package/server/acp-runtime/session-store.js +75 -1
- package/server/cli.js +32 -8
- package/server/database/db.js +20 -0
- package/server/external-agent/ws.js +477 -24
- package/server/index.js +78 -146
- package/server/lan-access/core.js +79 -0
- package/server/lan-access/state.js +102 -0
- package/server/middleware/auth.js +57 -14
- package/server/projects.js +423 -535
- package/server/routes/auth.js +24 -4
- package/server/routes/cli-auth.js +21 -25
- package/server/routes/codex.js +84 -298
- package/server/routes/commands.js +322 -407
- package/server/routes/lan-access.js +231 -0
- package/server/routes/projects.js +154 -158
- package/server/routes/session-core.js +13 -7
- package/server/routes/settings.js +113 -99
- package/server/session-core/eventStore.js +15 -2
- package/server/session-core/providerAdapters.js +28 -28
- package/server/session-core/sessionListMerge.js +47 -0
- package/shared/conversationEvents.js +96 -1
- package/shared/modelConstants.js +79 -99
- package/dist/assets/App-GBcTeeUS.js +0 -460
- package/dist/assets/channel-V3MBjKys.js +0 -1
- package/dist/assets/classDiagram-VBA2DB6C-C790yYiY.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-C790yYiY.js +0 -1
- package/dist/assets/clone-BbMGfZwt.js +0 -1
- package/dist/assets/index-DiQlHzGj.js +0 -2
- package/dist/assets/index-Drat2nB9.css +0 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-9GGXVWrR.js +0 -1
- package/dist/assets/vendor-codemirror-BxPY6emf.js +0 -39
- package/server/routes/git.js +0 -1110
- package/server/routes/mcp-utils.js +0 -48
- package/server/routes/mcp.js +0 -536
- package/server/routes/taskmaster.js +0 -1963
- package/server/utils/mcp-detector.js +0 -198
- package/server/utils/taskmaster-websocket.js +0 -129
package/server/cli.js
CHANGED
|
@@ -169,6 +169,18 @@ async function waitForRuntimeStatus(pid, timeoutMs = 10000) {
|
|
|
169
169
|
return null;
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
+
function shouldAutoOpenHomepage(options = {}, env = process.env) {
|
|
173
|
+
if (options.noOpen || env.AXHUB_GENIE_NO_OPEN === 'true') {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
if (options.open || env.AXHUB_GENIE_OPEN === 'true') {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
|
|
172
184
|
function isProcessAlive(pid) {
|
|
173
185
|
if (!Number.isInteger(pid) || pid <= 0) {
|
|
174
186
|
return false;
|
|
@@ -548,7 +560,9 @@ function buildEditorRequest(positionals, options) {
|
|
|
548
560
|
}
|
|
549
561
|
|
|
550
562
|
const channel = requireOption(options, 'channel', '--channel is required for editor commands');
|
|
551
|
-
const targetClientId =
|
|
563
|
+
const targetClientId = typeof options.targetClientId === 'string' && options.targetClientId.trim()
|
|
564
|
+
? options.targetClientId.trim()
|
|
565
|
+
: null;
|
|
552
566
|
|
|
553
567
|
if (commandPath === 'editor snapshot') {
|
|
554
568
|
return {
|
|
@@ -558,7 +572,10 @@ function buildEditorRequest(positionals, options) {
|
|
|
558
572
|
message: {
|
|
559
573
|
type: 'integration.editor.snapshot.get',
|
|
560
574
|
requestId: scope.requestId,
|
|
561
|
-
payload: {
|
|
575
|
+
payload: {
|
|
576
|
+
channel,
|
|
577
|
+
...(targetClientId ? { targetClientId } : {}),
|
|
578
|
+
},
|
|
562
579
|
},
|
|
563
580
|
};
|
|
564
581
|
}
|
|
@@ -573,7 +590,7 @@ function buildEditorRequest(positionals, options) {
|
|
|
573
590
|
requestId: scope.requestId,
|
|
574
591
|
payload: {
|
|
575
592
|
channel,
|
|
576
|
-
targetClientId,
|
|
593
|
+
...(targetClientId ? { targetClientId } : {}),
|
|
577
594
|
...(options.status ? { status: parseCommaSeparatedList(options.status) } : {}),
|
|
578
595
|
...(options.elementKey ? { elementKey: String(options.elementKey).trim() } : {}),
|
|
579
596
|
...(options.limit ? { limit: parsePositiveInteger(options.limit, '--limit') } : {}),
|
|
@@ -592,7 +609,7 @@ function buildEditorRequest(positionals, options) {
|
|
|
592
609
|
requestId: scope.requestId,
|
|
593
610
|
payload: {
|
|
594
611
|
channel,
|
|
595
|
-
targetClientId,
|
|
612
|
+
...(targetClientId ? { targetClientId } : {}),
|
|
596
613
|
elementKey: requireOption(options, 'elementKey', '--element-key is required'),
|
|
597
614
|
downloadPath: resolveOutputDirPath(options.outputDir),
|
|
598
615
|
},
|
|
@@ -610,7 +627,7 @@ function buildEditorRequest(positionals, options) {
|
|
|
610
627
|
requestId: scope.requestId,
|
|
611
628
|
payload: {
|
|
612
629
|
channel,
|
|
613
|
-
targetClientId,
|
|
630
|
+
...(targetClientId ? { targetClientId } : {}),
|
|
614
631
|
downloadPath: resolveOutputDirPath(options.outputDir),
|
|
615
632
|
},
|
|
616
633
|
},
|
|
@@ -627,7 +644,7 @@ function buildEditorRequest(positionals, options) {
|
|
|
627
644
|
requestId: scope.requestId,
|
|
628
645
|
payload: {
|
|
629
646
|
channel,
|
|
630
|
-
targetClientId,
|
|
647
|
+
...(targetClientId ? { targetClientId } : {}),
|
|
631
648
|
elementKey: requireOption(options, 'elementKey', '--element-key is required'),
|
|
632
649
|
state: requireOption(options, 'state', '--state is required'),
|
|
633
650
|
...(buildTaskRef(options) ? { taskRef: buildTaskRef(options) } : {}),
|
|
@@ -947,7 +964,8 @@ Environment Variables:
|
|
|
947
964
|
CLAUDE_CLI_PATH Set custom Claude CLI path
|
|
948
965
|
CONTEXT_WINDOW Set context window size (default: 160000)
|
|
949
966
|
AXHUB_GENIE_STATUS_PATH Set runtime status file path
|
|
950
|
-
|
|
967
|
+
AXHUB_GENIE_OPEN Set to true to auto-open the homepage after startup
|
|
968
|
+
AXHUB_GENIE_NO_OPEN Set to true to force-disable homepage auto-open
|
|
951
969
|
|
|
952
970
|
Documentation:
|
|
953
971
|
${packageJson.homepage || defaultProjectUrl}
|
|
@@ -1032,7 +1050,7 @@ async function startServer() {
|
|
|
1032
1050
|
// Import and run the server
|
|
1033
1051
|
await import('./index.js');
|
|
1034
1052
|
|
|
1035
|
-
if (
|
|
1053
|
+
if (!shouldAutoOpenHomepage()) {
|
|
1036
1054
|
return;
|
|
1037
1055
|
}
|
|
1038
1056
|
|
|
@@ -1141,6 +1159,8 @@ function parseArgs(args) {
|
|
|
1141
1159
|
parsed.options.taskRequestId = arg.split('=')[1];
|
|
1142
1160
|
} else if (arg === '--json') {
|
|
1143
1161
|
parsed.options.json = true;
|
|
1162
|
+
} else if (arg === '--open') {
|
|
1163
|
+
parsed.options.open = true;
|
|
1144
1164
|
} else if (arg === '--no-open') {
|
|
1145
1165
|
parsed.options.noOpen = true;
|
|
1146
1166
|
} else if (arg === '--help' || arg === '-h') {
|
|
@@ -1184,6 +1204,9 @@ async function main() {
|
|
|
1184
1204
|
await runEditorCommand(positionals, options);
|
|
1185
1205
|
break;
|
|
1186
1206
|
}
|
|
1207
|
+
if (options.open) {
|
|
1208
|
+
process.env.AXHUB_GENIE_OPEN = 'true';
|
|
1209
|
+
}
|
|
1187
1210
|
if (options.noOpen) {
|
|
1188
1211
|
process.env.AXHUB_GENIE_NO_OPEN = 'true';
|
|
1189
1212
|
}
|
|
@@ -1242,4 +1265,5 @@ export {
|
|
|
1242
1265
|
normalizeApiBaseUrl,
|
|
1243
1266
|
parseArgs,
|
|
1244
1267
|
runEditorCommand,
|
|
1268
|
+
shouldAutoOpenHomepage,
|
|
1245
1269
|
};
|
package/server/database/db.js
CHANGED
|
@@ -224,6 +224,26 @@ const userDb = {
|
|
|
224
224
|
return toUserPublic(user);
|
|
225
225
|
},
|
|
226
226
|
|
|
227
|
+
ensureDefaultUser: () => {
|
|
228
|
+
const existingUser = userDb.getFirstUser();
|
|
229
|
+
if (existingUser) {
|
|
230
|
+
return existingUser;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
const preferredNames = ['genie', 'axhub-genie', 'local-user'];
|
|
234
|
+
for (const username of preferredNames) {
|
|
235
|
+
try {
|
|
236
|
+
return userDb.createUser(username, '');
|
|
237
|
+
} catch (error) {
|
|
238
|
+
if (error?.code !== 'USERNAME_EXISTS') {
|
|
239
|
+
throw error;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
return userDb.createUser(`local-user-${Date.now()}`, '');
|
|
245
|
+
},
|
|
246
|
+
|
|
227
247
|
};
|
|
228
248
|
|
|
229
249
|
const apiKeysDb = {
|