@atlasharness/atlascode 0.1.87 → 0.1.88
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/README.md +2 -0
- package/dist/cli.js +60 -39
- package/package.json +13 -2
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
(OpenAI-protocol 静态键车道,任意 OpenAI-compatible 端点)与国产平台工具链预留
|
|
6
6
|
(Ascend NPU 域包为可插拔叠加层,W6 起接入)。
|
|
7
7
|
|
|
8
|
+
> 项目主页:<https://www.atlaswork.cn/>(Atlas 全栈 AI 工作站)
|
|
9
|
+
|
|
8
10
|
> 版本现状:v0.1.x 持续发布(npm `@atlasharness/atlascode` live,P-1 远端仓已解除,
|
|
9
11
|
> 见 `docs/roadmap-domestic-and-residuals.md`)。
|
|
10
12
|
|
package/dist/cli.js
CHANGED
|
@@ -207318,10 +207318,18 @@ function isModifierPressed(modifier) {
|
|
|
207318
207318
|
if (process.platform !== "darwin") {
|
|
207319
207319
|
return false;
|
|
207320
207320
|
}
|
|
207321
|
-
|
|
207322
|
-
|
|
207321
|
+
try {
|
|
207322
|
+
const { isModifierPressed: nativeIsModifierPressed } = __require("modifiers-napi");
|
|
207323
|
+
return nativeIsModifierPressed(modifier);
|
|
207324
|
+
} catch (error) {
|
|
207325
|
+
logForDebugging3(`modifiers-napi unavailable, modifier "${modifier}" query degraded to false: ${String(error)}`);
|
|
207326
|
+
return false;
|
|
207327
|
+
}
|
|
207323
207328
|
}
|
|
207324
207329
|
var prewarmed = false;
|
|
207330
|
+
var init_modifiers = __esm(() => {
|
|
207331
|
+
init_debug();
|
|
207332
|
+
});
|
|
207325
207333
|
|
|
207326
207334
|
// src/tui/hooks/useTextInput.ts
|
|
207327
207335
|
function mapInput(input_map) {
|
|
@@ -207687,6 +207695,7 @@ var init_useTextInput = __esm(() => {
|
|
|
207687
207695
|
init_Cursor();
|
|
207688
207696
|
init_env2();
|
|
207689
207697
|
init_fullscreen();
|
|
207698
|
+
init_modifiers();
|
|
207690
207699
|
init_useDoublePress();
|
|
207691
207700
|
});
|
|
207692
207701
|
|
|
@@ -490781,6 +490790,17 @@ var init_ascendDoctor = __esm(() => {
|
|
|
490781
490790
|
"",
|
|
490782
490791
|
"Classify the fault from evidence, then route to the matching specialized skill.",
|
|
490783
490792
|
"",
|
|
490793
|
+
"## Step 0 — Skill source freshness check (run FIRST, before the routing table)",
|
|
490794
|
+
"",
|
|
490795
|
+
'Your FIRST tool call in this skill must be AscendSkillSourceCheck (action "check", source "agent-skills"). Do not call any routed skill, and do not answer from the routing table, until Step 0 returns a verdict.',
|
|
490796
|
+
"",
|
|
490797
|
+
"Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot.",
|
|
490798
|
+
"",
|
|
490799
|
+
'1. Run AscendSkillSourceCheck (action "check", source "agent-skills") FIRST, before routing anywhere below.',
|
|
490800
|
+
`2. If the verdict is drift: run AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
490801
|
+
"3. If the verdict is fresh (or the step-2 update succeeded): proceed to route.",
|
|
490802
|
+
`4. If the verdict is unreachable or killed, or the update is refused (non-fast-forward / integrity failure): do NOT route on the local snapshot. Report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
490803
|
+
"",
|
|
490784
490804
|
"## Routing table",
|
|
490785
490805
|
"",
|
|
490786
490806
|
"Pick the route from the classification below. Route — do not re-derive the routed skill's methodology here.",
|
|
@@ -490825,15 +490845,7 @@ var init_ascendDoctor = __esm(() => {
|
|
|
490825
490845
|
"- This umbrella ROUTES only. The routed skill owns its methodology; do not copy or substitute it here.",
|
|
490826
490846
|
'- If a routed skill is missing (marketplace entry not installed / install failed), follow its "suggest install" guidance (install via the plugin marketplace) and never fabricate its content.',
|
|
490827
490847
|
"- Route targets are a fixed table in code; remote content updates never rewrite this routing logic.",
|
|
490828
|
-
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
490829
|
-
"",
|
|
490830
|
-
"## Step 0 — Skill source freshness check",
|
|
490831
|
-
"",
|
|
490832
|
-
'Before routing anywhere below, call the AscendSkillSourceCheck tool (action "check", source "agent-skills") and act on its verdict:',
|
|
490833
|
-
"- fresh — proceed to route.",
|
|
490834
|
-
`- drift — call AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
490835
|
-
`- unreachable, killed, or an update refused (non-fast-forward / integrity failure) — do NOT route on the local snapshot: report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
490836
|
-
"- Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot."
|
|
490848
|
+
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
490837
490849
|
].join(`
|
|
490838
490850
|
`);
|
|
490839
490851
|
});
|
|
@@ -490887,6 +490899,17 @@ var init_ascendOptimism = __esm(() => {
|
|
|
490887
490899
|
"",
|
|
490888
490900
|
"Route to the operator / model / implementation level, then orchestrate across layers.",
|
|
490889
490901
|
"",
|
|
490902
|
+
"## Step 0 — Skill source freshness check (run FIRST, before the routing table)",
|
|
490903
|
+
"",
|
|
490904
|
+
'Your FIRST tool call in this skill must be AscendSkillSourceCheck (action "check", source "agent-skills"). Do not call any routed skill, and do not answer from the routing table, until Step 0 returns a verdict.',
|
|
490905
|
+
"",
|
|
490906
|
+
"Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot.",
|
|
490907
|
+
"",
|
|
490908
|
+
'1. Run AscendSkillSourceCheck (action "check", source "agent-skills") FIRST, before routing anywhere below.',
|
|
490909
|
+
`2. If the verdict is drift: run AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
490910
|
+
"3. If the verdict is fresh (or the step-2 update succeeded): proceed to route.",
|
|
490911
|
+
`4. If the verdict is unreachable or killed, or the update is refused (non-fast-forward / integrity failure): do NOT route on the local snapshot. Report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
490912
|
+
"",
|
|
490890
490913
|
"## Routing table",
|
|
490891
490914
|
"",
|
|
490892
490915
|
"Pick the route from the classification below. Route — do not re-derive the routed skill's methodology here.",
|
|
@@ -490912,15 +490935,7 @@ var init_ascendOptimism = __esm(() => {
|
|
|
490912
490935
|
"- This umbrella ROUTES only. The routed skill owns its methodology; do not copy or substitute it here.",
|
|
490913
490936
|
'- If a routed skill is missing (marketplace entry not installed / install failed), follow its "suggest install" guidance (install via the plugin marketplace) and never fabricate its content.',
|
|
490914
490937
|
"- Route targets are a fixed table in code; remote content updates never rewrite this routing logic.",
|
|
490915
|
-
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
490916
|
-
"",
|
|
490917
|
-
"## Step 0 — Skill source freshness check",
|
|
490918
|
-
"",
|
|
490919
|
-
'Before routing anywhere below, call the AscendSkillSourceCheck tool (action "check", source "agent-skills") and act on its verdict:',
|
|
490920
|
-
"- fresh — proceed to route.",
|
|
490921
|
-
`- drift — call AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
490922
|
-
`- unreachable, killed, or an update refused (non-fast-forward / integrity failure) — do NOT route on the local snapshot: report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
490923
|
-
"- Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot."
|
|
490938
|
+
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
490924
490939
|
].join(`
|
|
490925
490940
|
`);
|
|
490926
490941
|
});
|
|
@@ -490973,6 +490988,17 @@ var init_ascendOpdev = __esm(() => {
|
|
|
490973
490988
|
"",
|
|
490974
490989
|
"Decide the language/framework route first, then hand off to that workflow's skills.",
|
|
490975
490990
|
"",
|
|
490991
|
+
"## Step 0 — Skill source freshness check (run FIRST, before the routing table)",
|
|
490992
|
+
"",
|
|
490993
|
+
'Your FIRST tool call in this skill must be AscendSkillSourceCheck (action "check", source "agent-skills"). Do not call any routed skill, and do not answer from the routing table, until Step 0 returns a verdict.',
|
|
490994
|
+
"",
|
|
490995
|
+
"Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot.",
|
|
490996
|
+
"",
|
|
490997
|
+
'1. Run AscendSkillSourceCheck (action "check", source "agent-skills") FIRST, before routing anywhere below.',
|
|
490998
|
+
`2. If the verdict is drift: run AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
490999
|
+
"3. If the verdict is fresh (or the step-2 update succeeded): proceed to route.",
|
|
491000
|
+
`4. If the verdict is unreachable or killed, or the update is refused (non-fast-forward / integrity failure): do NOT route on the local snapshot. Report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
491001
|
+
"",
|
|
490976
491002
|
"## Routing table",
|
|
490977
491003
|
"",
|
|
490978
491004
|
"Pick the route from the classification below. Route — do not re-derive the routed skill's methodology here.",
|
|
@@ -490999,15 +491025,7 @@ var init_ascendOpdev = __esm(() => {
|
|
|
490999
491025
|
"- This umbrella ROUTES only. The routed skill owns its methodology; do not copy or substitute it here.",
|
|
491000
491026
|
'- If a routed skill is missing (marketplace entry not installed / install failed), follow its "suggest install" guidance (install via the plugin marketplace) and never fabricate its content.',
|
|
491001
491027
|
"- Route targets are a fixed table in code; remote content updates never rewrite this routing logic.",
|
|
491002
|
-
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
491003
|
-
"",
|
|
491004
|
-
"## Step 0 — Skill source freshness check",
|
|
491005
|
-
"",
|
|
491006
|
-
'Before routing anywhere below, call the AscendSkillSourceCheck tool (action "check", source "agent-skills") and act on its verdict:',
|
|
491007
|
-
"- fresh — proceed to route.",
|
|
491008
|
-
`- drift — call AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
491009
|
-
`- unreachable, killed, or an update refused (non-fast-forward / integrity failure) — do NOT route on the local snapshot: report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`,
|
|
491010
|
-
"- Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot."
|
|
491028
|
+
"- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses."
|
|
491011
491029
|
].join(`
|
|
491012
491030
|
`);
|
|
491013
491031
|
});
|
|
@@ -492109,7 +492127,8 @@ async function handleUrlSchemeLaunch() {
|
|
|
492109
492127
|
return null;
|
|
492110
492128
|
}
|
|
492111
492129
|
return await handleDeepLinkUri(url);
|
|
492112
|
-
} catch {
|
|
492130
|
+
} catch (error) {
|
|
492131
|
+
logForDebugging3(`url-handler-napi/deepLink launch degraded to null: ${String(error)}`);
|
|
492113
492132
|
return null;
|
|
492114
492133
|
}
|
|
492115
492134
|
}
|
|
@@ -501323,6 +501342,8 @@ function renderUmbrellaSkillMd(def) {
|
|
|
501323
501342
|
"",
|
|
501324
501343
|
def.routesSummary,
|
|
501325
501344
|
"",
|
|
501345
|
+
...def.step0Section ? [def.step0Section] : [],
|
|
501346
|
+
"",
|
|
501326
501347
|
"## Routing table",
|
|
501327
501348
|
"",
|
|
501328
501349
|
"Pick the route from the classification below. Route — do not re-derive the routed skill's methodology here.",
|
|
@@ -501338,9 +501359,6 @@ function renderUmbrellaSkillMd(def) {
|
|
|
501338
501359
|
lines.push("", section);
|
|
501339
501360
|
}
|
|
501340
501361
|
lines.push("", "## Rules", "", "- This umbrella ROUTES only. The routed skill owns its methodology; do not copy or substitute it here.", '- If a routed skill is missing (marketplace entry not installed / install failed), follow its "suggest install" guidance (install via the plugin marketplace) and never fabricate its content.', "- Route targets are a fixed table in code; remote content updates never rewrite this routing logic.", "- Tools return evidence, not decisions — classification comes from evidence (logs, error codes, profiling, golden mismatches), not guesses.");
|
|
501341
|
-
if (def.step0Section) {
|
|
501342
|
-
lines.push("", def.step0Section);
|
|
501343
|
-
}
|
|
501344
501362
|
return lines.join(`
|
|
501345
501363
|
`);
|
|
501346
501364
|
}
|
|
@@ -501348,13 +501366,16 @@ function renderUmbrellaPromptLine(def) {
|
|
|
501348
501366
|
return `- /${def.name} — ${def.enterWhen} ${def.routesSummary}`;
|
|
501349
501367
|
}
|
|
501350
501368
|
var ASCEND_UMBRELLA_STEP0_SECTION = [
|
|
501351
|
-
"## Step 0 — Skill source freshness check",
|
|
501369
|
+
"## Step 0 — Skill source freshness check (run FIRST, before the routing table)",
|
|
501370
|
+
"",
|
|
501371
|
+
'Your FIRST tool call in this skill must be AscendSkillSourceCheck (action "check", source "agent-skills"). Do not call any routed skill, and do not answer from the routing table, until Step 0 returns a verdict.',
|
|
501372
|
+
"",
|
|
501373
|
+
"Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot.",
|
|
501352
501374
|
"",
|
|
501353
|
-
'
|
|
501354
|
-
"-
|
|
501355
|
-
|
|
501356
|
-
|
|
501357
|
-
"- Never skip Step 0 and route straight away. Route targets are a fixed table in code — remote content updates never rewrite this routing logic. In environments where deferred tools are unavailable (e.g. experimental betas disabled), Step 0 cannot pass: defer and never silently answer from the stale snapshot."
|
|
501375
|
+
'1. Run AscendSkillSourceCheck (action "check", source "agent-skills") FIRST, before routing anywhere below.',
|
|
501376
|
+
`2. If the verdict is drift: run AscendSkillSourceCheck again with action "update" (source "agent-skills"); route only after the update succeeds (updatedTo present). Never rewrite the manifest pinned_sha yourself — re-pinning belongs to the maintainers' sync/verify flow.`,
|
|
501377
|
+
"3. If the verdict is fresh (or the step-2 update succeeded): proceed to route.",
|
|
501378
|
+
`4. If the verdict is unreachable or killed, or the update is refused (non-fast-forward / integrity failure): do NOT route on the local snapshot. Report "could not complete the skill-source freshness check/update" together with the tool's error, and defer execution (fail-visible). Continue on the old snapshot only if the user explicitly approves; then state that the answer is based on the stale snapshot, and register the stale continuation by calling AscendSkillSourceCheck (check) again so the drift is logged.`
|
|
501358
501379
|
].join(`
|
|
501359
501380
|
`);
|
|
501360
501381
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlasharness/atlascode",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.88",
|
|
4
4
|
"description": "AtlasCode \u2014 Coding Agent for the domestic computing ecosystem (Ascend NPU + domestic LLM backends)",
|
|
5
|
+
"homepage": "https://www.atlaswork.cn/",
|
|
5
6
|
"bin": {
|
|
6
7
|
"atlas": "dist/cli.js",
|
|
7
8
|
"atlascode": "dist/cli.js"
|
|
@@ -19,7 +20,7 @@
|
|
|
19
20
|
"scripts": {
|
|
20
21
|
"check": "bun run --check src/atlascode/cli.ts",
|
|
21
22
|
"test": "bun test --isolate tests/",
|
|
22
|
-
"build": "bun build src/atlascode/cli.ts --outfile dist/cli.js --target node --external modifiers-napi --external url-handler-napi --external audio-capture-napi --external
|
|
23
|
+
"build": "bun build src/atlascode/cli.ts --outfile dist/cli.js --target node --external modifiers-napi --external url-handler-napi --external audio-capture-napi --external image-processor-napi --external plist --external sharp --external fflate --external cli-highlight --external undici --external @ant/computer-use-input --external @ant/computer-use-swift",
|
|
23
24
|
"dev": "bun run --watch src/atlascode/launcher.ts",
|
|
24
25
|
"lint": "eslint src/",
|
|
25
26
|
"typecheck": "tsc --noEmit",
|
|
@@ -39,11 +40,13 @@
|
|
|
39
40
|
"chalk": "^6.0.0",
|
|
40
41
|
"chokidar": "^5.0.0",
|
|
41
42
|
"cli-boxes": "^4.0.1",
|
|
43
|
+
"cli-highlight": "^2.1.11",
|
|
42
44
|
"code-excerpt": "^4.0.0",
|
|
43
45
|
"diff": "9.0.0",
|
|
44
46
|
"emoji-regex": "^10.6.0",
|
|
45
47
|
"env-paths": "^4.0.0",
|
|
46
48
|
"execa": "^10.0.1",
|
|
49
|
+
"fflate": "^0.8.3",
|
|
47
50
|
"figures": "^6.1.0",
|
|
48
51
|
"fuse.js": "^7.5.0",
|
|
49
52
|
"highlight.js": "^10.7.3",
|
|
@@ -77,6 +80,14 @@
|
|
|
77
80
|
"yaml": "^2.9.0",
|
|
78
81
|
"zod": "^4.5.4"
|
|
79
82
|
},
|
|
83
|
+
"optionalDependencies": {
|
|
84
|
+
"audio-capture-napi": "^0.0.1",
|
|
85
|
+
"image-processor-napi": "^0.0.1",
|
|
86
|
+
"modifiers-napi": "^0.0.1",
|
|
87
|
+
"plist": "^5.0.0",
|
|
88
|
+
"sharp": "^0.35.5",
|
|
89
|
+
"url-handler-napi": "^0.0.1"
|
|
90
|
+
},
|
|
80
91
|
"devDependencies": {
|
|
81
92
|
"@types/bun": "^1.4.0",
|
|
82
93
|
"@types/node": "^20.0.0",
|