@mogragsigma/dsh-dual-host-plugin 0.33.3 → 2.0.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/README.md +68 -97
- package/bundle/README.md +68 -97
- package/bundle/SETUP.md +87 -0
- package/bundle/approval-chat.js +2 -2
- package/bundle/approval-feishu.js +4 -1
- package/bundle/approval-ledger.js +30 -13
- package/bundle/approval-workbench.js +2 -0
- package/bundle/artifact-media.js +2 -2
- package/bundle/compatibility.json +47 -1
- package/bundle/configuration-v2.json +15 -0
- package/bundle/delivery-state.js +2 -0
- package/bundle/development-gate.js +2 -0
- package/bundle/distribution-lock.json +18 -18
- package/bundle/gateway-maintenance.js +1 -0
- package/bundle/global-rules/AGENTS.md +24 -20
- package/bundle/index.js +135 -25
- package/bundle/intervention-state.js +1 -1
- package/bundle/link-contract.js +9 -4
- package/bundle/managed-closeout.js +45 -0
- package/bundle/managed-cloud-policy.js +19 -0
- package/bundle/managed-command.js +71 -0
- package/bundle/managed-development-contract.js +43 -0
- package/bundle/managed-development.js +86 -0
- package/bundle/managed-endpoint.js +282 -0
- package/bundle/managed-execution.js +207 -0
- package/bundle/managed-policy.js +20 -0
- package/bundle/managed-runtime.js +186 -0
- package/bundle/managed-search.js +57 -0
- package/bundle/managed-tools.js +17 -0
- package/bundle/managed-triggers.js +85 -0
- package/bundle/native-context.js +4 -2
- package/bundle/native-entry.js +6 -2
- package/bundle/native-human-context.js +29 -0
- package/bundle/native-model-choice.js +12 -0
- package/bundle/native-rules/continuity.md +13 -0
- package/bundle/native-rules/execution.md +36 -0
- package/bundle/native-tools.js +52 -19
- package/bundle/notification-artifacts.js +26 -10
- package/bundle/notification-endpoint.js +1 -1
- package/bundle/notification-feishu.js +2 -2
- package/bundle/notification-media-endpoint.js +4 -3
- package/bundle/notification-observations.js +45 -0
- package/bundle/onboarding-cloud-package.js +1 -1
- package/bundle/onboarding-cloud.js +1 -1
- package/bundle/onboarding-file-contract.js +3 -2
- package/bundle/onboarding-file-transfer.js +4 -4
- package/bundle/onboarding-native-probe.js +1 -1
- package/bundle/onboarding-runtime-activation.js +1 -1
- package/bundle/onboarding-runtime-extension.js +2 -2
- package/bundle/package-lock.json +18 -18
- package/bundle/package.json +16 -14
- package/bundle/peer-file-review.js +1 -1
- package/bundle/peer-files.js +8 -4
- package/bundle/recovery.js +1 -1
- package/bundle/repository-gitee.js +12 -0
- package/bundle/repository-managed.js +1 -0
- package/bundle/runtime-im-lock.json +3409 -2849
- package/bundle/runtime-im-package.json +5 -5
- package/bundle/runtime-lock.json +3409 -2849
- package/bundle/runtime-package.json +5 -5
- package/bundle/schedule-ledger.js +35 -0
- package/bundle/search-contract.js +11 -1
- package/bundle/skills/task-approval/SKILL.md +20 -1
- package/bundle/skills/task-development/SKILL.md +30 -13
- package/bundle/skills/task-direct-link/SKILL.md +39 -13
- package/bundle/skills/task-file-transfer/SKILL.md +2 -2
- package/bundle/skills/task-notify/SKILL.md +2 -0
- package/bundle/skills/task-repository/SKILL.md +10 -1
- package/bundle/skills/task-research/SKILL.md +17 -2
- package/bundle/source-assessment.js +38 -0
- package/bundle/source-gitee.js +52 -0
- package/bundle/source-intake.js +137 -0
- package/bundle/source-policy-envelope.js +29 -0
- package/bundle/source-routing-tools.js +12 -0
- package/bundle/source-routing.js +218 -0
- package/bundle/source-search.js +2 -1
- package/bundle/store.js +6 -5
- package/bundle/task-artifacts.js +51 -12
- package/bundle/task-board.js +8 -4
- package/bundle/task-catalog.js +4 -3
- package/bundle/task-context.js +2 -2
- package/bundle/task-continuity-tools.js +14 -0
- package/bundle/task-continuity.js +248 -0
- package/bundle/task-envelope.js +31 -20
- package/bundle/task-notifications.js +6 -2
- package/bundle/task-observer-model.js +25 -0
- package/bundle/task-observer.js +120 -0
- package/bundle/task-results.js +1 -1
- package/bundle/task-scheduler.js +3 -3
- package/bundle/task-trigger-time.js +17 -12
- package/bundle/task-triggers.js +5 -30
- package/bundle/task-worker.js +10 -2
- package/bundle/task-workflows.js +2 -1
- package/bundle/workbench-client.js +165 -30
- package/bundle/workbench-decisions.js +22 -5
- package/bundle/worker-tools.js +8 -1
- package/compatibility.json +47 -1
- package/package.json +13 -13
|
@@ -8,6 +8,8 @@ export class WorkbenchApprovals {
|
|
|
8
8
|
if(!object(args)||Object.keys(args).some(k=>!['task_id','request_id','expected_revision'].includes(k)))throw Error('APPROVAL_WORKBENCH_ARGUMENTS');
|
|
9
9
|
const scoped=Object.keys(args).length>0;
|
|
10
10
|
if(scoped&&(!(typeof args.task_id==='string'&&args.task_id.length<=128&&args.task_id)||!(typeof args.request_id==='string'&&args.request_id.length<=128&&args.request_id)||!Number.isSafeInteger(args.expected_revision)||args.expected_revision<1))throw Error('APPROVAL_WORKBENCH_ARGUMENTS');
|
|
11
|
+
if(scoped){const row=this.db.prepare('SELECT task_id,spec_revision FROM approval_requests WHERE id=?').get(args.request_id),head=this.db.prepare('SELECT spec_revision FROM task_catalog WHERE task_id=?').get(args.task_id);if(!row||row.task_id!==args.task_id||row.spec_revision!==args.expected_revision||head?.spec_revision!==args.expected_revision)throw Error('APPROVAL_WORKBENCH_CHANGED');}
|
|
12
|
+
if(scoped&&this.l.isNativeTask(args.task_id)){const r=this.l.view(args.request_id);if(r.task_id!==args.task_id||r.spec_revision!==args.expected_revision||this.l.catalog.head(args.task_id).spec_revision!==args.expected_revision)throw Error('APPROVAL_WORKBENCH_CHANGED');return {schema:2,enabled:true,identity_policy:'task-native',registration_required:false,new_browser_credential_required:false,approval_granted:false,execution_granted:false,read_only:true,next_action:{kind:'use_task_workbench',label:'在任务内处理',message:'通过当前已登录工作台或原生对话说明决定,无需 IM 身份确认。'}};}
|
|
11
13
|
const chat=this.getChat(),binding=chat?.bindingHash?this.db.prepare('SELECT binding,disabled FROM approval_chat_bindings WHERE id=?').get(chat.bindingHash):null;
|
|
12
14
|
const active=!!(binding?.disabled===0&&chat?.binding&&binding.binding===canonical(chat.binding)&&digest(chat.binding)===chat.bindingHash&&!chat.closed);
|
|
13
15
|
const state=!chat?'not_configured':!active?'needs_review':chat.lastError?'unavailable':'configured';
|
package/bundle/artifact-media.js
CHANGED
|
@@ -25,10 +25,10 @@ export async function artifactSnapshot(g,task,id,mode){
|
|
|
25
25
|
if(access.artifact.state!=='verified'||a.eligibility(r)!=='needs_verification'||access.artifact.sha256!==r.sha256)throw Error('NOTIFICATION_ARTIFACT_CHANGED');
|
|
26
26
|
return {artifact_id:r.id,name:r.name,description:r.description,sha256:r.sha256,size:0,mode,spec_revision:r.spec_revision,mime:'text/uri-list',url:access.url};
|
|
27
27
|
}
|
|
28
|
-
const f=r.kind
|
|
28
|
+
const f=['report','native_file'].includes(r.kind)?a.readLocal(r):await g.repositories.provider.file(r.repository,r.path);a.assertOpen();
|
|
29
29
|
if(a.eligibility(r)!=='needs_verification'||f.bytes.length!==r.size||mediaHash(f.bytes)!==r.sha256||r.kind==='gitee'&&f.blob_sha!==r.blob_sha)throw Error('NOTIFICATION_ARTIFACT_CHANGED');
|
|
30
30
|
if(mode==='page'&&r.kind!=='gitee')throw Error('NOTIFICATION_PAGE_UNAVAILABLE');
|
|
31
31
|
const mime=mode==='image'?imageType(f.bytes):'application/octet-stream';
|
|
32
32
|
if(mode==='image'&&!/\.(png|jpe?g)$/i.test(r.name))throw Error('ARTIFACT_INVALID_IMAGE');
|
|
33
|
-
return {artifact_id:r.id,name:r.name,description:r.description??'暂无介绍',sha256:r.sha256,size:r.size,mode,spec_revision:r.spec_revision,mime,...(mode==='page'?{url:f.url}:{bytes:f.bytes})};
|
|
33
|
+
return {...(r.kind==='native_file'?{native_file:true}:{}),artifact_id:r.id,name:r.name,description:r.description??'暂无介绍',sha256:r.sha256,size:r.size,mode,spec_revision:r.spec_revision,mime,...(mode==='page'?{url:f.url}:{bytes:f.bytes})};
|
|
34
34
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
3
|
"plugin": "@mogragsigma/dsh-dual-host-plugin",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"publicEntry": "native-entry.js",
|
|
6
6
|
"hostBaseline": "0.2.1-rc.5",
|
|
7
7
|
"imOptional": {
|
|
@@ -976,5 +976,51 @@
|
|
|
976
976
|
"restart": "claimed operations need review; no replay",
|
|
977
977
|
"productionDeployed": false,
|
|
978
978
|
"realPlatformTest": "local isolated official Web roles + real test Feishu; not production ECS/Desktop"
|
|
979
|
+
},
|
|
980
|
+
"hostCompatibilityPolicy": {
|
|
981
|
+
"declaredRange": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
982
|
+
"standalonePinnedHost": "0.2.2-rc.1",
|
|
983
|
+
"targetHost": "0.2.2-rc.1",
|
|
984
|
+
"scope": "2.0.0 preparation, not published. Broad range admission is not per-version acceptance; see releaseContract and current acceptance report."
|
|
985
|
+
},
|
|
986
|
+
"releaseContract": {
|
|
987
|
+
"version": "2.0.0",
|
|
988
|
+
"stage": "unreleased-preparation",
|
|
989
|
+
"historicalFields": "Legacy approval/development/onboarding contracts remain for historical compatibility; they are not new-task policy or proof of 2.0 activation.",
|
|
990
|
+
"policy": "cloud-autonomous-v1",
|
|
991
|
+
"owner": "single-user",
|
|
992
|
+
"channels": [
|
|
993
|
+
"local-dsh-to-cloud",
|
|
994
|
+
"owner-local-im-to-cloud",
|
|
995
|
+
"owner-cloud-im-to-cloud"
|
|
996
|
+
],
|
|
997
|
+
"execution": "cloud-only native DSH",
|
|
998
|
+
"taskImPermissions": "independent",
|
|
999
|
+
"modelCallLimit": null,
|
|
1000
|
+
"uniformTaskDeadline": null,
|
|
1001
|
+
"permissionReapprovalTTL": null,
|
|
1002
|
+
"concurrency": {
|
|
1003
|
+
"ordinary": 3,
|
|
1004
|
+
"humanFollowup": 1
|
|
1005
|
+
},
|
|
1006
|
+
"sessions": {
|
|
1007
|
+
"archiveIdleDays": 7,
|
|
1008
|
+
"automaticDelete": false
|
|
1009
|
+
},
|
|
1010
|
+
"setup": "bundle/SETUP.md and bundle/configuration-v2.json; explicit native profile configuration",
|
|
1011
|
+
"source": {
|
|
1012
|
+
"transport": "gitee-selected-issues",
|
|
1013
|
+
"maxIssuesPerSource": 8,
|
|
1014
|
+
"defaultMode": "off",
|
|
1015
|
+
"newTaskTotal": "explicitly confirmed finite per-period total, never model-call cap"
|
|
1016
|
+
},
|
|
1017
|
+
"legacyWizard": "Owned read-only runtime is historical; not the native cloud execution activation path",
|
|
1018
|
+
"supportEvidence": "DSH 0.2.2-rc.1; 0.2.1-rc.5 lower-bound validation tracked separately; selected Feishu dsh-im 5.9.1 real business evidence; not all platforms",
|
|
1019
|
+
"notSupported": [
|
|
1020
|
+
"reverse-local-managed-worker",
|
|
1021
|
+
"gitee-product-pr",
|
|
1022
|
+
"automatic-session-delete",
|
|
1023
|
+
"stateless-elastic-byom"
|
|
1024
|
+
]
|
|
979
1025
|
}
|
|
980
1026
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"local": [
|
|
3
|
+
{"id":"dual-host-onboarding","config":{"role":"local","entryMode":"native","namespace":"__PAIR_NAMESPACE__","stateDir":"__STATE_DIR__","tokenFile":"__TOKEN_FILE__","port":33911,"coordinatorUrl":"http://127.0.0.1:33921","workbench":{"enabled":true},"continuity":{"enabled":true},"managedExecution":{"enabled":true}}},
|
|
4
|
+
{"insert":[{"id":"dual-host-native-tools","name":"@mogragsigma/dsh-dual-host-plugin/native-tools"}]}
|
|
5
|
+
],
|
|
6
|
+
"cloud": [
|
|
7
|
+
{"id":"dual-host-onboarding","config":{"role":"cloud","entryMode":"native","namespace":"__PAIR_NAMESPACE__","stateDir":"__STATE_DIR__","tokenFile":"__TOKEN_FILE__","port":33921,"workbench":{"enabled":true},"continuity":{"enabled":true},"managedExecution":{"enabled":true,"endpoint":{"lockPort":33923}},"sourceIntake":{"enabled":false,"sources":[]}}},
|
|
8
|
+
{"insert":[{"id":"dual-host-native-tools","name":"@mogragsigma/dsh-dual-host-plugin/native-tools"}]}
|
|
9
|
+
],
|
|
10
|
+
"selectedSource": {
|
|
11
|
+
"id":"selected-gitee-issues","adapterId":"gitee-issues-v1","namespace":"gitee-repository-42","revision":"1","enabled":false,
|
|
12
|
+
"scopes":["https://gitee.com/example/synthetic-repository"],
|
|
13
|
+
"gitee":{"url":"https://gitee.com/example/synthetic-repository","repository_id":42,"issues":["IEXAMPLE"]}
|
|
14
|
+
}
|
|
15
|
+
}
|
package/bundle/delivery-state.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {managedResourceBusy} from './managed-development-contract.js';
|
|
1
2
|
// Read-only persisted projection. No Git, filesystem observation, migration,
|
|
2
3
|
// approval renewal, lease acquisition or execution callback is allowed here.
|
|
3
4
|
import {canonical,digest} from './approval-ledger.js';
|
|
@@ -11,6 +12,7 @@ const codes=new Set(['EFFECT_UNKNOWN','DRAIN_REQUIRED','READBACK_UNKNOWN','READB
|
|
|
11
12
|
export function deliveryWaiting(db,r,t){
|
|
12
13
|
if(r.state==='needs_review'||t.blocked)return 'delivery_review';if(r.state!=='queued')return null;
|
|
13
14
|
if(t.busy)return 'task_busy';
|
|
15
|
+
if(managedResourceBusy(db,r.resource))return 'managed_resource_busy';
|
|
14
16
|
const owner=db.prepare("SELECT state FROM delivery_actions WHERE resource=? AND state IN ('active','needs_review')").get(r.resource);
|
|
15
17
|
if(owner)return owner.state==='needs_review'?'delivery_resource_review':'delivery_resource_busy';
|
|
16
18
|
if(has(db,'development_requests')){
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {managedResourceBusy} from './managed-development-contract.js';
|
|
1
2
|
import {randomUUID} from 'node:crypto';
|
|
2
3
|
import {canonical,digest} from './approval-ledger.js';
|
|
3
4
|
import {approvedDevelopment} from './development-contract.js';
|
|
@@ -58,6 +59,7 @@ export class DevelopmentGate {
|
|
|
58
59
|
if(this.unresolved(id)||this.inflight.has(id))return 'development_draining';
|
|
59
60
|
if(r.state!=='queued')return null;
|
|
60
61
|
if(t.busy||this.busy(r.task_id))return 'task_busy';
|
|
62
|
+
if(managedResourceBusy(this.db,r.resource))return 'managed_resource_busy';
|
|
61
63
|
const owner=this.db.prepare("SELECT id,state FROM development_requests WHERE resource=? AND state IN ('active','needs_review')").get(r.resource);
|
|
62
64
|
if(owner)return owner.state==='needs_review'?'development_resource_review':this.unresolved(owner.id)||this.inflight.has(owner.id)?'development_resource_draining':'development_resource_busy';
|
|
63
65
|
// Optional journal shares the SAME database. Cutoff merges FIFO order across
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mogragsigma/dsh-dual-host-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@mogragsigma/dsh-dual-host-plugin",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "2.0.0",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@js-temporal/polyfill": "0.5.1",
|
|
@@ -14,24 +14,24 @@
|
|
|
14
14
|
"koffi": "3.1.1"
|
|
15
15
|
},
|
|
16
16
|
"engines": {
|
|
17
|
-
"dsh": "0.2.1-rc.5"
|
|
17
|
+
"dsh": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@deepseek-ai/dsh-
|
|
21
|
-
"@deepseek-ai/dsh-
|
|
22
|
-
"@deepseek-ai/dsh-
|
|
23
|
-
"@
|
|
24
|
-
"@deepseek-ai/dsh-
|
|
25
|
-
"@deepseek-ai/dsh-
|
|
26
|
-
"@deepseek-ai/dsh-
|
|
27
|
-
"@deepseek-ai/dsh-web-
|
|
28
|
-
"@
|
|
20
|
+
"@deepseek-ai/dsh-llm": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
21
|
+
"@deepseek-ai/dsh-llm-deepseek": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
22
|
+
"@deepseek-ai/dsh-llm-pi-ai": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
23
|
+
"@earendil-works/pi-ai": ">=1.3.0 <1.6.0",
|
|
24
|
+
"@deepseek-ai/dsh-agent": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
25
|
+
"@deepseek-ai/dsh-credentials": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
26
|
+
"@deepseek-ai/dsh-http-proxy": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
27
|
+
"@deepseek-ai/dsh-web-fetch-http": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0",
|
|
28
|
+
"@deepseek-ai/dsh-web-search-deepseek": ">=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependenciesMeta": {
|
|
31
|
-
"@deepseek-ai/dsh-
|
|
31
|
+
"@deepseek-ai/dsh-llm-pi-ai": {
|
|
32
32
|
"optional": true
|
|
33
33
|
},
|
|
34
|
-
"@
|
|
34
|
+
"@earendil-works/pi-ai": {
|
|
35
35
|
"optional": true
|
|
36
36
|
},
|
|
37
37
|
"@deepseek-ai/dsh-http-proxy": {
|
|
@@ -40,19 +40,19 @@
|
|
|
40
40
|
"@deepseek-ai/dsh-llm": {
|
|
41
41
|
"optional": true
|
|
42
42
|
},
|
|
43
|
-
"@deepseek-ai/dsh-
|
|
43
|
+
"@deepseek-ai/dsh-web-search-deepseek": {
|
|
44
44
|
"optional": true
|
|
45
45
|
},
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
46
|
+
"@deepseek-ai/dsh-agent": {
|
|
47
47
|
"optional": true
|
|
48
48
|
},
|
|
49
49
|
"@deepseek-ai/dsh-web-fetch-http": {
|
|
50
50
|
"optional": true
|
|
51
51
|
},
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
52
|
+
"@deepseek-ai/dsh-credentials": {
|
|
53
53
|
"optional": true
|
|
54
54
|
},
|
|
55
|
-
"@
|
|
55
|
+
"@deepseek-ai/dsh-llm-deepseek": {
|
|
56
56
|
"optional": true
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -17,6 +17,7 @@ export function createGatewayMaintenance(g,{now=Date.now}={}){
|
|
|
17
17
|
deliveryPreparation:g.deliveryRuntime?.preparations.size??0,
|
|
18
18
|
development:g.development?.gate.inflight.size??0,developmentPeer:g.developmentPeer?.pending.size??0,
|
|
19
19
|
a2a:+!!g.a2aEndpoint?.pending+ +!!g.a2aEndpoint?.active+ +!!g.a2aEndpoint?.undrained,
|
|
20
|
+
managedExecution:g.execution?.slots.list().length??0,managedEndpoint:(g.executionEndpoint?.active.size??0)+ +!!g.executionEndpoint?.pending,
|
|
20
21
|
approvals:+!!g.chatApproval?.running,artifacts:g.artifacts?.pending.size??0};
|
|
21
22
|
}
|
|
22
23
|
function status(a={}){if(!exact(a,[]))fail('ARGUMENTS');ready();const c=counts(),busy=Object.values(c).some(n=>n!==0);
|
|
@@ -2,30 +2,34 @@
|
|
|
2
2
|
仅限本项目;保留用户规则、人格、记忆及原生功能。
|
|
3
3
|
本机身份:__HOST_NAME__(Host role:__HOST_ROLE__);路由以 `task_identity` 为准,非昵称。
|
|
4
4
|
Host 身份不证明渠道;云端 Web 也可接收 IM。无可靠渠道元数据须说“当前渠道未确认”,不按 localhost、环境提示或第三方 ID 猜测。
|
|
5
|
-
###
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
5
|
+
### 当前云端自主任务优先规则
|
|
6
|
+
- cloud-autonomous-v1:仅本地 DSH、本地 IM、云端 IM 三通道交办,统一云端执行;本地普通 DSH 保留,不反向派本地。
|
|
7
|
+
- task_submit 保留必要原文,task_execute 原生持续执行;task_followup 接续指示。无审批前置、调用次数上限、统一300秒截止或两小时到期重批;保留技术超时及业务期限。
|
|
8
|
+
- 云端原生 CLI/文件能力充分使用;IM 权限不决定任务执行。Git/远程托管可选;按约定交付并回读,不从研发推导发布。成果宿主登记,ready非已发送/已读。
|
|
9
|
+
- 以下旧审批、预算、短批、本地执行及Gitee门禁仅限历史合同;不套用于新任务,不迁移、删除或自动续跑历史。
|
|
10
|
+
|
|
11
|
+
### 历史合同职责与入口
|
|
12
|
+
- 双端插件直连,IM只作入口/通知,不同群接力;Gitee非消息总线/权威状态/并发锁。
|
|
13
|
+
- 旧task_schedule保留max_runs及每批≤6次;入口不代worker冒报完成,不shell轮询。独立会话非OS进程或系统级身份隔离。
|
|
10
14
|
### 按需加载 Skill
|
|
11
15
|
回执为准。
|
|
12
16
|
| 用户需求 | Skill |
|
|
13
17
|
| --- | --- |
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
18
|
+
| 任务与模型 | `task-direct-link` |
|
|
19
|
+
| 计划与信号 | `task-schedule` |
|
|
20
|
+
| 历史A2A | `task-a2a` |
|
|
17
21
|
| IM/本地/云端三端文件收发 | `task-file-transfer` |
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
22
|
+
| 历史审批 | `task-approval` |
|
|
23
|
+
| 仓库与交付 | `task-repository` |
|
|
24
|
+
| 研发与验证 | `task-development` |
|
|
25
|
+
| 来源与搜索 | `task-research` |
|
|
26
|
+
| 通知与回执 | `task-notify` |
|
|
27
|
+
| 成果取用 | `task-artifacts` |
|
|
28
|
+
| 云端工作台 | `task-workbench` |
|
|
29
|
+
| 任务展示 | `task-sidebar` |
|
|
30
|
+
| 诊断 | `task-diagnostics` |
|
|
31
|
+
| 交接与恢复 | `task-handoff`、`task-recovery` |
|
|
32
|
+
| 配置与维护 | `task-onboarding` |
|
|
29
33
|
|
|
30
34
|
`task-worker`、`task-a2a-worker` 只在相应独立执行会话加载,入口不冒充 worker。
|
|
31
35
|
`dsh-dual-end`、`task-intake` 仅作兼容指引;旧 `/task`、`/run`、`/approve`、群内 A2A、旧消费者和补丁流程不恢复、不自动重放。保留旧会话,不擅自改模式或清空历史。
|
|
@@ -34,7 +38,7 @@ Host 身份不证明渠道;云端 Web 也可接收 IM。无可靠渠道元数
|
|
|
34
38
|
- 按名称交办/查询,无需 ID、命令、哈希或精确 provider;歧义才文字询问。任务名非关联键,内部参数仅取真实工具回执,不编造。
|
|
35
39
|
- `task_submit` 的 goal 为理解摘要,Host 保全直接用户原文和约束。仅明确引用时补必要前文,不上传整段聊天或禁转内容。补充沿用原任务并修订;超限、非文本、缺能力须说明,不截断需求。
|
|
36
40
|
- 新任务或显式换模型先用 `task_model_resolve` 核对目标端目录;“ds flash”等简称唯一匹配才用返回策略。歧义用接入名称澄清(导览 clarification),默认不传 provider_hint;不凭记忆、入口清单、近似版本或降级补齐。
|
|
37
|
-
-
|
|
41
|
+
- 新任务默认模型复用云端 DSH,显式值优先;恢复不换策略、不降级。辅助搜索单独声明路由;历史预算保留,新任务只统计。
|
|
38
42
|
- 澄清使用普通聊天文字,不以飞书卡片、精确拼写或 ask_user_question 作为必经入口;此规则不拦截原生权限确认、第三方工具或斜杠命令。普通选择回复不是可信审批。
|
|
39
43
|
|
|
40
44
|
### 授权与可信审批
|