@axhub/genie 0.2.8 → 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.
Files changed (106) hide show
  1. package/LICENSE +21 -675
  2. package/dist/api-docs.html +2 -2
  3. package/dist/assets/App-CYCCsgwf.js +264 -0
  4. package/dist/assets/ReviewApp-0srHIXwb.js +1 -0
  5. package/dist/assets/{_basePickBy-CqJbRZ9y.js → _basePickBy-DVVb07UV.js} +1 -1
  6. package/dist/assets/{_baseUniq-BS8YH8jO.js → _baseUniq-BtbziL5G.js} +1 -1
  7. package/dist/assets/{arc-BBmKEN-S.js → arc-BsCC8yBD.js} +1 -1
  8. package/dist/assets/{architectureDiagram-2XIMDMQ5-N5lcb82R.js → architectureDiagram-2XIMDMQ5-woFp6eNI.js} +1 -1
  9. package/dist/assets/{blockDiagram-WCTKOSBZ-DTMwHuLn.js → blockDiagram-WCTKOSBZ-ya8VAc2k.js} +1 -1
  10. package/dist/assets/{c4Diagram-IC4MRINW-BTKlkXI9.js → c4Diagram-IC4MRINW-CY1dZmIZ.js} +1 -1
  11. package/dist/assets/channel-BMhScXFe.js +1 -0
  12. package/dist/assets/{chunk-4BX2VUAB-DUdoTxAc.js → chunk-4BX2VUAB-CR1lAd74.js} +1 -1
  13. package/dist/assets/{chunk-55IACEB6-Bm_92xe4.js → chunk-55IACEB6-CP98WcFC.js} +1 -1
  14. package/dist/assets/{chunk-FMBD7UC4-CGW0g62g.js → chunk-FMBD7UC4-D9c7ijAB.js} +1 -1
  15. package/dist/assets/{chunk-JSJVCQXG-DYkTH3w1.js → chunk-JSJVCQXG-DQAGYOn-.js} +1 -1
  16. package/dist/assets/{chunk-KX2RTZJC-C9oTlISU.js → chunk-KX2RTZJC-BbTXiDq7.js} +1 -1
  17. package/dist/assets/{chunk-NQ4KR5QH-CM50ygWP.js → chunk-NQ4KR5QH-BI6AX0dr.js} +1 -1
  18. package/dist/assets/{chunk-QZHKN3VN-7dzpYeNJ.js → chunk-QZHKN3VN-DB3V2Ifo.js} +1 -1
  19. package/dist/assets/{chunk-WL4C6EOR-Cm9nQrsr.js → chunk-WL4C6EOR-DhzTthv6.js} +1 -1
  20. package/dist/assets/classDiagram-VBA2DB6C-CMIxlWcT.js +1 -0
  21. package/dist/assets/classDiagram-v2-RAHNMMFH-CMIxlWcT.js +1 -0
  22. package/dist/assets/clone-BPqOt4r3.js +1 -0
  23. package/dist/assets/{cose-bilkent-S5V4N54A-Ccp_p0JZ.js → cose-bilkent-S5V4N54A-BQ09ZE2j.js} +1 -1
  24. package/dist/assets/{dagre-KLK3FWXG-fBwTLUp9.js → dagre-KLK3FWXG-Dc2ueD_R.js} +1 -1
  25. package/dist/assets/{diagram-E7M64L7V-CeNVmFUp.js → diagram-E7M64L7V-DP-LsQoL.js} +1 -1
  26. package/dist/assets/{diagram-IFDJBPK2-CtavyLGa.js → diagram-IFDJBPK2-Cg6r42cB.js} +1 -1
  27. package/dist/assets/{diagram-P4PSJMXO-CpQTjQwc.js → diagram-P4PSJMXO-aHsfoUZE.js} +1 -1
  28. package/dist/assets/{erDiagram-INFDFZHY-B8R5vwhd.js → erDiagram-INFDFZHY-qBXJ4aAz.js} +1 -1
  29. package/dist/assets/{flowDiagram-PKNHOUZH-BvkVVwIQ.js → flowDiagram-PKNHOUZH-D_13emJM.js} +1 -1
  30. package/dist/assets/{ganttDiagram-A5KZAMGK-DOu3hSNa.js → ganttDiagram-A5KZAMGK-BvIcOLwz.js} +1 -1
  31. package/dist/assets/{gitGraphDiagram-K3NZZRJ6-C7zT67YE.js → gitGraphDiagram-K3NZZRJ6-ad0vvNcU.js} +1 -1
  32. package/dist/assets/{graph-D11wiwHo.js → graph-CeJCMjan.js} +1 -1
  33. package/dist/assets/{highlighted-body-TPN3WLV5-Babpthg-.js → highlighted-body-TPN3WLV5-B_novwSz.js} +1 -1
  34. package/dist/assets/index-C514cLyb.js +2 -0
  35. package/dist/assets/index-h1DBl_g3.css +1 -0
  36. package/dist/assets/{infoDiagram-LFFYTUFH-BmA7IpQG.js → infoDiagram-LFFYTUFH-lOxAqb3m.js} +1 -1
  37. package/dist/assets/{ishikawaDiagram-PHBUUO56-BEquZd3E.js → ishikawaDiagram-PHBUUO56-DIr-51gj.js} +1 -1
  38. package/dist/assets/{journeyDiagram-4ABVD52K-BfemGz7f.js → journeyDiagram-4ABVD52K-CYcIW0ZU.js} +1 -1
  39. package/dist/assets/{kanban-definition-K7BYSVSG-CWja3mln.js → kanban-definition-K7BYSVSG-C1ZK616a.js} +1 -1
  40. package/dist/assets/{layout-BLUNf-PJ.js → layout-CI2RM-v6.js} +1 -1
  41. package/dist/assets/{linear-DukIV_Xv.js → linear-DE7bISck.js} +1 -1
  42. package/dist/assets/{mermaid-O7DHMXV3-SgtM28qI.js → mermaid-O7DHMXV3-XxAJo8EK.js} +6 -6
  43. package/dist/assets/{mindmap-definition-YRQLILUH-4UjqXITU.js → mindmap-definition-YRQLILUH-Dz6EFjmn.js} +1 -1
  44. package/dist/assets/{pieDiagram-SKSYHLDU-8AxqJd0M.js → pieDiagram-SKSYHLDU-DPpEzUed.js} +1 -1
  45. package/dist/assets/{quadrantDiagram-337W2JSQ-D60m8V8r.js → quadrantDiagram-337W2JSQ-xdoXNet7.js} +1 -1
  46. package/dist/assets/{requirementDiagram-Z7DCOOCP-zqh9jBVf.js → requirementDiagram-Z7DCOOCP-DUq8H3CL.js} +1 -1
  47. package/dist/assets/{sankeyDiagram-WA2Y5GQK-CDZILTLI.js → sankeyDiagram-WA2Y5GQK-CmqEUxRu.js} +1 -1
  48. package/dist/assets/{sequenceDiagram-2WXFIKYE-7BReFd0L.js → sequenceDiagram-2WXFIKYE-DhtXRNiH.js} +1 -1
  49. package/dist/assets/{stateDiagram-RAJIS63D-HPTVdIG4.js → stateDiagram-RAJIS63D-Dj0HOlbN.js} +1 -1
  50. package/dist/assets/stateDiagram-v2-FVOUBMTO-C9utf5gv.js +1 -0
  51. package/dist/assets/{timeline-definition-YZTLITO2-CTVllFgr.js → timeline-definition-YZTLITO2-DUuJzZB5.js} +1 -1
  52. package/dist/assets/{treemap-KZPCXAKY-BtyxboJZ.js → treemap-KZPCXAKY-DpYBQ0qr.js} +1 -1
  53. package/dist/assets/vendor-codemirror-CMHSJ_9p.js +9 -0
  54. package/dist/assets/{vendor-react-Cpt6D04s.js → vendor-react-xmA_f8ig.js} +1 -1
  55. package/dist/assets/{vennDiagram-LZ73GAT5-D96ZI6Mg.js → vennDiagram-LZ73GAT5-DpePUyOd.js} +1 -1
  56. package/dist/assets/{xychartDiagram-JWTSCODW-eRk-39YO.js → xychartDiagram-JWTSCODW-Cfp1I4_U.js} +1 -1
  57. package/dist/index.html +5 -5
  58. package/package.json +8 -7
  59. package/server/acp-runtime/client.js +129 -16
  60. package/server/acp-runtime/index.js +54 -0
  61. package/server/acp-runtime/registry.js +2 -2
  62. package/server/acp-runtime/session-store.js +79 -5
  63. package/server/cli.js +55 -10
  64. package/server/database/db.js +20 -0
  65. package/server/external-agent/service.js +24 -6
  66. package/server/external-agent/ws.js +540 -27
  67. package/server/index.js +112 -151
  68. package/server/lan-access/core.js +79 -0
  69. package/server/lan-access/state.js +102 -0
  70. package/server/middleware/auth.js +57 -14
  71. package/server/projects.js +930 -667
  72. package/server/routes/auth.js +24 -4
  73. package/server/routes/cli-auth.js +21 -25
  74. package/server/routes/codex.js +84 -298
  75. package/server/routes/commands.js +322 -407
  76. package/server/routes/lan-access.js +231 -0
  77. package/server/routes/projects.js +154 -158
  78. package/server/routes/session-core.js +160 -91
  79. package/server/routes/settings.js +113 -99
  80. package/server/session-core/eventStore.js +60 -20
  81. package/server/session-core/providerAdapters.js +75 -38
  82. package/server/session-core/runtimeState.js +8 -0
  83. package/server/session-core/sessionListMerge.js +47 -0
  84. package/shared/conversationEvents.js +174 -15
  85. package/shared/modelConstants.js +79 -99
  86. package/dist/assets/App-CTKZtqB1.js +0 -460
  87. package/dist/assets/ReviewApp-DM6BNAzR.js +0 -1
  88. package/dist/assets/channel-1oJBvF-0.js +0 -1
  89. package/dist/assets/classDiagram-VBA2DB6C-d5TeKFM4.js +0 -1
  90. package/dist/assets/classDiagram-v2-RAHNMMFH-d5TeKFM4.js +0 -1
  91. package/dist/assets/clone-CinxIlEu.js +0 -1
  92. package/dist/assets/index-DFxzgWoO.js +0 -2
  93. package/dist/assets/index-YCFGDVKw.css +0 -1
  94. package/dist/assets/stateDiagram-v2-FVOUBMTO-DTUf5_gC.js +0 -1
  95. package/dist/assets/vendor-codemirror-Dz7_EqNA.js +0 -39
  96. package/server/_legacy-providers/README.md +0 -30
  97. package/server/_legacy-providers/claude-sdk.js +0 -956
  98. package/server/_legacy-providers/gemini-cli.js +0 -368
  99. package/server/_legacy-providers/openai-codex.js +0 -705
  100. package/server/_legacy-providers/opencode-cli.js +0 -674
  101. package/server/routes/git.js +0 -1110
  102. package/server/routes/mcp-utils.js +0 -48
  103. package/server/routes/mcp.js +0 -536
  104. package/server/routes/taskmaster.js +0 -1963
  105. package/server/utils/mcp-detector.js +0 -198
  106. package/server/utils/taskmaster-websocket.js +0 -129
@@ -1,104 +1,84 @@
1
- /**
2
- * Centralized Model Definitions
3
- * Single source of truth for all supported AI models
4
- */
1
+ function makeOption(value, label) {
2
+ return Object.freeze({ value, label });
3
+ }
5
4
 
6
- /**
7
- * Claude (Anthropic) Models
8
- *
9
- * Note: Claude uses two different formats:
10
- * - SDK format ('sonnet', 'opus') - used by the UI and claude-sdk.js
11
- * - API format ('claude-sonnet-4.5') - used by slash commands for display
12
- */
13
- export const CLAUDE_MODELS = {
14
- OPTIONS: [
15
- { value: 'sonnet', label: 'Sonnet' },
16
- { value: 'opus', label: 'Opus' },
17
- { value: 'haiku', label: 'Haiku' },
18
- { value: 'opusplan', label: 'Opus Plan' },
19
- { value: 'sonnet[1m]', label: 'Sonnet [1M]' }
20
- ],
5
+ function defineModelGroup(defaultValue, entries) {
6
+ return Object.freeze({
7
+ OPTIONS: Object.freeze(entries.map(([value, label]) => makeOption(value, label))),
8
+ DEFAULT: defaultValue
9
+ });
10
+ }
21
11
 
22
- DEFAULT: 'sonnet'
23
- };
12
+ const MODEL_REGISTRY = Object.freeze({
13
+ claude: defineModelGroup('sonnet', [
14
+ ['sonnet', 'Sonnet'],
15
+ ['opus', 'Opus'],
16
+ ['haiku', 'Haiku'],
17
+ ['opusplan', 'Opus Plan'],
18
+ ['sonnet[1m]', 'Sonnet [1M]']
19
+ ]),
20
+ cursor: defineModelGroup('gpt-5', [
21
+ ['gpt-5', 'GPT-5'],
22
+ ['gpt-5.2-high', 'GPT-5.2 High'],
23
+ ['gemini-3-pro', 'Gemini 3 Pro'],
24
+ ['opus-4.5-thinking', 'Claude 4.5 Opus (Thinking)'],
25
+ ['gpt-5.2', 'GPT-5.2'],
26
+ ['gpt-5.1', 'GPT-5.1'],
27
+ ['gpt-5.1-high', 'GPT-5.1 High'],
28
+ ['composer-1', 'Composer 1'],
29
+ ['auto', 'Auto'],
30
+ ['sonnet-4.5', 'Claude 4.5 Sonnet'],
31
+ ['sonnet-4.5-thinking', 'Claude 4.5 Sonnet (Thinking)'],
32
+ ['opus-4.5', 'Claude 4.5 Opus'],
33
+ ['gpt-5.1-codex', 'GPT-5.1 Codex'],
34
+ ['gpt-5.1-codex-high', 'GPT-5.1 Codex High'],
35
+ ['gpt-5.1-codex-max', 'GPT-5.1 Codex Max'],
36
+ ['gpt-5.1-codex-max-high', 'GPT-5.1 Codex Max High'],
37
+ ['opus-4.1', 'Claude 4.1 Opus'],
38
+ ['grok', 'Grok']
39
+ ]),
40
+ codex: defineModelGroup('gpt-5.2-codex', [
41
+ ['gpt-5', 'GPT-5'],
42
+ ['gpt-5-codex', 'GPT-5 Codex'],
43
+ ['gpt-5-codex-mini', 'GPT-5 Codex Mini'],
44
+ ['gpt-5.1', 'GPT-5.1'],
45
+ ['gpt-5.1-codex', 'GPT-5.1 Codex'],
46
+ ['gpt-5.1-codex-max', 'GPT-5.1 Codex Max'],
47
+ ['gpt-5.1-codex-mini', 'GPT-5.1 Codex Mini'],
48
+ ['gpt-5.2', 'GPT-5.2'],
49
+ ['gpt-5.2-codex', 'GPT-5.2 Codex'],
50
+ ['gpt-5.2-high', 'GPT-5.2 High'],
51
+ ['gpt-5.2-low', 'GPT-5.2 Low'],
52
+ ['gpt-5.2-medium', 'GPT-5.2 Medium'],
53
+ ['gpt-5.2-xhigh', 'GPT-5.2 XHigh'],
54
+ ['gpt-5.3-codex', 'GPT-5.3 Codex'],
55
+ ['gpt-5.3-codex-high', 'GPT-5.3 Codex High'],
56
+ ['gpt-5.3-codex-low', 'GPT-5.3 Codex Low'],
57
+ ['gpt-5.3-codex-medium', 'GPT-5.3 Codex Medium'],
58
+ ['gpt-5.3-codex-xhigh', 'GPT-5.3 Codex XHigh']
59
+ ]),
60
+ gemini: defineModelGroup('gemini-3-pro-preview', [
61
+ ['gemini-2.5-pro', 'Gemini 2.5 Pro'],
62
+ ['gemini-2.5-flash', 'Gemini 2.5 Flash'],
63
+ ['gemini-3-pro-preview', 'Gemini 3 Pro Preview'],
64
+ ['gemini-3-flash-preview', 'Gemini 3 Flash Preview']
65
+ ]),
66
+ opencode: defineModelGroup('kimi-k2.5', [
67
+ ['kimi-k2.5', 'Kimi K2.5']
68
+ ])
69
+ });
24
70
 
25
- /**
26
- * Cursor Models
27
- */
28
- export const CURSOR_MODELS = {
29
- OPTIONS: [
30
- { value: 'gpt-5', label: 'GPT-5' },
31
- { value: 'gpt-5.2-high', label: 'GPT-5.2 High' },
32
- { value: 'gemini-3-pro', label: 'Gemini 3 Pro' },
33
- { value: 'opus-4.5-thinking', label: 'Claude 4.5 Opus (Thinking)' },
34
- { value: 'gpt-5.2', label: 'GPT-5.2' },
35
- { value: 'gpt-5.1', label: 'GPT-5.1' },
36
- { value: 'gpt-5.1-high', label: 'GPT-5.1 High' },
37
- { value: 'composer-1', label: 'Composer 1' },
38
- { value: 'auto', label: 'Auto' },
39
- { value: 'sonnet-4.5', label: 'Claude 4.5 Sonnet' },
40
- { value: 'sonnet-4.5-thinking', label: 'Claude 4.5 Sonnet (Thinking)' },
41
- { value: 'opus-4.5', label: 'Claude 4.5 Opus' },
42
- { value: 'gpt-5.1-codex', label: 'GPT-5.1 Codex' },
43
- { value: 'gpt-5.1-codex-high', label: 'GPT-5.1 Codex High' },
44
- { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
45
- { value: 'gpt-5.1-codex-max-high', label: 'GPT-5.1 Codex Max High' },
46
- { value: 'opus-4.1', label: 'Claude 4.1 Opus' },
47
- { value: 'grok', label: 'Grok' }
48
- ],
71
+ export const CLAUDE_MODELS = MODEL_REGISTRY.claude;
72
+ export const CURSOR_MODELS = MODEL_REGISTRY.cursor;
73
+ export const CODEX_MODELS = MODEL_REGISTRY.codex;
74
+ export const GEMINI_MODELS = MODEL_REGISTRY.gemini;
75
+ export const OPENCODE_MODELS = MODEL_REGISTRY.opencode;
49
76
 
50
- DEFAULT: 'gpt-5'
51
- };
77
+ export function getModelGroup(provider) {
78
+ return MODEL_REGISTRY[String(provider || '').toLowerCase()] || null;
79
+ }
52
80
 
53
- /**
54
- * Codex (OpenAI) Models
55
- */
56
- export const CODEX_MODELS = {
57
- OPTIONS: [
58
- { value: 'gpt-5', label: 'GPT-5' },
59
- { value: 'gpt-5-codex', label: 'GPT-5 Codex' },
60
- { value: 'gpt-5-codex-mini', label: 'GPT-5 Codex Mini' },
61
- { value: 'gpt-5.1', label: 'GPT-5.1' },
62
- { value: 'gpt-5.1-codex', label: 'GPT-5.1 Codex' },
63
- { value: 'gpt-5.1-codex-max', label: 'GPT-5.1 Codex Max' },
64
- { value: 'gpt-5.1-codex-mini', label: 'GPT-5.1 Codex Mini' },
65
- { value: 'gpt-5.2', label: 'GPT-5.2' },
66
- { value: 'gpt-5.2-codex', label: 'GPT-5.2 Codex' },
67
- { value: 'gpt-5.2-high', label: 'GPT-5.2 High' },
68
- { value: 'gpt-5.2-low', label: 'GPT-5.2 Low' },
69
- { value: 'gpt-5.2-medium', label: 'GPT-5.2 Medium' },
70
- { value: 'gpt-5.2-xhigh', label: 'GPT-5.2 XHigh' },
71
- { value: 'gpt-5.3-codex', label: 'GPT-5.3 Codex' },
72
- { value: 'gpt-5.3-codex-high', label: 'GPT-5.3 Codex High' },
73
- { value: 'gpt-5.3-codex-low', label: 'GPT-5.3 Codex Low' },
74
- { value: 'gpt-5.3-codex-medium', label: 'GPT-5.3 Codex Medium' },
75
- { value: 'gpt-5.3-codex-xhigh', label: 'GPT-5.3 Codex XHigh' }
76
- ],
77
-
78
- DEFAULT: 'gpt-5.2-codex'
79
- };
80
-
81
- /**
82
- * Gemini Models
83
- */
84
- export const GEMINI_MODELS = {
85
- OPTIONS: [
86
- { value: 'gemini-2.5-pro', label: 'Gemini 2.5 Pro' },
87
- { value: 'gemini-2.5-flash', label: 'Gemini 2.5 Flash' },
88
- { value: 'gemini-3-pro-preview', label: 'Gemini 3 Pro Preview' },
89
- { value: 'gemini-3-flash-preview', label: 'Gemini 3 Flash Preview' }
90
- ],
91
-
92
- DEFAULT: 'gemini-3-pro-preview'
93
- };
94
-
95
- /**
96
- * OpenCode (OPENCODE) Models
97
- */
98
- export const OPENCODE_MODELS = {
99
- OPTIONS: [
100
- { value: 'kimi-k2.5', label: 'Kimi K2.5' }
101
- ],
102
-
103
- DEFAULT: 'kimi-k2.5'
104
- };
81
+ export function getModelValues(provider) {
82
+ const group = getModelGroup(provider);
83
+ return group ? group.OPTIONS.map((option) => option.value) : [];
84
+ }