@x-code-cli/core 0.2.10 → 0.3.1
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/agent/compression.d.ts +12 -2
- package/dist/agent/compression.d.ts.map +1 -1
- package/dist/agent/compression.js +51 -2
- package/dist/agent/compression.js.map +1 -1
- package/dist/agent/file-ingest.js +2 -2
- package/dist/agent/file-ingest.js.map +1 -1
- package/dist/agent/loop-state.d.ts +3 -2
- package/dist/agent/loop-state.d.ts.map +1 -1
- package/dist/agent/loop-state.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +134 -5
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-extractor.js +5 -5
- package/dist/agent/memory-extractor.js.map +1 -1
- package/dist/agent/plan-storage.js +1 -1
- package/dist/agent/plan-storage.js.map +1 -1
- package/dist/agent/sub-agents/index.d.ts +2 -1
- package/dist/agent/sub-agents/index.d.ts.map +1 -1
- package/dist/agent/sub-agents/index.js +1 -1
- package/dist/agent/sub-agents/index.js.map +1 -1
- package/dist/agent/sub-agents/loader.d.ts +13 -3
- package/dist/agent/sub-agents/loader.d.ts.map +1 -1
- package/dist/agent/sub-agents/loader.js +36 -9
- package/dist/agent/sub-agents/loader.js.map +1 -1
- package/dist/agent/sub-agents/registry.d.ts +18 -1
- package/dist/agent/sub-agents/registry.d.ts.map +1 -1
- package/dist/agent/sub-agents/registry.js +38 -5
- package/dist/agent/sub-agents/registry.js.map +1 -1
- package/dist/agent/sub-agents/runner.d.ts.map +1 -1
- package/dist/agent/sub-agents/runner.js +45 -1
- package/dist/agent/sub-agents/runner.js.map +1 -1
- package/dist/agent/sub-agents/types.d.ts +4 -1
- package/dist/agent/sub-agents/types.d.ts.map +1 -1
- package/dist/agent/system-prompt.d.ts +21 -0
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +68 -2
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-execution.d.ts.map +1 -1
- package/dist/agent/tool-execution.js +220 -1
- package/dist/agent/tool-execution.js.map +1 -1
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/loader.d.ts +19 -0
- package/dist/commands/loader.d.ts.map +1 -0
- package/dist/commands/loader.js +109 -0
- package/dist/commands/loader.js.map +1 -0
- package/dist/commands/registry.d.ts +44 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +102 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/types.d.ts +23 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +26 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +12 -10
- package/dist/config/index.js.map +1 -1
- package/dist/hooks/bus.d.ts +54 -0
- package/dist/hooks/bus.d.ts.map +1 -0
- package/dist/hooks/bus.js +165 -0
- package/dist/hooks/bus.js.map +1 -0
- package/dist/hooks/config-schema.d.ts +854 -0
- package/dist/hooks/config-schema.d.ts.map +1 -0
- package/dist/hooks/config-schema.js +79 -0
- package/dist/hooks/config-schema.js.map +1 -0
- package/dist/hooks/executor.d.ts +16 -0
- package/dist/hooks/executor.d.ts.map +1 -0
- package/dist/hooks/executor.js +183 -0
- package/dist/hooks/executor.js.map +1 -0
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/registry.d.ts +23 -0
- package/dist/hooks/registry.d.ts.map +1 -0
- package/dist/hooks/registry.js +49 -0
- package/dist/hooks/registry.js.map +1 -0
- package/dist/hooks/types.d.ts +165 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +25 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/hooks/variables.d.ts +22 -0
- package/dist/hooks/variables.d.ts.map +1 -0
- package/dist/hooks/variables.js +80 -0
- package/dist/hooks/variables.js.map +1 -0
- package/dist/index.d.ts +57 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -2
- package/dist/index.js.map +1 -1
- package/dist/knowledge/auto-memory.d.ts +1 -1
- package/dist/knowledge/auto-memory.d.ts.map +1 -1
- package/dist/knowledge/auto-memory.js +10 -10
- package/dist/knowledge/auto-memory.js.map +1 -1
- package/dist/knowledge/loader.js +12 -12
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/mcp/arg-parser.d.ts +49 -0
- package/dist/mcp/arg-parser.d.ts.map +1 -0
- package/dist/mcp/arg-parser.js +357 -0
- package/dist/mcp/arg-parser.js.map +1 -0
- package/dist/mcp/client.d.ts +73 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +376 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config-schema.d.ts +64 -0
- package/dist/mcp/config-schema.d.ts.map +1 -0
- package/dist/mcp/config-schema.js +86 -0
- package/dist/mcp/config-schema.js.map +1 -0
- package/dist/mcp/config-writer.d.ts +41 -0
- package/dist/mcp/config-writer.d.ts.map +1 -0
- package/dist/mcp/config-writer.js +138 -0
- package/dist/mcp/config-writer.js.map +1 -0
- package/dist/mcp/env-safety.d.ts +12 -0
- package/dist/mcp/env-safety.d.ts.map +1 -0
- package/dist/mcp/env-safety.js +80 -0
- package/dist/mcp/env-safety.js.map +1 -0
- package/dist/mcp/expand-env.d.ts +14 -0
- package/dist/mcp/expand-env.d.ts.map +1 -0
- package/dist/mcp/expand-env.js +52 -0
- package/dist/mcp/expand-env.js.map +1 -0
- package/dist/mcp/loader.d.ts +81 -0
- package/dist/mcp/loader.d.ts.map +1 -0
- package/dist/mcp/loader.js +223 -0
- package/dist/mcp/loader.js.map +1 -0
- package/dist/mcp/name-mangling.d.ts +11 -0
- package/dist/mcp/name-mangling.d.ts.map +1 -0
- package/dist/mcp/name-mangling.js +82 -0
- package/dist/mcp/name-mangling.js.map +1 -0
- package/dist/mcp/oauth/callback-server.d.ts +25 -0
- package/dist/mcp/oauth/callback-server.d.ts.map +1 -0
- package/dist/mcp/oauth/callback-server.js +118 -0
- package/dist/mcp/oauth/callback-server.js.map +1 -0
- package/dist/mcp/oauth/provider.d.ts +80 -0
- package/dist/mcp/oauth/provider.d.ts.map +1 -0
- package/dist/mcp/oauth/provider.js +292 -0
- package/dist/mcp/oauth/provider.js.map +1 -0
- package/dist/mcp/oauth/token-storage.d.ts +42 -0
- package/dist/mcp/oauth/token-storage.d.ts.map +1 -0
- package/dist/mcp/oauth/token-storage.js +121 -0
- package/dist/mcp/oauth/token-storage.js.map +1 -0
- package/dist/mcp/permissions.d.ts +28 -0
- package/dist/mcp/permissions.d.ts.map +1 -0
- package/dist/mcp/permissions.js +105 -0
- package/dist/mcp/permissions.js.map +1 -0
- package/dist/mcp/registry.d.ts +150 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +334 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/resources.d.ts +7 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +40 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/tool-bridge.d.ts +16 -0
- package/dist/mcp/tool-bridge.d.ts.map +1 -0
- package/dist/mcp/tool-bridge.js +56 -0
- package/dist/mcp/tool-bridge.js.map +1 -0
- package/dist/mcp/trust.d.ts +31 -0
- package/dist/mcp/trust.d.ts.map +1 -0
- package/dist/mcp/trust.js +103 -0
- package/dist/mcp/trust.js.map +1 -0
- package/dist/mcp/types.d.ts +73 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +13 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/permissions/index.d.ts +1 -1
- package/dist/permissions/index.d.ts.map +1 -1
- package/dist/permissions/index.js +10 -4
- package/dist/permissions/index.js.map +1 -1
- package/dist/permissions/session-store.d.ts +79 -17
- package/dist/permissions/session-store.d.ts.map +1 -1
- package/dist/permissions/session-store.js +298 -38
- package/dist/permissions/session-store.js.map +1 -1
- package/dist/plugins/consent.d.ts +87 -0
- package/dist/plugins/consent.d.ts.map +1 -0
- package/dist/plugins/consent.js +181 -0
- package/dist/plugins/consent.js.map +1 -0
- package/dist/plugins/enable-state.d.ts +34 -0
- package/dist/plugins/enable-state.d.ts.map +1 -0
- package/dist/plugins/enable-state.js +159 -0
- package/dist/plugins/enable-state.js.map +1 -0
- package/dist/plugins/installer.d.ts +64 -0
- package/dist/plugins/installer.d.ts.map +1 -0
- package/dist/plugins/installer.js +416 -0
- package/dist/plugins/installer.js.map +1 -0
- package/dist/plugins/integration.d.ts +91 -0
- package/dist/plugins/integration.d.ts.map +1 -0
- package/dist/plugins/integration.js +233 -0
- package/dist/plugins/integration.js.map +1 -0
- package/dist/plugins/loader.d.ts +69 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +243 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manifest.d.ts +23 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +143 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/marketplace.d.ts +103 -0
- package/dist/plugins/marketplace.d.ts.map +1 -0
- package/dist/plugins/marketplace.js +532 -0
- package/dist/plugins/marketplace.js.map +1 -0
- package/dist/plugins/paths.d.ts +44 -0
- package/dist/plugins/paths.d.ts.map +1 -0
- package/dist/plugins/paths.js +89 -0
- package/dist/plugins/paths.js.map +1 -0
- package/dist/plugins/refresh.d.ts +61 -0
- package/dist/plugins/refresh.d.ts.map +1 -0
- package/dist/plugins/refresh.js +98 -0
- package/dist/plugins/refresh.js.map +1 -0
- package/dist/plugins/registry.d.ts +40 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +80 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +225 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +16 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/user-config.d.ts +22 -0
- package/dist/plugins/user-config.d.ts.map +1 -0
- package/dist/plugins/user-config.js +96 -0
- package/dist/plugins/user-config.js.map +1 -0
- package/dist/skills/loader.d.ts +19 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +197 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/registry.d.ts +74 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +136 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/settings.d.ts +13 -0
- package/dist/skills/settings.d.ts.map +1 -0
- package/dist/skills/settings.js +100 -0
- package/dist/skills/settings.js.map +1 -0
- package/dist/tools/activate-skill.d.ts +5 -0
- package/dist/tools/activate-skill.d.ts.map +1 -0
- package/dist/tools/activate-skill.js +33 -0
- package/dist/tools/activate-skill.js.map +1 -0
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/shell-utils.d.ts.map +1 -1
- package/dist/tools/shell-utils.js +157 -6
- package/dist/tools/shell-utils.js.map +1 -1
- package/dist/tools/todo-write.d.ts +1 -1
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +2 -1
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/types/index.d.ts +46 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils.d.ts +23 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +76 -20
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +47 -0
- package/dist/version.js.map +1 -0
- package/package.json +2 -1
package/dist/utils.js
CHANGED
|
@@ -5,8 +5,17 @@ import os from 'node:os';
|
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
/** Project-local config directory name */
|
|
7
7
|
export const XCODE_DIR = '.x-code';
|
|
8
|
-
/**
|
|
9
|
-
|
|
8
|
+
/** User-scope config directory (~/.x-code). Frozen at module load — use
|
|
9
|
+
* {@link userXcodeDir} when you want the `X_CODE_HOME` override applied. */
|
|
10
|
+
export const USER_XCODE_DIR = path.join(os.homedir(), '.x-code');
|
|
11
|
+
/** Resolve the user-scope config root at CALL TIME, honouring `X_CODE_HOME`.
|
|
12
|
+
* Use this in path helpers across the codebase so a single env var can
|
|
13
|
+
* reroute everything that lives under `~/.x-code/` for sandbox testing
|
|
14
|
+
* or per-user isolation. Falling back to the frozen {@link USER_XCODE_DIR}
|
|
15
|
+
* keeps the normal case allocation-free. */
|
|
16
|
+
export function userXcodeDir() {
|
|
17
|
+
return process.env.X_CODE_HOME ?? USER_XCODE_DIR;
|
|
18
|
+
}
|
|
10
19
|
// ── Debug log (shared by core + cli) ────────────────────────────────────
|
|
11
20
|
// Turn on with `DEBUG_STDOUT=1`. Writes to ~/.x-code/logs/debug.log so a
|
|
12
21
|
// globally-installed CLI doesn't pollute the user's project tree and so
|
|
@@ -44,7 +53,7 @@ const MAX_LOG_BYTES = 10 * 1024 * 1024;
|
|
|
44
53
|
* payloads in full. Typical lines are <200 bytes, so the realistic per-
|
|
45
54
|
* file count is in the tens of thousands. */
|
|
46
55
|
const MAX_LINE_BYTES = 1024;
|
|
47
|
-
const LOG_DIR = path.join(
|
|
56
|
+
const LOG_DIR = path.join(USER_XCODE_DIR, 'logs');
|
|
48
57
|
const LOG_FILE = path.join(LOG_DIR, 'debug.log');
|
|
49
58
|
const LOG_FILE_OLD = path.join(LOG_DIR, 'debug.log.1');
|
|
50
59
|
/** In-memory byte counter for the active file. Avoids a statSync on every
|
|
@@ -84,30 +93,65 @@ function rotateIfNeeded(nextWriteBytes) {
|
|
|
84
93
|
/* no previous rotation — fine */
|
|
85
94
|
}
|
|
86
95
|
fsSync.renameSync(LOG_FILE, LOG_FILE_OLD);
|
|
96
|
+
// Rename succeeded — the active file is gone, the new one will be
|
|
97
|
+
// freshly opened by ensureLogReady() with byte count 0.
|
|
98
|
+
currentLogBytes = 0;
|
|
87
99
|
}
|
|
88
100
|
catch {
|
|
89
|
-
// Rotation failed (file locked, FS full,
|
|
90
|
-
//
|
|
91
|
-
//
|
|
101
|
+
// Rotation failed (file locked on Windows, FS full, permission
|
|
102
|
+
// error, etc.). The active file is still on disk at its old size —
|
|
103
|
+
// resetting `currentLogBytes = 0` here would desync the in-memory
|
|
104
|
+
// counter from reality and the next rotation wouldn't fire until
|
|
105
|
+
// ANOTHER MAX_LOG_BYTES had been appended (file ~2× cap before
|
|
106
|
+
// we try again). Use the -1 sentinel so ensureLogReady() re-stats
|
|
107
|
+
// the file and resumes accurate accounting.
|
|
108
|
+
currentLogBytes = -1;
|
|
92
109
|
}
|
|
93
|
-
currentLogBytes = 0;
|
|
94
110
|
}
|
|
95
111
|
/** Truncate `s` to at most `maxBytes` UTF-8 bytes, appending a marker noting
|
|
96
112
|
* how many bytes were dropped. The cheap `length * 4` upper bound short-
|
|
97
113
|
* circuits the common ASCII case (most debug content) without paying for
|
|
98
|
-
* Buffer.byteLength on every line.
|
|
99
|
-
|
|
114
|
+
* Buffer.byteLength on every line.
|
|
115
|
+
*
|
|
116
|
+
* Slicing happens in BYTES, not JS chars: `s.slice(0, n)` would walk
|
|
117
|
+
* UTF-16 code units, so for CJK / emoji content it'd return ~3-4× the
|
|
118
|
+
* intended byte budget — debug lines mixing Chinese / Japanese / emoji
|
|
119
|
+
* would routinely overflow MAX_LINE_BYTES. We encode once, byte-slice,
|
|
120
|
+
* then re-decode (TextDecoder turns a cut-mid-codepoint tail into U+FFFD
|
|
121
|
+
* which the truncation marker absorbs).
|
|
122
|
+
*/
|
|
123
|
+
export function truncateForLog(s, maxBytes) {
|
|
100
124
|
if (s.length * 4 <= maxBytes)
|
|
101
125
|
return s;
|
|
102
|
-
|
|
126
|
+
const buf = Buffer.from(s, 'utf8');
|
|
127
|
+
if (buf.length <= maxBytes)
|
|
103
128
|
return s;
|
|
104
129
|
const sliceLen = Math.max(0, maxBytes - 64);
|
|
105
|
-
const truncated =
|
|
106
|
-
const
|
|
107
|
-
return `${truncated}…<+${
|
|
130
|
+
const truncated = new TextDecoder('utf-8').decode(buf.subarray(0, sliceLen));
|
|
131
|
+
const droppedBytes = buf.length - sliceLen;
|
|
132
|
+
return `${truncated}…<+${droppedBytes}b truncated>`;
|
|
133
|
+
}
|
|
134
|
+
/** Narrow opt-in: when set by the CLI's `--plugin-debug` flag (or
|
|
135
|
+
* `XC_PLUGIN_DEBUG=1`), debugLog also mirrors lines tagged with one of
|
|
136
|
+
* the plugin-related prefixes to stderr, so the user can watch plugin
|
|
137
|
+
* / hook / marketplace activity live without `DEBUG_STDOUT=1`'s firehose.
|
|
138
|
+
* Kept as module state instead of an arg to debugLog so existing call
|
|
139
|
+
* sites don't need touching. */
|
|
140
|
+
let pluginDebugMirror = false;
|
|
141
|
+
const PLUGIN_DEBUG_TAG_PREFIXES = ['plugins.', 'plugin.', 'hooks.', 'marketplace.'];
|
|
142
|
+
export function setPluginDebugMirror(enabled) {
|
|
143
|
+
pluginDebugMirror = enabled;
|
|
144
|
+
}
|
|
145
|
+
function isPluginRelatedTag(tag) {
|
|
146
|
+
for (const p of PLUGIN_DEBUG_TAG_PREFIXES) {
|
|
147
|
+
if (tag.startsWith(p))
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
108
151
|
}
|
|
109
152
|
export function debugLog(tag, content) {
|
|
110
|
-
|
|
153
|
+
const mirrorToStderr = pluginDebugMirror && isPluginRelatedTag(tag);
|
|
154
|
+
if (!DEBUG && !mirrorToStderr)
|
|
111
155
|
return;
|
|
112
156
|
try {
|
|
113
157
|
const safeContent = truncateForLog(content, MAX_LINE_BYTES);
|
|
@@ -116,12 +160,24 @@ export function debugLog(tag, content) {
|
|
|
116
160
|
// lands on ONE line in the log — much easier to grep across turns,
|
|
117
161
|
// and multi-line text-deltas don't visually merge with neighbours.
|
|
118
162
|
const line = `[${ts}] ${tag} ${JSON.stringify(safeContent)}\n`;
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
163
|
+
if (DEBUG) {
|
|
164
|
+
const bytes = Buffer.byteLength(line, 'utf8');
|
|
165
|
+
rotateIfNeeded(bytes);
|
|
166
|
+
ensureLogReady();
|
|
167
|
+
if (logFd !== null) {
|
|
168
|
+
fsSync.writeSync(logFd, line);
|
|
169
|
+
currentLogBytes += bytes;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (mirrorToStderr) {
|
|
173
|
+
// Use the raw fd to avoid Node's stderr stream buffering — we want
|
|
174
|
+
// each line to appear immediately even if the agent loop is busy.
|
|
175
|
+
try {
|
|
176
|
+
fsSync.writeSync(2, line);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// stderr write failure shouldn't crash the agent
|
|
180
|
+
}
|
|
125
181
|
}
|
|
126
182
|
}
|
|
127
183
|
catch {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,0CAA0C;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAA;AAElC
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,0CAA0C;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAA;AAElC;6EAC6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;AAEhE;;;;6CAI6C;AAC7C,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,cAAc,CAAA;AAClD,CAAC;AAED,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,mEAAmE;AACnE,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,kEAAkE;AAClE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAA;AAC9C;;;;gCAIgC;AAChC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACtC;;;;;8CAK8C;AAC9C,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;AAEtD;4EAC4E;AAC5E,IAAI,eAAe,GAAG,CAAC,CAAC,CAAA;AACxB,IAAI,KAAK,GAAkB,IAAI,CAAA;AAE/B,SAAS,cAAc;IACrB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAM;IAC1B,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,eAAe,GAAG,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,cAAc,CAAC,cAAsB;IAC5C,IAAI,eAAe,GAAG,cAAc,GAAG,aAAa;QAAE,OAAM;IAC5D,IAAI,CAAC;QACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACvB,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;QACD,kEAAkE;QAClE,iEAAiE;QACjE,kCAAkC;QAClC,IAAI,CAAC;YACH,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACzC,kEAAkE;QAClE,wDAAwD;QACxD,eAAe,GAAG,CAAC,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,+DAA+D;QAC/D,kEAAkE;QAClE,4CAA4C;QAC5C,eAAe,GAAG,CAAC,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,CAAS,EAAE,QAAgB;IACxD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,CAAA;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAA;IAC1C,OAAO,GAAG,SAAS,MAAM,YAAY,cAAc,CAAA;AACrD,CAAC;AAED;;;;;iCAKiC;AACjC,IAAI,iBAAiB,GAAG,KAAK,CAAA;AAC7B,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAA;AAEnF,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,iBAAiB,GAAG,OAAO,CAAA;AAC7B,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,KAAK,MAAM,CAAC,IAAI,yBAAyB,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAe;IACnD,MAAM,cAAc,GAAG,iBAAiB,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACnE,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc;QAAE,OAAM;IACrC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAC3D,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QACnC,qEAAqE;QACrE,mEAAmE;QACnE,mEAAmE;QACnE,MAAM,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAA;QAC9D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,cAAc,EAAE,CAAA;YAChB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC7B,eAAe,IAAI,KAAK,CAAA;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,mEAAmE;YACnE,kEAAkE;YAClE,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,OAAO,QAAmB,CAAA"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// @x-code-cli/core — Runtime-resolved package version.
|
|
2
|
+
//
|
|
3
|
+
// Core is built via `tsc -b` (no bundler) so we can't use a build-time
|
|
4
|
+
// define like the CLI does. Instead we walk up from `import.meta.url`
|
|
5
|
+
// looking for the nearest `@x-code-cli/*` package.json and read its
|
|
6
|
+
// `version` field.
|
|
7
|
+
//
|
|
8
|
+
// Two cases this needs to handle:
|
|
9
|
+
//
|
|
10
|
+
// 1. Dev / unbundled — core's compiled files live at
|
|
11
|
+
// `<core>/dist/**/*.js`; walking up finds `<core>/package.json`
|
|
12
|
+
// (name = `@x-code-cli/core`).
|
|
13
|
+
// 2. Bundled CLI — the CLI esbuilds core's source into one
|
|
14
|
+
// `<cli>/dist/cli.js`. `import.meta.url` points into that bundle,
|
|
15
|
+
// so the nearest package.json is `<cli>/package.json`
|
|
16
|
+
// (name = `@x-code-cli/cli`).
|
|
17
|
+
//
|
|
18
|
+
// `core` and `cli` are released in lockstep by `scripts/release.mjs`,
|
|
19
|
+
// so either match yields the right version.
|
|
20
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
21
|
+
import { dirname, join } from 'node:path';
|
|
22
|
+
import { fileURLToPath } from 'node:url';
|
|
23
|
+
const FALLBACK_VERSION = '0.0.0-dev';
|
|
24
|
+
function resolveVersion() {
|
|
25
|
+
try {
|
|
26
|
+
let dir = dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
for (let i = 0; i < 8; i++) {
|
|
28
|
+
const pkgPath = join(dir, 'package.json');
|
|
29
|
+
if (existsSync(pkgPath)) {
|
|
30
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
31
|
+
if ((pkg.name === '@x-code-cli/core' || pkg.name === '@x-code-cli/cli') && pkg.version) {
|
|
32
|
+
return pkg.version;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const parent = dirname(dir);
|
|
36
|
+
if (parent === dir)
|
|
37
|
+
break;
|
|
38
|
+
dir = parent;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// fall through
|
|
43
|
+
}
|
|
44
|
+
return FALLBACK_VERSION;
|
|
45
|
+
}
|
|
46
|
+
export const VERSION = resolveVersion();
|
|
47
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,mBAAmB;AACnB,EAAE;AACF,kCAAkC;AAClC,EAAE;AACF,qDAAqD;AACrD,mEAAmE;AACnE,kCAAkC;AAClC,2DAA2D;AAC3D,qEAAqE;AACrE,yDAAyD;AACzD,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAEpC,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAwC,CAAA;gBAC7F,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACvF,OAAO,GAAG,CAAC,OAAO,CAAA;gBACpB,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAK;YACzB,GAAG,GAAG,MAAM,CAAA;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@x-code-cli/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/woai3c/x-code-cli",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@ai-sdk/openai": "^3.0.0",
|
|
29
29
|
"@ai-sdk/openai-compatible": "^2.0.0",
|
|
30
30
|
"@ai-sdk/xai": "^3.0.0",
|
|
31
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
31
32
|
"@tavily/core": "^0.7.0",
|
|
32
33
|
"@vscode/ripgrep": "^1.17.0",
|
|
33
34
|
"ai": "^6.0.0",
|