@liwu1995/afu-context 0.0.0-stage → 0.1.0
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/LICENSE +201 -0
- package/README.md +109 -2
- package/README.zh-CN.md +79 -0
- package/bin/afu.mjs +53 -0
- package/bin/cache-lease.mjs +16 -0
- package/bin/install-guide.mjs +34 -0
- package/bin/install-process.mjs +19 -0
- package/bin/platform.mjs +69 -0
- package/bin/prebuilt.mjs +64 -0
- package/bin/runtime.mjs +111 -0
- package/package.json +33 -4
- package/platform-dependencies.json +15 -0
- package/platform-locks/dsh/package-lock.json +410 -0
- package/platform-locks/dsh/package.json +16 -0
- package/platform-locks/pi/package-lock.json +1789 -0
- package/platform-locks/pi/package.json +9 -0
- package/python/afu_context_local-0.1.0-py3-none-any.whl +0 -0
- package/python/constraints.txt +22 -0
- package/release.json +6 -0
- package/scripts/dsh-overlay.mjs +63 -0
- package/scripts/dsh-presets.mjs +49 -0
- package/scripts/dsh-web-probe.mjs +14 -0
- package/src/afu_host_integrations/dsh/dist/index.js +400 -0
- package/src/afu_host_integrations/pi/dist/index.js +272 -0
- package/src/afu_host_integrations/shared/runtime-client/dist/host-worker.js +157 -0
- package/src/afu_host_integrations/shared/runtime-client/dist/index.js +218 -0
- package/src/afu_host_integrations/shared/runtime-client/dist/prefix.js +12 -0
- package/src/afu_host_integrations/shared/runtime-client/dist/protocol.js +66 -0
- package/src/afu_host_integrations/shared/runtime-client/dist/telemetry.js +58 -0
package/bin/prebuilt.mjs
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** Release-owned platform packs, copied only after manifest verification. */
|
|
2
|
+
import {createRequire} from 'node:module';
|
|
3
|
+
import {readFileSync,existsSync,lstatSync,realpathSync,readdirSync,mkdirSync,mkdtempSync,renameSync,rmSync,writeFileSync} from 'node:fs';
|
|
4
|
+
import {join,resolve,sep} from 'node:path';
|
|
5
|
+
import {createHash} from 'node:crypto';
|
|
6
|
+
import {homedir} from 'node:os';
|
|
7
|
+
import {runInstall} from './install-process.mjs';
|
|
8
|
+
export function packName(kind){
|
|
9
|
+
if(!['runtime','pi','dsh'].includes(kind))throw Error('INVALID_PACK_KIND');
|
|
10
|
+
if(!['darwin','linux','win32'].includes(process.platform)||!['arm64','x64'].includes(process.arch))throw Error('UNSUPPORTED_PLATFORM');
|
|
11
|
+
return `@liwu1995/afu-context-${kind}-${process.platform}-${process.arch}`;
|
|
12
|
+
}
|
|
13
|
+
export function verifyPack(folder,manifest,kind){
|
|
14
|
+
const info=JSON.parse(readFileSync(join(folder,'pack-manifest.json'),'utf8'));
|
|
15
|
+
if(info.build!==manifest.build||info.kind!==kind||info.platform!==process.platform||info.arch!==process.arch)throw Error('PLATFORM_PACK_MISMATCH');
|
|
16
|
+
const root=realpathSync(folder);
|
|
17
|
+
const listed=new Set(Object.keys(info.files));
|
|
18
|
+
function walk(dir){for(const entry of readdirSync(dir,{withFileTypes:true})){const file=join(dir,entry.name);if(entry.isDirectory())walk(file);else {const name=file.slice(root.length+1);if(!listed.has(name))throw Error('PACK_UNLISTED_FILE');if(lstatSync(file).isSymbolicLink()&&lstatSync(realpathSync(file)).isDirectory())throw Error('PACK_DIRECTORY_LINK');}}}
|
|
19
|
+
walk(join(root,'payload'));
|
|
20
|
+
// COSEC: signed npm integrity plus per-file release hashes; forbid escaping
|
|
21
|
+
// paths/symlinks before copying any executable into the private runtime.
|
|
22
|
+
for(const [name,hash] of Object.entries(info.files)){
|
|
23
|
+
const file=resolve(root,name);
|
|
24
|
+
if(!file.startsWith(root+sep)||!realpathSync(file).startsWith(root+sep))throw Error('PACK_PATH_ESCAPE');
|
|
25
|
+
const stat=lstatSync(file);
|
|
26
|
+
const actual=createHash('sha256').update(readFileSync(file)).digest('hex');
|
|
27
|
+
if(!stat.isFile()&&!stat.isSymbolicLink()||actual!==hash)throw Error('PACK_INTEGRITY_FAILED');
|
|
28
|
+
}
|
|
29
|
+
if(!info.files['payload/'+(kind==='runtime'?'bin/python3':'package.json')])throw Error('PACK_ENTRY_MISSING');
|
|
30
|
+
return join(folder,'payload');
|
|
31
|
+
}
|
|
32
|
+
export async function obtainPack(root,manifest,kind,env=process.env,onChild=()=>{}){
|
|
33
|
+
const name=packName(kind);let folder;
|
|
34
|
+
if(env.AFU_BUNDLE_DIR)folder=join(resolve(env.AFU_BUNDLE_DIR),name);
|
|
35
|
+
else{
|
|
36
|
+
try{folder=createRequire(join(root,'package.json')).resolve(name+'/package.json').replace(/[/\\]package.json$/,'');}catch{}
|
|
37
|
+
if(!folder){
|
|
38
|
+
const base=resolve(env.AFU_RUNTIME_DIR??join(homedir(),'.local/share/afu-context/runtimes'),'downloads',manifest.build+'-'+kind);
|
|
39
|
+
// COSEC: only release-owned sibling generations can be selected by this pointer.
|
|
40
|
+
let cached=base;
|
|
41
|
+
try{const selected=JSON.parse(readFileSync(base+'.json','utf8')).generation;
|
|
42
|
+
if(typeof selected==='string'&&selected.startsWith(manifest.build+'-'+kind+'-')&&!/[\\/]/.test(selected))cached=join(resolve(base,'..'),selected);
|
|
43
|
+
}catch{}
|
|
44
|
+
try{return verifyPack(join(cached,'node_modules',name),manifest,kind);}catch{}
|
|
45
|
+
mkdirSync(resolve(base,'..'),{recursive:true,mode:0o700});
|
|
46
|
+
const stage=mkdtempSync(base+'-');let committed=false;
|
|
47
|
+
try{
|
|
48
|
+
console.error(`AFU: downloading ${kind} pack for ${process.platform}/${process.arch}`);
|
|
49
|
+
// npm retries transient fetch failures and validates its content-addressed cache.
|
|
50
|
+
await runInstall('npm',['install','--prefix',stage,'--registry=https://registry.npmjs.org','--ignore-scripts','--no-audit','--no-fund','--package-lock=false','--fetch-retries=2','--fetch-retry-mintimeout=1000','--fetch-retry-maxtimeout=5000','--fetch-timeout=30000',name+'@'+manifest.version],env,onChild);
|
|
51
|
+
folder=join(stage,'node_modules',name);
|
|
52
|
+
const payload=verifyPack(folder,manifest,kind);
|
|
53
|
+
const temporary=stage+'.json';
|
|
54
|
+
writeFileSync(temporary,JSON.stringify({generation:stage.slice(resolve(base,'..').length+1)}),{mode:0o600});
|
|
55
|
+
renameSync(temporary,base+'.json');committed=true;
|
|
56
|
+
return payload;
|
|
57
|
+
}finally{
|
|
58
|
+
// Never delete a previously usable pack; only this attempt's unpublished files.
|
|
59
|
+
if(!committed){rmSync(stage,{recursive:true,force:true});rmSync(stage+'.json',{force:true});}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return verifyPack(folder,manifest,kind);
|
|
64
|
+
}
|
package/bin/runtime.mjs
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {obtainPack} from './prebuilt.mjs';
|
|
2
|
+
import {cpSync} from 'node:fs';
|
|
3
|
+
import {runInstall} from './install-process.mjs';
|
|
4
|
+
/** Isolated, recoverable bootstrap. Never touches host integrations. */
|
|
5
|
+
import {spawnSync} from 'node:child_process';
|
|
6
|
+
import {existsSync,mkdirSync,readFileSync,writeFileSync,rmSync,statSync,renameSync} from 'node:fs';
|
|
7
|
+
import {join,resolve,dirname,basename} from 'node:path';
|
|
8
|
+
import {homedir} from 'node:os';
|
|
9
|
+
import {randomUUID} from 'node:crypto';
|
|
10
|
+
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
|
11
|
+
const read=p=>{try{return JSON.parse(readFileSync(p,'utf8'));}catch{return null;}};
|
|
12
|
+
const alive=pid=>{if(!Number.isSafeInteger(pid)||pid<=0)return false;try{process.kill(pid,0);return true;}catch(e){return e.code!=='ESRCH';}};
|
|
13
|
+
export function recoverLock(lock, now=Date.now()) {
|
|
14
|
+
// Serialize recovery contenders inside the old lock. Never steal a living owner.
|
|
15
|
+
const guard=join(lock,'recover');
|
|
16
|
+
let age;
|
|
17
|
+
try{age=now-(statSync(lock).birthtimeMs || statSync(lock).mtimeMs);}catch{return false;}
|
|
18
|
+
try{mkdirSync(guard);writeFileSync(join(guard,'owner.json'),JSON.stringify({pid:process.pid}));}
|
|
19
|
+
catch{
|
|
20
|
+
try {
|
|
21
|
+
const reaper=read(join(guard,'owner.json'));
|
|
22
|
+
if(reaper ? !alive(reaper.pid) : now-statSync(guard).mtimeMs>180000)rmSync(guard,{recursive:true,force:true});
|
|
23
|
+
} catch {}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
let moved=false;
|
|
27
|
+
try{
|
|
28
|
+
const owner=read(join(lock,'owner.json'));
|
|
29
|
+
if(owner && (alive(owner.pid)||alive(owner.childPid)))return false;
|
|
30
|
+
// Missing/partial ownership may be a just-created lock, not a crashed install.
|
|
31
|
+
if(!owner && age<180000)return false;
|
|
32
|
+
const tomb=lock+'.abandoned-'+randomUUID();
|
|
33
|
+
renameSync(lock,tomb);moved=true;rmSync(tomb,{recursive:true,force:true});return true;
|
|
34
|
+
}catch{return false;}finally{if(!moved)rmSync(guard,{recursive:true,force:true});}
|
|
35
|
+
}
|
|
36
|
+
export function runtimeReady(location, build) {
|
|
37
|
+
const marker=read(join(location,'afu-ready.json'));
|
|
38
|
+
const python=join(location,process.platform==='win32'?'Scripts/python.exe':'bin/python');
|
|
39
|
+
if(marker?.build!==build || !existsSync(python))return false;
|
|
40
|
+
// A surviving marker is not proof that imports and the interpreter still work.
|
|
41
|
+
return spawnSync(python,['-c','import afu_context.local_cli, aiohttp, tiktoken'],{stdio:'ignore',timeout:10000}).status===0;
|
|
42
|
+
}
|
|
43
|
+
export async function prepareRuntime(root,manifest,env=process.env) {
|
|
44
|
+
const base=env.AFU_RUNTIME_DIR ?? join(homedir(),'.local/share/afu-context/runtimes');
|
|
45
|
+
const location=join(base,manifest.build), lock=location+'.lock';
|
|
46
|
+
const token=randomUUID();
|
|
47
|
+
const current=()=>{
|
|
48
|
+
const pointer=read(join(base,manifest.build+'.location.json'))?.location;
|
|
49
|
+
// COSEC: a cache pointer may select only this build's sibling repair directories.
|
|
50
|
+
if(typeof pointer==='string' && dirname(resolve(pointer))===resolve(base) && basename(pointer).startsWith(manifest.build+'-repair-'))return pointer;
|
|
51
|
+
return location;
|
|
52
|
+
};
|
|
53
|
+
mkdirSync(base,{recursive:true,mode:0o700});
|
|
54
|
+
if(runtimeReady(current(),manifest.build))return current();
|
|
55
|
+
const deadline=Date.now()+180000;
|
|
56
|
+
while(true){
|
|
57
|
+
try{mkdirSync(lock,{mode:0o700});writeFileSync(join(lock,'owner.json'),JSON.stringify({pid:process.pid,token}),{mode:0o600});break;}
|
|
58
|
+
catch(e){if(e.code!=='EEXIST')throw e;}
|
|
59
|
+
recoverLock(lock);
|
|
60
|
+
if(runtimeReady(current(),manifest.build))return current();
|
|
61
|
+
if(Date.now()>deadline)throw Error('Runtime installation is still owned by another process: '+lock);
|
|
62
|
+
await sleep(300);
|
|
63
|
+
}
|
|
64
|
+
const owns=()=>read(join(lock,'owner.json'))?.token===token;
|
|
65
|
+
const run=async(command,args)=>{
|
|
66
|
+
if(!owns())throw Error('Runtime installation ownership changed');
|
|
67
|
+
try{await runInstall(command,args,env,pid=>writeFileSync(join(lock,'owner.json'),JSON.stringify({pid:process.pid,childPid:pid,token}),{mode:0o600}));}
|
|
68
|
+
finally{if(owns())writeFileSync(join(lock,'owner.json'),JSON.stringify({pid:process.pid,token}),{mode:0o600});}
|
|
69
|
+
};
|
|
70
|
+
let createdTarget;
|
|
71
|
+
try{
|
|
72
|
+
if(runtimeReady(current(),manifest.build))return current();
|
|
73
|
+
if(manifest.prebuilt && process.platform!=='win32'){
|
|
74
|
+
const payload=await obtainPack(root,manifest,'runtime',env,pid=>writeFileSync(join(lock,'owner.json'),JSON.stringify({pid:process.pid,childPid:pid,token}),{mode:0o600}));
|
|
75
|
+
const target=existsSync(location)?location+'-repair-'+randomUUID():location;
|
|
76
|
+
createdTarget=target;
|
|
77
|
+
cpSync(payload,target,{recursive:true,verbatimSymlinks:true});
|
|
78
|
+
const python=join(target,'bin/python');
|
|
79
|
+
await run(python,['-c','import afu_context.local_cli, aiohttp, tiktoken']);
|
|
80
|
+
writeFileSync(join(target,'afu-release.json'),JSON.stringify(manifest),{mode:0o600});
|
|
81
|
+
writeFileSync(join(target,'afu-ready.json'),JSON.stringify({build:manifest.build,cache_protocol:1}),{mode:0o600});
|
|
82
|
+
if(target!==location){const pointer=join(base,manifest.build+'.location.json'),temp=pointer+'.'+token;writeFileSync(temp,JSON.stringify({location:target}),{mode:0o600});renameSync(temp,pointer);}
|
|
83
|
+
return target;
|
|
84
|
+
}
|
|
85
|
+
const choices=env.AFU_PYTHON ? [[env.AFU_PYTHON,[]]] : process.platform==='win32' ? [['py',['-3']],['python',[]]] : [['python3',[]],['python',[]]];
|
|
86
|
+
const selected=choices.find(([cmd,args])=>spawnSync(cmd,[...args,'-c','import sys;sys.exit(sys.version_info<(3,11))'],{stdio:'ignore',timeout:10000}).status===0);
|
|
87
|
+
if(!selected)throw Error('Python 3.11+ is required. Install it or set AFU_PYTHON.');
|
|
88
|
+
// Keep a damaged environment at its old path so existing processes/files are not removed.
|
|
89
|
+
// New preparation uses a fresh directory; the venv must be created at its final path.
|
|
90
|
+
let target=location;
|
|
91
|
+
if(existsSync(location))target=location+'-repair-'+randomUUID();
|
|
92
|
+
const python=join(target,process.platform==='win32'?'Scripts/python.exe':'bin/python');
|
|
93
|
+
createdTarget=target;
|
|
94
|
+
await run(selected[0],[...selected[1],'-m','venv',target]);
|
|
95
|
+
const inputs=['-c',join(root,'python/constraints.txt'),join(root,'python',manifest.wheel)];
|
|
96
|
+
if(spawnSync('uv',['--version'],{stdio:'ignore',timeout:10000}).status===0)await run('uv',['pip','install','--python',python,...inputs]);
|
|
97
|
+
else await run(python,['-m','pip','install','--disable-pip-version-check',...inputs]);
|
|
98
|
+
await run(python,['-c','import afu_context.local_cli, aiohttp, tiktoken']);
|
|
99
|
+
writeFileSync(join(target,'afu-release.json'),JSON.stringify(manifest),{mode:0o600});
|
|
100
|
+
writeFileSync(join(target,'afu-ready.json'),JSON.stringify({build:manifest.build,cache_protocol:1}),{mode:0o600});
|
|
101
|
+
if(target!==location){
|
|
102
|
+
const pointer=join(base,manifest.build+'.location.json');
|
|
103
|
+
const temporary=pointer+'.'+token;
|
|
104
|
+
writeFileSync(temporary,JSON.stringify({location:target}),{mode:0o600});renameSync(temporary,pointer);
|
|
105
|
+
}
|
|
106
|
+
return target;
|
|
107
|
+
}catch(error){
|
|
108
|
+
if(owns()&&createdTarget)rmSync(createdTarget,{recursive:true,force:true});
|
|
109
|
+
throw error;
|
|
110
|
+
}finally{if(owns())rmSync(lock,{recursive:true,force:true});}
|
|
111
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liwu1995/afu-context",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"description": "Local asynchronous context compression and diagnostics",
|
|
7
|
+
"bin": {
|
|
8
|
+
"afu": "bin/afu.mjs"
|
|
9
|
+
},
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": "^22.19.0 || >=24.0.0"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {},
|
|
14
|
+
"files": [
|
|
15
|
+
"platform-dependencies.json",
|
|
16
|
+
"platform-locks",
|
|
17
|
+
"bin",
|
|
18
|
+
"python",
|
|
19
|
+
"src/afu_host_integrations",
|
|
20
|
+
"scripts",
|
|
21
|
+
"release.json",
|
|
22
|
+
"README.md",
|
|
23
|
+
"README.zh-CN.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
26
|
+
"optionalDependencies": {
|
|
27
|
+
"@liwu1995/afu-context-runtime-darwin-arm64": "0.1.0",
|
|
28
|
+
"@liwu1995/afu-context-runtime-linux-x64": "0.1.0"
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public",
|
|
32
|
+
"registry": "https://registry.npmjs.org",
|
|
33
|
+
"tag": "next"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pi": {
|
|
3
|
+
"@earendil-works/pi-coding-agent": "0.84.4"
|
|
4
|
+
},
|
|
5
|
+
"dsh": {
|
|
6
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
7
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
8
|
+
"@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
|
|
9
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
|
|
10
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
11
|
+
"@deepseek-ai/cordis-plugin-include": "1.0.7",
|
|
12
|
+
"js-yaml": "4.3.2",
|
|
13
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.3"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "afu-dsh-runtime",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "afu-dsh-runtime",
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
12
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
13
|
+
"@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
|
|
14
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
|
|
15
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
16
|
+
"@deepseek-ai/cordis-plugin-include": "1.0.7",
|
|
17
|
+
"js-yaml": "4.3.2",
|
|
18
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.3"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"node_modules/@deepseek-ai/cordis-plugin-loader": {
|
|
22
|
+
"version": "1.0.3",
|
|
23
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-loader/-/cordis-plugin-loader-1.0.3.tgz",
|
|
24
|
+
"integrity": "sha512-YNcHiH7TRFrgnRbQU7qdS1spABUFFHg04QpB9DdboPEjgKLTFfeEAvr6Y7qll3/nGgqywDQdk1tYshqKO0p1WQ==",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"peer": true,
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@deepseek-ai/cosmokit": "^1.8.3"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
32
|
+
"node-addon-require-builtin": "^0.1.4"
|
|
33
|
+
},
|
|
34
|
+
"peerDependenciesMeta": {
|
|
35
|
+
"node-addon-require-builtin": {
|
|
36
|
+
"optional": true
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"node_modules/@deepseek-ai/cordis": {
|
|
41
|
+
"version": "4.0.2",
|
|
42
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/cordis/-/cordis-4.0.2.tgz",
|
|
43
|
+
"integrity": "sha512-asOnXP1TzFSFQlHb1iegDZp0z/8WD1c7YNrwJR/Tx2bzNuMXfcekE/I67Iv6SQXeLB4csxqCngzQKANP7gdw0g==",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"peer": true,
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@deepseek-ai/cosmokit": "^1.8.3",
|
|
48
|
+
"@standard-schema/spec": "^1.1.0"
|
|
49
|
+
},
|
|
50
|
+
"bin": {
|
|
51
|
+
"cordis": "bin.js"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
55
|
+
"@deepseek-ai/cordis-plugin-loader": "^1.0.3"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"@deepseek-ai/cordis-plugin-include": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"@deepseek-ai/cordis-plugin-loader": {
|
|
62
|
+
"optional": true
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"node_modules/@deepseek-ai/cordis-plugin-include": {
|
|
67
|
+
"version": "1.0.7",
|
|
68
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/cordis-plugin-include/-/cordis-plugin-include-1.0.7.tgz",
|
|
69
|
+
"integrity": "sha512-bZ4S1YuOmwOeE97HnslQ6ggVQbaWz4GejJ8OcY4P/DIyc1Qhu/3Szt1XSw6c/pd37kRkxxJXGwt4cmCxWSBBuw==",
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"peer": true,
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"@deepseek-ai/cosmokit": "^1.8.3",
|
|
74
|
+
"js-yaml": "^4.1.0"
|
|
75
|
+
},
|
|
76
|
+
"peerDependencies": {
|
|
77
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
78
|
+
"@deepseek-ai/cordis-plugin-loader": "^1.0.3"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"node_modules/js-yaml": {
|
|
82
|
+
"version": "4.3.2",
|
|
83
|
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz",
|
|
84
|
+
"integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==",
|
|
85
|
+
"funding": [
|
|
86
|
+
{
|
|
87
|
+
"type": "github",
|
|
88
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"type": "github",
|
|
92
|
+
"url": "https://github.com/sponsors/nodeca"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"license": "MIT",
|
|
96
|
+
"dependencies": {
|
|
97
|
+
"argparse": "^2.0.1"
|
|
98
|
+
},
|
|
99
|
+
"bin": {
|
|
100
|
+
"js-yaml": "bin/js-yaml.js"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"node_modules/argparse": {
|
|
104
|
+
"version": "2.0.1",
|
|
105
|
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
|
106
|
+
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
|
107
|
+
"license": "Python-2.0"
|
|
108
|
+
},
|
|
109
|
+
"node_modules/@deepseek-ai/cosmokit": {
|
|
110
|
+
"version": "1.8.6",
|
|
111
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/cosmokit/-/cosmokit-1.8.6.tgz",
|
|
112
|
+
"integrity": "sha512-ZSD/fN52L498LBIOYwjIOlaLv5veY6ZEwI2yzvZUKQtctn0QAPqu8tKdJ+OF5+Tv6NBq1U+wJWH+QI6OGy5EvQ==",
|
|
113
|
+
"license": "MIT"
|
|
114
|
+
},
|
|
115
|
+
"node_modules/@standard-schema/spec": {
|
|
116
|
+
"version": "1.1.0",
|
|
117
|
+
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
|
118
|
+
"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
|
|
119
|
+
"license": "MIT"
|
|
120
|
+
},
|
|
121
|
+
"node_modules/@deepseek-ai/dsh-llm": {
|
|
122
|
+
"version": "0.1.2-rc.1",
|
|
123
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm/-/dsh-llm-0.1.2-rc.1.tgz",
|
|
124
|
+
"integrity": "sha512-7VYsha5AXsVLnsAwYJffWXz9bwUbElw8i5N8tlTSdai9Bupk3sMbsotzPf8ZbsuGAxQYErahMwQwgGEu4qZO6g==",
|
|
125
|
+
"license": "MIT",
|
|
126
|
+
"peer": true,
|
|
127
|
+
"dependencies": {
|
|
128
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1",
|
|
129
|
+
"@deepseek-ai/dsh-timeout": "^0.1.2-rc.1",
|
|
130
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.2-rc.1",
|
|
131
|
+
"@deepseek-ai/dsh-util-crypto": "^0.1.2-rc.1",
|
|
132
|
+
"@deepseek-ai/dsh-util-values": "^0.1.2-rc.1",
|
|
133
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
134
|
+
"zod": "^4.4.3"
|
|
135
|
+
},
|
|
136
|
+
"peerDependencies": {
|
|
137
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"node_modules/zod": {
|
|
141
|
+
"version": "4.6.7",
|
|
142
|
+
"resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz",
|
|
143
|
+
"integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==",
|
|
144
|
+
"license": "MIT",
|
|
145
|
+
"funding": {
|
|
146
|
+
"url": "https://github.com/sponsors/colinhacks"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"node_modules/@deepseek-ai/schemastery": {
|
|
150
|
+
"version": "3.18.5",
|
|
151
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/schemastery/-/schemastery-3.18.5.tgz",
|
|
152
|
+
"integrity": "sha512-Mnobvqf9rHsZYv4g5edj5ddxS1oF1kIdSlz0DunUgnY3LWG5F26MqvH3YOOsSaodCgyzJ16OMN9O99/s5Crtdw==",
|
|
153
|
+
"license": "MIT",
|
|
154
|
+
"dependencies": {
|
|
155
|
+
"@deepseek-ai/cosmokit": "~1.8.6",
|
|
156
|
+
"@standard-schema/spec": "^1.1.0"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"node_modules/@deepseek-ai/dsh-util-values": {
|
|
160
|
+
"version": "0.1.2-rc.1",
|
|
161
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-values/-/dsh-util-values-0.1.2-rc.1.tgz",
|
|
162
|
+
"integrity": "sha512-FQdgoK+KYVR0pBQb9fTsajvGb3gzUxEzJQEYnFOt+Qdwc4nkxJOPwJJdIvXuqvZaQ33DaOoqpnpcr2p5HpLu4g==",
|
|
163
|
+
"license": "MIT",
|
|
164
|
+
"peerDependencies": {
|
|
165
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"node_modules/@deepseek-ai/dsh-util-crypto": {
|
|
169
|
+
"version": "0.1.2-rc.1",
|
|
170
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-util-crypto/-/dsh-util-crypto-0.1.2-rc.1.tgz",
|
|
171
|
+
"integrity": "sha512-gE8FznQ1hkknw9QMrHNSlm3UEyRYuj3MLVvlJ6NyH1kmOsdjnbrVbSs+Pn72k2oIV4Fiyu3Umg0sLznUEcsiXw==",
|
|
172
|
+
"license": "MIT",
|
|
173
|
+
"peerDependencies": {
|
|
174
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"node_modules/@deepseek-ai/dsh-typert-protocol": {
|
|
178
|
+
"version": "0.1.2-rc.1",
|
|
179
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-typert-protocol/-/dsh-typert-protocol-0.1.2-rc.1.tgz",
|
|
180
|
+
"integrity": "sha512-vBWD0NpriPd96ltbWaAw+iKeWFIEjiAcCWYtmqEcV1Ms+FaV02usjjm7LCmhSQhMZpBSBc7EZUX0spGlpjI1bA==",
|
|
181
|
+
"license": "MIT",
|
|
182
|
+
"peer": true,
|
|
183
|
+
"peerDependencies": {
|
|
184
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"node_modules/@deepseek-ai/dsh-timeout": {
|
|
188
|
+
"version": "0.1.2-rc.1",
|
|
189
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-timeout/-/dsh-timeout-0.1.2-rc.1.tgz",
|
|
190
|
+
"integrity": "sha512-llz11yxWeJB8suKCa6hRLjNBWVaPn3Fbd0XoBS0bkZLhPFzO1mDorx/XMca2GhI7XF9A86CURQcDt+aGjjvqJA==",
|
|
191
|
+
"license": "MIT",
|
|
192
|
+
"peer": true,
|
|
193
|
+
"peerDependencies": {
|
|
194
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"node_modules/@deepseek-ai/dsh-brand": {
|
|
198
|
+
"version": "0.1.2-rc.1",
|
|
199
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-brand/-/dsh-brand-0.1.2-rc.1.tgz",
|
|
200
|
+
"integrity": "sha512-y2RHIag3kzLdY8kTBuSUSTsKzWPscJrysNObXTiNM7stXLpa3jXpshsB1caqGzNx50vYcmHeN1gFVECgx3NZHg==",
|
|
201
|
+
"license": "MIT",
|
|
202
|
+
"peer": true,
|
|
203
|
+
"peerDependencies": {
|
|
204
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
"node_modules/@deepseek-ai/dsh-compaction-basic": {
|
|
208
|
+
"version": "0.1.2-rc.1",
|
|
209
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction-basic/-/dsh-compaction-basic-0.1.2-rc.1.tgz",
|
|
210
|
+
"integrity": "sha512-x4HEQ4hiPwHE5nljFXsVzG8nOVnEQIwmIxVB9csnWyKcika6yoAGPujeFcGdZKoMPiADt2JglO8fLuAj3ROCXg==",
|
|
211
|
+
"license": "MIT",
|
|
212
|
+
"peer": true,
|
|
213
|
+
"dependencies": {
|
|
214
|
+
"@deepseek-ai/dsh-util-values": "^0.1.2-rc.1",
|
|
215
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
216
|
+
},
|
|
217
|
+
"peerDependencies": {
|
|
218
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
219
|
+
"@deepseek-ai/dsh-agent": "^0.1.2-rc.1",
|
|
220
|
+
"@deepseek-ai/dsh-commands": "^0.1.2-rc.1",
|
|
221
|
+
"@deepseek-ai/dsh-compaction": "^0.1.2-rc.1",
|
|
222
|
+
"@deepseek-ai/dsh-compaction-tool-result-pruner": "^0.1.2-rc.1",
|
|
223
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
224
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
225
|
+
"@deepseek-ai/dsh-token-meter": "^0.1.2-rc.1"
|
|
226
|
+
},
|
|
227
|
+
"peerDependenciesMeta": {
|
|
228
|
+
"@deepseek-ai/dsh-compaction-tool-result-pruner": {
|
|
229
|
+
"optional": true
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
"node_modules/@deepseek-ai/dsh-token-meter": {
|
|
234
|
+
"version": "0.1.2-rc.1",
|
|
235
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-token-meter/-/dsh-token-meter-0.1.2-rc.1.tgz",
|
|
236
|
+
"integrity": "sha512-6mlC89JNGudPvR9LekEo2mnEo/DXf60ZjekIKXxZqpf66AOQ2/pa2HJuFikEd9WWRvu2D96Qvx3rILxi1vXVww==",
|
|
237
|
+
"license": "MIT",
|
|
238
|
+
"peer": true,
|
|
239
|
+
"dependencies": {
|
|
240
|
+
"@deepseek-ai/dsh-util-values": "^0.1.2-rc.1",
|
|
241
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
242
|
+
"zod": "^4.4.3"
|
|
243
|
+
},
|
|
244
|
+
"peerDependencies": {
|
|
245
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
246
|
+
"@deepseek-ai/dsh-compaction": "^0.1.2-rc.1",
|
|
247
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
248
|
+
"@deepseek-ai/dsh-llm-retry": "^0.1.2-rc.1",
|
|
249
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
250
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.2-rc.1"
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"node_modules/@deepseek-ai/dsh-session-projection": {
|
|
254
|
+
"version": "0.1.2-rc.1",
|
|
255
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session-projection/-/dsh-session-projection-0.1.2-rc.1.tgz",
|
|
256
|
+
"integrity": "sha512-qVWlIzPm4u9vzQ5G/QtE6jeSJ3b3b42hWVJj664BurEZlHbAfdqkhYc1QsoBU+5k5kUEJFHh07z8HxuXA9kTnQ==",
|
|
257
|
+
"license": "MIT",
|
|
258
|
+
"peer": true,
|
|
259
|
+
"dependencies": {
|
|
260
|
+
"zod": "^4.4.3"
|
|
261
|
+
},
|
|
262
|
+
"peerDependencies": {
|
|
263
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
264
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"node_modules/@deepseek-ai/dsh-session": {
|
|
268
|
+
"version": "0.1.2-rc.1",
|
|
269
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-session/-/dsh-session-0.1.2-rc.1.tgz",
|
|
270
|
+
"integrity": "sha512-jRGNPTbQcvIx1F2MVmmkoiHLgpC3Btqo1wkl/3JDLlOWRVWKOuaC+5fQiMrFPOYfno6YiX/c2UvmA0td8qB92w==",
|
|
271
|
+
"license": "MIT",
|
|
272
|
+
"peer": true,
|
|
273
|
+
"dependencies": {
|
|
274
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1",
|
|
275
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
276
|
+
"@deepseek-ai/dsh-util-values": "^0.1.2-rc.1"
|
|
277
|
+
},
|
|
278
|
+
"peerDependencies": {
|
|
279
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
280
|
+
"@deepseek-ai/dsh-scope": "^0.1.2-rc.1"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"node_modules/@deepseek-ai/dsh-scope": {
|
|
284
|
+
"version": "0.1.2-rc.1",
|
|
285
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-scope/-/dsh-scope-0.1.2-rc.1.tgz",
|
|
286
|
+
"integrity": "sha512-GHwbzWrGbmE0ZGzAZsXBudpyCM9ENCpXxlKODIaPFbIWhRePh6nH2jW47TAOqCIsPPedWC2p3w8Tx5WAa3I/2A==",
|
|
287
|
+
"license": "MIT",
|
|
288
|
+
"peer": true,
|
|
289
|
+
"peerDependencies": {
|
|
290
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
291
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"node_modules/@deepseek-ai/dsh-invariants": {
|
|
295
|
+
"version": "0.1.2-rc.1",
|
|
296
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-invariants/-/dsh-invariants-0.1.2-rc.1.tgz",
|
|
297
|
+
"integrity": "sha512-zSjuFJYcEB94kPwn7SicqAV1dfVWZkjt1I8luDboxtjfp5CN6ziwJhLv3KaB+Dh9tgkyGY4mvo886W/HhE9L9g==",
|
|
298
|
+
"license": "MIT",
|
|
299
|
+
"peer": true,
|
|
300
|
+
"dependencies": {
|
|
301
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
302
|
+
},
|
|
303
|
+
"peerDependencies": {
|
|
304
|
+
"@deepseek-ai/cordis": "^4.0.2"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"node_modules/@deepseek-ai/dsh-llm-retry": {
|
|
308
|
+
"version": "0.1.2-rc.1",
|
|
309
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-llm-retry/-/dsh-llm-retry-0.1.2-rc.1.tgz",
|
|
310
|
+
"integrity": "sha512-WRpanzi4u2Z2X2uv/rwRZh5HTYUtd5smFTBMT4jYd1UpFOmjoMY/grDboZG9KI1OsgaS1vadiBJT4vvixFDEAA==",
|
|
311
|
+
"license": "MIT",
|
|
312
|
+
"peer": true,
|
|
313
|
+
"dependencies": {
|
|
314
|
+
"@deepseek-ai/schemastery": "^3.18.2",
|
|
315
|
+
"zod": "^4.4.3"
|
|
316
|
+
},
|
|
317
|
+
"peerDependencies": {
|
|
318
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
319
|
+
"@deepseek-ai/dsh-agent": "^0.1.2-rc.1",
|
|
320
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1",
|
|
321
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
322
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
323
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
324
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.2-rc.1",
|
|
325
|
+
"@deepseek-ai/dsh-timeout": "^0.1.2-rc.1"
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"node_modules/@deepseek-ai/dsh-agent": {
|
|
329
|
+
"version": "0.1.2-rc.1",
|
|
330
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-agent/-/dsh-agent-0.1.2-rc.1.tgz",
|
|
331
|
+
"integrity": "sha512-lfaqN34vUCWvbn1kJVHrhfJ6Dvt1HDHCm33ZCpmKkl07/5q6FxWqVv6rOdVX5QnM/9xz/uYiN0nQwUtBg4+Skg==",
|
|
332
|
+
"license": "MIT",
|
|
333
|
+
"peer": true,
|
|
334
|
+
"peerDependencies": {
|
|
335
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
336
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
337
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
338
|
+
"@deepseek-ai/dsh-scope": "^0.1.2-rc.1",
|
|
339
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
340
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.2-rc.1",
|
|
341
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.2-rc.1",
|
|
342
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.2-rc.1"
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
"node_modules/@deepseek-ai/dsh-system-prompt": {
|
|
346
|
+
"version": "0.1.2-rc.1",
|
|
347
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-system-prompt/-/dsh-system-prompt-0.1.2-rc.1.tgz",
|
|
348
|
+
"integrity": "sha512-7W93PZKIk4CHvjZGgLIxrrEKpk+6t8nQXje1vKR5vG73dfXH0t1MJ5WWH/fngadYc7c6KzM84ihQ66tJqJqyNQ==",
|
|
349
|
+
"license": "MIT",
|
|
350
|
+
"peer": true,
|
|
351
|
+
"dependencies": {
|
|
352
|
+
"@deepseek-ai/schemastery": "^3.18.2"
|
|
353
|
+
},
|
|
354
|
+
"peerDependencies": {
|
|
355
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
356
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
357
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
358
|
+
"@deepseek-ai/dsh-scope": "^0.1.2-rc.1"
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"node_modules/@deepseek-ai/dsh-compaction": {
|
|
362
|
+
"version": "0.1.2-rc.1",
|
|
363
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-compaction/-/dsh-compaction-0.1.2-rc.1.tgz",
|
|
364
|
+
"integrity": "sha512-omzrM2EQdoUvQ41PbbXiFERC7I4FYiLNmHIYrlCZfCAdxo0G4u3kt7eahhVaSSi2YsinL7sW79C7cTVaUWlZVg==",
|
|
365
|
+
"license": "MIT",
|
|
366
|
+
"peer": true,
|
|
367
|
+
"peerDependencies": {
|
|
368
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
369
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1",
|
|
370
|
+
"@deepseek-ai/dsh-commands": "^0.1.2-rc.1",
|
|
371
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
372
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
373
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1"
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"node_modules/@deepseek-ai/dsh-commands": {
|
|
377
|
+
"version": "0.1.2-rc.1",
|
|
378
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-commands/-/dsh-commands-0.1.2-rc.1.tgz",
|
|
379
|
+
"integrity": "sha512-uBh4JTX7pOkFhmbWjXjVLnOQOawyccC7+DazbHrLRN6/wy4OgTRH+DaW0+ibLq+XRAO19OvBTtuoh3x/KkJx1Q==",
|
|
380
|
+
"license": "MIT",
|
|
381
|
+
"peer": true,
|
|
382
|
+
"dependencies": {
|
|
383
|
+
"@deepseek-ai/dsh-util-crypto": "^0.1.2-rc.1",
|
|
384
|
+
"zod": "^4.4.3"
|
|
385
|
+
},
|
|
386
|
+
"peerDependencies": {
|
|
387
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
388
|
+
"@deepseek-ai/dsh-agent": "^0.1.2-rc.1",
|
|
389
|
+
"@deepseek-ai/dsh-attachment": "^0.1.2-rc.1",
|
|
390
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1",
|
|
391
|
+
"@deepseek-ai/dsh-invariants": "^0.1.2-rc.1",
|
|
392
|
+
"@deepseek-ai/dsh-llm": "^0.1.2-rc.1",
|
|
393
|
+
"@deepseek-ai/dsh-scope": "^0.1.2-rc.1",
|
|
394
|
+
"@deepseek-ai/dsh-session": "^0.1.2-rc.1",
|
|
395
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.2-rc.1"
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"node_modules/@deepseek-ai/dsh-attachment": {
|
|
399
|
+
"version": "0.1.2-rc.1",
|
|
400
|
+
"resolved": "https://registry.npmjs.org/@deepseek-ai/dsh-attachment/-/dsh-attachment-0.1.2-rc.1.tgz",
|
|
401
|
+
"integrity": "sha512-QISKUjEITusLvAkqPLRn70xDUt+GjjY41pISjtPKYcZ4EGmayzhgZ3VJNYEcC+rbaF44hs2o/0VhOwHA7lyxjw==",
|
|
402
|
+
"license": "MIT",
|
|
403
|
+
"peer": true,
|
|
404
|
+
"peerDependencies": {
|
|
405
|
+
"@deepseek-ai/cordis": "^4.0.2",
|
|
406
|
+
"@deepseek-ai/dsh-brand": "^0.1.2-rc.1"
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "afu-dsh-runtime",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"dependencies": {
|
|
7
|
+
"@deepseek-ai/cordis": "4.0.2",
|
|
8
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
9
|
+
"@deepseek-ai/dsh-compaction": "0.1.2-rc.1",
|
|
10
|
+
"@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
|
|
11
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
12
|
+
"@deepseek-ai/cordis-plugin-include": "1.0.7",
|
|
13
|
+
"js-yaml": "4.3.2",
|
|
14
|
+
"@deepseek-ai/cordis-plugin-loader": "1.0.3"
|
|
15
|
+
}
|
|
16
|
+
}
|