oasis_test 0.1.113 → 0.1.114
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/index.js +137 -41
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -82,7 +82,12 @@ var init_src = __esm({
|
|
|
82
82
|
DECLARED_LETTER_UNRESOLVED_EFFECTS = effects(WAKE, NEUTRAL, VETO, WAKE);
|
|
83
83
|
OPEN_BACKPRESSURE_EFFECTS = effects(WAKE, NEUTRAL, VETO, WAKE);
|
|
84
84
|
OPEN_HUMAN_CHANGE_REQUEST_EFFECTS = effects(WAKE, NEUTRAL, VETO, WAKE);
|
|
85
|
-
OPEN_SELF_ANNOTATION_EFFECTS = effects(
|
|
85
|
+
OPEN_SELF_ANNOTATION_EFFECTS = effects(
|
|
86
|
+
{ kind: "veto", exemptedBy: ["open-letter", "declared-letter-unresolved"] },
|
|
87
|
+
VETO,
|
|
88
|
+
VETO,
|
|
89
|
+
WAKE
|
|
90
|
+
);
|
|
86
91
|
UNPRODUCED_PARTS_OWNER_EFFECTS = effects(WAKE, VETO, VETO, WAKE);
|
|
87
92
|
UNPRODUCED_PARTS_SYSTEM_EFFECTS = effects(NEUTRAL, VETO, VETO, WAKE);
|
|
88
93
|
HEAD_REJECTED_EFFECTS = effects(WAKE, VETO, VETO, WAKE);
|
|
@@ -1350,8 +1355,16 @@ function convergenceState(model, id) {
|
|
|
1350
1355
|
blockers.push({
|
|
1351
1356
|
kind: "open-self-annotation",
|
|
1352
1357
|
action: "wait_upstream",
|
|
1353
|
-
// §3.7。dispatch
|
|
1354
|
-
|
|
1358
|
+
// §3.7。dispatch=**veto**(ADR 0161,恢复 0144 前的「回压即阻塞提出方」:提出方的活建在它自己声称
|
|
1359
|
+
// 有问题的上游产物上,上游未答复前不再派它——与引擎 scan 的 OPEN_SELF_ANNOTATION_EFFECTS 同步,
|
|
1360
|
+
// 豁免「未回的信」两类不吞信)。conclude=veto(§4-C 阶段④:自提回压未答就收口=装作没提过,与 auto
|
|
1361
|
+
// 对齐);auto=veto、stall=wake(actor=null 呈现 waiting_upstream)。
|
|
1362
|
+
effects: {
|
|
1363
|
+
dispatch: { kind: "veto", exemptedBy: ["open-letter", "declared-letter-unresolved"] },
|
|
1364
|
+
conclude: VETO2,
|
|
1365
|
+
autoConclude: VETO2,
|
|
1366
|
+
stall: WAKE2
|
|
1367
|
+
},
|
|
1355
1368
|
actor: null,
|
|
1356
1369
|
ref: a.id,
|
|
1357
1370
|
detail: `\u4F60\u5BF9\u4E0A\u6E38\u63D0\u7684\u56DE\u538B\u8FD8\u6CA1\u88AB\u7B54\u590D\uFF08${a.body}\uFF09\u2014\u2014\u7B49\u4E0A\u6E38\u56DE\u5E94\u540E\u7EED\u5B8C\u8FD9\u6761\u518D\u6536\u53E3`
|
|
@@ -7299,7 +7312,9 @@ function scan(state, ctx) {
|
|
|
7299
7312
|
continue;
|
|
7300
7313
|
}
|
|
7301
7314
|
const blockers = scanBlockersForNode(state, node, lw);
|
|
7302
|
-
const selfStop = blockers.some(
|
|
7315
|
+
const selfStop = blockers.some(
|
|
7316
|
+
(b2) => b2.kind === "open-gap" || b2.kind === "escalation" || b2.kind === "open-self-annotation"
|
|
7317
|
+
);
|
|
7303
7318
|
if (selfStop && !passDispatch(blockers, node.assigneeActorId)) {
|
|
7304
7319
|
continue;
|
|
7305
7320
|
}
|
|
@@ -7451,6 +7466,16 @@ function scanBlockersForNode(state, node, latest) {
|
|
|
7451
7466
|
effects: OPEN_HUMAN_CHANGE_REQUEST_EFFECTS
|
|
7452
7467
|
});
|
|
7453
7468
|
}
|
|
7469
|
+
if ((i.kind === "comment" || i.kind === "change_request") && i.resolvedAt === null && i.raisedByNodeId === node.id) {
|
|
7470
|
+
blockers.push({
|
|
7471
|
+
kind: "open-self-annotation",
|
|
7472
|
+
action: "wait_upstream",
|
|
7473
|
+
actor: null,
|
|
7474
|
+
ref: i.id,
|
|
7475
|
+
detail: `\u4F60\u5BF9\u4E0A\u6E38\u63D0\u7684\u56DE\u538B\u8FD8\u6CA1\u88AB\u7B54\u590D\uFF08${i.body}\uFF09\u2014\u2014\u7B49\u4E0A\u6E38 resolve \u540E\u518D\u7EE7\u7EED`,
|
|
7476
|
+
effects: OPEN_SELF_ANNOTATION_EFFECTS
|
|
7477
|
+
});
|
|
7478
|
+
}
|
|
7454
7479
|
}
|
|
7455
7480
|
blockers.push(...openCommentBlockers(state, node));
|
|
7456
7481
|
if (latest && node.latestAcceptId === latest.id && findResolvedGapAfterHead(node.id, latest, state.allIssues())) {
|
|
@@ -157449,6 +157474,7 @@ var init_sync_skills = __esm({
|
|
|
157449
157474
|
"claude-code",
|
|
157450
157475
|
"codex",
|
|
157451
157476
|
"hermes",
|
|
157477
|
+
"oasis-agent",
|
|
157452
157478
|
"cursor"
|
|
157453
157479
|
]);
|
|
157454
157480
|
}
|
|
@@ -159159,6 +159185,8 @@ async function listModels(runtime, executablePath) {
|
|
|
159159
159185
|
return cachedDiscovery(runtime, () => discoverAntigravityModels(executablePath));
|
|
159160
159186
|
case "hermes":
|
|
159161
159187
|
return cachedDiscovery(runtime, async () => await discoverACPModels(executablePath ?? "hermes", "hermes", ["acp"]) ?? []);
|
|
159188
|
+
case "oasis-agent":
|
|
159189
|
+
return cachedDiscovery(runtime, async () => await discoverACPModels(executablePath ?? "oasis-agent", "oasis-agent", ["acp"], 3e4) ?? []);
|
|
159162
159190
|
case "kimi":
|
|
159163
159191
|
return cachedDiscovery(runtime, async () => await discoverACPModels(executablePath ?? "kimi", "kimi", ["acp"]) ?? []);
|
|
159164
159192
|
case "kiro":
|
|
@@ -159336,7 +159364,7 @@ async function runCapture(bin, args, timeoutMs = 15e3) {
|
|
|
159336
159364
|
child.on("close", (code) => done(code === 0 ? out : void 0));
|
|
159337
159365
|
});
|
|
159338
159366
|
}
|
|
159339
|
-
async function discoverACPModels(bin, provider, args = ["acp"]) {
|
|
159367
|
+
async function discoverACPModels(bin, provider, args = ["acp"], timeoutMs = 12e3) {
|
|
159340
159368
|
const child = (() => {
|
|
159341
159369
|
try {
|
|
159342
159370
|
return (0, import_node_child_process8.spawn)(bin, args, { stdio: ["pipe", "pipe", "ignore"], env: { ...process.env } });
|
|
@@ -159365,7 +159393,7 @@ async function discoverACPModels(bin, provider, args = ["acp"]) {
|
|
|
159365
159393
|
}
|
|
159366
159394
|
}
|
|
159367
159395
|
};
|
|
159368
|
-
const watchdog = setTimeout(cleanup,
|
|
159396
|
+
const watchdog = setTimeout(cleanup, timeoutMs);
|
|
159369
159397
|
return new Promise((resolve10) => {
|
|
159370
159398
|
const fail = () => {
|
|
159371
159399
|
cleanup();
|
|
@@ -161264,6 +161292,49 @@ var init_hermes = __esm({
|
|
|
161264
161292
|
}
|
|
161265
161293
|
});
|
|
161266
161294
|
|
|
161295
|
+
// ../adapters/src/oasis-agent/index.ts
|
|
161296
|
+
var OasisAgentAdapter;
|
|
161297
|
+
var init_oasis_agent = __esm({
|
|
161298
|
+
"../adapters/src/oasis-agent/index.ts"() {
|
|
161299
|
+
"use strict";
|
|
161300
|
+
init_acp();
|
|
161301
|
+
OasisAgentAdapter = class {
|
|
161302
|
+
constructor(opts = {}) {
|
|
161303
|
+
this.opts = opts;
|
|
161304
|
+
}
|
|
161305
|
+
/** ADR-0093:ACP 引擎原生支持对话追加(同 session 二次 session/prompt)。 */
|
|
161306
|
+
capabilities = { appendInput: true };
|
|
161307
|
+
spawn(job) {
|
|
161308
|
+
return runACPSession(job, {
|
|
161309
|
+
bin: this.opts.oasisAgentBin ?? "oasis-agent",
|
|
161310
|
+
args: ["acp"],
|
|
161311
|
+
yoloEnv: { HERMES_YOLO_MODE: "1" },
|
|
161312
|
+
model: this.opts.model,
|
|
161313
|
+
// 与 hermes 同源:PromptResponse.usage.inputTokens 是 prompt_tokens(已含缓存命中的读),
|
|
161314
|
+
// 归一到 Oasis 的「input / cacheRead 互斥」口径要先减一次。
|
|
161315
|
+
inputTokensIncludeCacheRead: true,
|
|
161316
|
+
// 同上:PromptResponse 上的用量是本轮完整快照,优先于中途的 usage_update 采样。
|
|
161317
|
+
finalUsageIsAuthoritative: true,
|
|
161318
|
+
workRoot: this.opts.workRoot,
|
|
161319
|
+
cleanupWorkdir: this.opts.cleanupWorkdir,
|
|
161320
|
+
env: {
|
|
161321
|
+
...this.opts.provider ? { HERMES_PROVIDER: this.opts.provider } : {},
|
|
161322
|
+
...this.opts.env
|
|
161323
|
+
},
|
|
161324
|
+
extraArgs: this.opts.extraArgs,
|
|
161325
|
+
runtimeKind: "oasis-agent",
|
|
161326
|
+
// 与 hermes 同源:不扫 cwd 技能目录,只认 `$HERMES_HOME/skills` + config `skills.external_dirs`。
|
|
161327
|
+
// 用**自己的** env 名(不复用 OASIS_HERMES_SKILLS_DIR)——两个 runtime 各有各的 config.yaml,
|
|
161328
|
+
// 名字分开才能在同机共存时一眼看出哪份 config 是给谁的。node enroll 会把该字面量写进
|
|
161329
|
+
// `~/.oasis-agent/home/config.yaml` 的 skills.external_dirs(见 connect-script.ts)。
|
|
161330
|
+
injectSkillsDirEnv: "OASIS_AGENT_SKILLS_DIR",
|
|
161331
|
+
...this.opts.syncSkills ? { syncSkills: this.opts.syncSkills } : {}
|
|
161332
|
+
});
|
|
161333
|
+
}
|
|
161334
|
+
};
|
|
161335
|
+
}
|
|
161336
|
+
});
|
|
161337
|
+
|
|
161267
161338
|
// ../adapters/src/kimi/index.ts
|
|
161268
161339
|
var KimiAdapter;
|
|
161269
161340
|
var init_kimi = __esm({
|
|
@@ -162490,6 +162561,7 @@ var init_src7 = __esm({
|
|
|
162490
162561
|
init_container_runtime();
|
|
162491
162562
|
init_codex();
|
|
162492
162563
|
init_hermes();
|
|
162564
|
+
init_oasis_agent();
|
|
162493
162565
|
init_kimi();
|
|
162494
162566
|
init_kiro();
|
|
162495
162567
|
init_reasonix();
|
|
@@ -179859,31 +179931,19 @@ else
|
|
|
179859
179931
|
echo '\u2192 \u4F9D\u8D56\u5DF2\u5B58\u5728\uFF0C\u8DF3\u8FC7\u5B89\u88C5'
|
|
179860
179932
|
fi
|
|
179861
179933
|
|
|
179862
|
-
#
|
|
179863
|
-
|
|
179864
|
-
|
|
179865
|
-
|
|
179866
|
-
|
|
179867
|
-
|
|
179868
|
-
|
|
179869
|
-
if [ -f "$HERMES_AGENT/pyproject.toml" ]; then
|
|
179870
|
-
"$HERMES_PIP" install -e "$HERMES_AGENT[acp]"
|
|
179871
|
-
else
|
|
179872
|
-
"$HERMES_PIP" install 'agent-client-protocol>=0.9.0,<1.0'
|
|
179873
|
-
fi
|
|
179874
|
-
fi
|
|
179875
|
-
# Oasis \u6BCF\u4F1A\u8BDD\u6280\u80FD\uFF1Ahermes \u4E0D\u626B cwd\uFF0C\u53EA\u8BA4 $HERMES_HOME/skills + config skills.external_dirs\u3002
|
|
179876
|
-
# \u5E42\u7B49\u5730\u628A config.yaml \u7684 external_dirs \u914D\u6210\u5B57\u9762\u91CF $OASIS_HERMES_SKILLS_DIR\uFF08\u7531 hermes \u8FD0\u884C\u65F6
|
|
179877
|
-
# \u6309 env \u5C55\u5F00\uFF1Badapter \u6BCF\u4F1A\u8BDD\u628A\u8BE5 env \u6307\u5411\u672C workdir \u7684\u6280\u80FD\u76EE\u5F55 \u2192 \u6BCF session \u5404\u81EA\u53D1\u73B0\uFF0C\u8BFB\u4FA7\u9694\u79BB\uFF09\u3002
|
|
179878
|
-
HERMES_HOME_DIR="$HERMES_HOME"
|
|
179879
|
-
if [ -z "$HERMES_HOME_DIR" ]; then HERMES_HOME_DIR="$HOME/.hermes"; fi
|
|
179880
|
-
"$HERMES_PY" - "$HERMES_HOME_DIR/config.yaml" <<'PYEOF' || true
|
|
179934
|
+
# hermes \u7CFB runtime\uFF08hermes / oasis-agent\uFF09\u7684\u6280\u80FD\u5916\u6302\u76EE\u5F55\uFF1A\u4E24\u8005\u90FD**\u4E0D\u626B cwd**\uFF0C\u53EA\u8BA4
|
|
179935
|
+
# $HERMES_HOME/skills + config skills.external_dirs\u3002\u8FD9\u91CC\u5E42\u7B49\u5730\u628A external_dirs \u914D\u6210\u4E00\u4E2A
|
|
179936
|
+
# **\u5B57\u9762\u91CF env \u540D**\uFF08\u7531\u8FD0\u884C\u65F6\u6309 env \u5C55\u5F00\uFF1Badapter \u6BCF\u4F1A\u8BDD\u628A\u8BE5 env \u6307\u5411\u672C workdir \u7684\u6280\u80FD\u76EE\u5F55
|
|
179937
|
+
# \u2192 \u6BCF session \u5404\u81EA\u53D1\u73B0\uFF0C\u8BFB\u4FA7\u9694\u79BB\uFF09\u3002\u5199\u56DE\u4ECD\u843D\u5168\u5C40 $HERMES_HOME/skills\u3002
|
|
179938
|
+
oasis_patch_hermes_skills_dir() {
|
|
179939
|
+
PY="$1"; CFG="$2"; TOKEN="$3"
|
|
179940
|
+
"$PY" - "$CFG" "$TOKEN" <<'PYEOF' || true
|
|
179881
179941
|
import sys, os
|
|
179882
179942
|
try:
|
|
179883
179943
|
import yaml
|
|
179884
179944
|
except Exception:
|
|
179885
179945
|
sys.exit(0)
|
|
179886
|
-
p = sys.argv[1]
|
|
179946
|
+
p, token = sys.argv[1], sys.argv[2]
|
|
179887
179947
|
data = {}
|
|
179888
179948
|
if os.path.exists(p):
|
|
179889
179949
|
try:
|
|
@@ -179901,7 +179961,6 @@ ext = skills.get("external_dirs")
|
|
|
179901
179961
|
if not isinstance(ext, list):
|
|
179902
179962
|
ext = [] if not ext else [ext]
|
|
179903
179963
|
skills["external_dirs"] = ext
|
|
179904
|
-
token = "$OASIS_HERMES_SKILLS_DIR"
|
|
179905
179964
|
if token not in ext:
|
|
179906
179965
|
ext.append(token)
|
|
179907
179966
|
os.makedirs(os.path.dirname(p), exist_ok=True)
|
|
@@ -179909,8 +179968,46 @@ if token not in ext:
|
|
|
179909
179968
|
with open(tmp, "w") as f:
|
|
179910
179969
|
yaml.safe_dump(data, f, sort_keys=False, allow_unicode=True)
|
|
179911
179970
|
os.replace(tmp, p)
|
|
179912
|
-
print("->
|
|
179971
|
+
print("-> %s: skills.external_dirs += %s" % (p, token))
|
|
179913
179972
|
PYEOF
|
|
179973
|
+
}
|
|
179974
|
+
|
|
179975
|
+
# ACP \u53EF\u9009\u4F9D\u8D56\uFF1A\u82E5\u672C\u673A\u5B89\u88C5\u4E86 hermes\uFF0C\u786E\u4FDD\u5176 ACP extra \u5DF2\u88C5\uFF08\u8BFB shebang \u5B9A\u4F4D\u5176 pip\uFF09
|
|
179976
|
+
if command -v hermes &>/dev/null; then
|
|
179977
|
+
HERMES_PY=$(head -1 "$(which hermes)" | sed 's/^#!//')
|
|
179978
|
+
HERMES_PIP="$(dirname "$HERMES_PY")/pip"
|
|
179979
|
+
if [ -x "$HERMES_PIP" ] && ! "$HERMES_PIP" show agent-client-protocol &>/dev/null 2>&1; then
|
|
179980
|
+
echo '\u2192 \u5B89\u88C5 hermes ACP \u4F9D\u8D56...'
|
|
179981
|
+
HERMES_AGENT="$(dirname "$(dirname "$(dirname "$HERMES_PY")")")"
|
|
179982
|
+
if [ -f "$HERMES_AGENT/pyproject.toml" ]; then
|
|
179983
|
+
"$HERMES_PIP" install -e "$HERMES_AGENT[acp]"
|
|
179984
|
+
else
|
|
179985
|
+
"$HERMES_PIP" install 'agent-client-protocol>=0.9.0,<1.0'
|
|
179986
|
+
fi
|
|
179987
|
+
fi
|
|
179988
|
+
HERMES_HOME_DIR="$HERMES_HOME"
|
|
179989
|
+
if [ -z "$HERMES_HOME_DIR" ]; then HERMES_HOME_DIR="$HOME/.hermes"; fi
|
|
179990
|
+
oasis_patch_hermes_skills_dir "$HERMES_PY" "$HERMES_HOME_DIR/config.yaml" '$OASIS_HERMES_SKILLS_DIR'
|
|
179991
|
+
fi
|
|
179992
|
+
|
|
179993
|
+
# oasis-agent\uFF08hermes-agent \u5206\u53C9\uFF0C\u89C1 docs/oasis-agent-runtime.md\uFF09\u3002\u5B83\u7684 PATH \u5165\u53E3\u662F\u4E00\u5C42 bash
|
|
179994
|
+
# wrapper\uFF0C\u4E0D\u662F python \u811A\u672C\uFF0C\u6240\u4EE5**\u4E0D\u80FD\u8BFB shebang** \u5B9A\u4F4D\u89E3\u91CA\u5668\u2014\u2014\u6309\u5B89\u88C5\u7EA6\u5B9A\u8D70 venv \u8DEF\u5F84\u3002
|
|
179995
|
+
# \u4E0E hermes \u5404\u7528\u5404\u7684 HERMES_HOME \u4E0E\u5404\u81EA\u7684 config.yaml\uFF0C\u540C\u673A\u53EF\u5171\u5B58\u3002
|
|
179996
|
+
if command -v oasis-agent &>/dev/null; then
|
|
179997
|
+
OA_ROOT="$OASIS_AGENT_ROOT"
|
|
179998
|
+
if [ -z "$OA_ROOT" ]; then OA_ROOT="$HOME/.oasis-agent"; fi
|
|
179999
|
+
OA_PY="$OA_ROOT/venv/bin/python"
|
|
180000
|
+
OA_HOME="$OASIS_AGENT_HOME"
|
|
180001
|
+
if [ -z "$OA_HOME" ]; then OA_HOME="$OA_ROOT/home"; fi
|
|
180002
|
+
if [ -x "$OA_PY" ]; then
|
|
180003
|
+
if ! "$OA_PY" -c 'import acp' &>/dev/null; then
|
|
180004
|
+
echo '\u2192 \u5B89\u88C5 oasis-agent ACP \u4F9D\u8D56...'
|
|
180005
|
+
"$OA_PY" -m pip install 'agent-client-protocol>=0.9.0,<1.0' || true
|
|
180006
|
+
fi
|
|
180007
|
+
oasis_patch_hermes_skills_dir "$OA_PY" "$OA_HOME/config.yaml" '$OASIS_AGENT_SKILLS_DIR'
|
|
180008
|
+
else
|
|
180009
|
+
echo "\u26A0 oasis-agent \u5728 PATH \u4E0A\u4F46\u6CA1\u627E\u5230 $OA_PY\u2014\u2014\u6280\u80FD\u5916\u6302\u76EE\u5F55\u672A\u914D\u7F6E\uFF0C\u8BF7\u6838\u5BF9\u5B89\u88C5\u4F4D\u7F6E"
|
|
180010
|
+
fi
|
|
179914
180011
|
fi
|
|
179915
180012
|
|
|
179916
180013
|
OASIS_DIR="$(pwd)"
|
|
@@ -188847,17 +188944,7 @@ var init_daemon_adapter = __esm({
|
|
|
188847
188944
|
if (job.binding?.nodeId) return this.opts.remote.spawn(job);
|
|
188848
188945
|
const msg = `\u62D2\u7EDD\u6D3E\u53D1\uFF1A${job.actor} \u65E0 active runtime \u7ED1\u5B9A\u2014\u2014\u4E0D\u56DE\u843D\u672C\u5730\uFF08\u5148\u5728\u5E73\u53F0\u4E3A\u8BE5\u5458\u5DE5\u914D\u7F6E runtime\uFF09`;
|
|
188849
188946
|
console.warn(`[dispatch] ${msg}\uFF08artifact=${job.artifactId}\uFF09`);
|
|
188850
|
-
|
|
188851
|
-
id: `refused-${job.artifactId.replace(/[^a-zA-Z0-9_-]+/g, "_").slice(0, 40)}`,
|
|
188852
|
-
kill: async () => {
|
|
188853
|
-
},
|
|
188854
|
-
onOutput: () => {
|
|
188855
|
-
},
|
|
188856
|
-
onTelemetry: () => {
|
|
188857
|
-
},
|
|
188858
|
-
onExit: (cb) => cb({ code: null, reason: "error" })
|
|
188859
|
-
// 立败 → strike/退避/熔断 → 表面化给人
|
|
188860
|
-
};
|
|
188947
|
+
throw new Error(msg);
|
|
188861
188948
|
}
|
|
188862
188949
|
};
|
|
188863
188950
|
WorkdirBridge = class {
|
|
@@ -197513,6 +197600,7 @@ function traceRuntimeKind(runtimeKind) {
|
|
|
197513
197600
|
if (runtimeKind === "claude" || runtimeKind === "claude-code") return "claude-code";
|
|
197514
197601
|
if (runtimeKind === "codex") return "codex";
|
|
197515
197602
|
if (runtimeKind === "hermes") return "hermes";
|
|
197603
|
+
if (runtimeKind === "oasis-agent") return "oasis-agent";
|
|
197516
197604
|
return "custom";
|
|
197517
197605
|
}
|
|
197518
197606
|
function reworkWavefrontFromEnv(raw) {
|
|
@@ -199583,6 +199671,12 @@ async function startServe(opts) {
|
|
|
199583
199671
|
console.log(`[new-engine] dispatchWork ${workId} \u2192 ${rev.artifactId} / ${rev.author}${replyIssueId ? `\uFF08\u56DE\u4FE1 ${replyIssueId}\uFF09` : ""}`);
|
|
199584
199672
|
const art = kernelModel.artifacts.get(rev.artifactId);
|
|
199585
199673
|
const wid = art?.workspace ?? "";
|
|
199674
|
+
const actorRecord = await registryStore.getActor(rev.author).catch(() => null);
|
|
199675
|
+
const actorKind = actorRecord?.kind ?? (rev.author.startsWith("actor:human:") ? "human" : rev.author.startsWith("actor:agent:") ? "agent" : void 0);
|
|
199676
|
+
if (actorKind === "human") {
|
|
199677
|
+
console.log(`[new-engine] dispatchWork ${workId} \u662F human work\u2014\u2014\u4E0D\u6D3E runtime\uFF0C\u7B49\u5F85\u4EBA\u5DE5\u5904\u7406`);
|
|
199678
|
+
return;
|
|
199679
|
+
}
|
|
199586
199680
|
const ledgerId = `dispatch:${(0, import_node_crypto45.randomUUID)()}`;
|
|
199587
199681
|
try {
|
|
199588
199682
|
await dispatchLedger.insertOpen({
|
|
@@ -200886,6 +200980,7 @@ var KNOWN2 = [
|
|
|
200886
200980
|
{ adapter: "gemini", binary: "gemini" },
|
|
200887
200981
|
{ adapter: "opencode", binary: "opencode" },
|
|
200888
200982
|
{ adapter: "hermes", binary: "hermes" },
|
|
200983
|
+
{ adapter: "oasis-agent", binary: "oasis-agent" },
|
|
200889
200984
|
{ adapter: "copilot", binary: "copilot" },
|
|
200890
200985
|
{ adapter: "kimi", binary: "kimi" },
|
|
200891
200986
|
{ adapter: "kiro", binary: "kiro-cli" },
|
|
@@ -200895,7 +200990,7 @@ var KNOWN2 = [
|
|
|
200895
200990
|
{ adapter: "codebuddy", binary: "codebuddy" },
|
|
200896
200991
|
{ adapter: "antigravity", binary: "agy" }
|
|
200897
200992
|
];
|
|
200898
|
-
var NATIVE_APPEND_RUNTIMES = /* @__PURE__ */ new Set(["hermes", "gemini", "kimi", "kiro", "reasonix"]);
|
|
200993
|
+
var NATIVE_APPEND_RUNTIMES = /* @__PURE__ */ new Set(["hermes", "oasis-agent", "gemini", "kimi", "kiro", "reasonix"]);
|
|
200899
200994
|
function resolveOnPath(binary) {
|
|
200900
200995
|
try {
|
|
200901
200996
|
const cmd = process.platform === "win32" ? "where" : "which";
|
|
@@ -201699,6 +201794,7 @@ async function startNode(opts) {
|
|
|
201699
201794
|
claude,
|
|
201700
201795
|
codex: new CodexAdapter({ syncSkills: syncSkillsHook }),
|
|
201701
201796
|
hermes: new HermesAdapter({ syncSkills: syncSkillsHook }),
|
|
201797
|
+
"oasis-agent": new OasisAgentAdapter({ syncSkills: syncSkillsHook }),
|
|
201702
201798
|
cursor: new CursorAdapter({ syncSkills: syncSkillsHook }),
|
|
201703
201799
|
gemini: new GeminiAdapter(),
|
|
201704
201800
|
opencode: new OpenCodeAdapter(),
|
|
@@ -206502,7 +206598,7 @@ function syncRuntimeAssets(candidateRoots, binDir) {
|
|
|
206502
206598
|
}
|
|
206503
206599
|
|
|
206504
206600
|
// src/index.ts
|
|
206505
|
-
var PKG_VERSION = true ? "0.1.
|
|
206601
|
+
var PKG_VERSION = true ? "0.1.114" : "dev";
|
|
206506
206602
|
var OASIS_DIR = path30.join(os12.homedir(), ".oasis");
|
|
206507
206603
|
var CONFIG_FILE = path30.join(OASIS_DIR, "node-config.json");
|
|
206508
206604
|
var PID_FILE = path30.join(OASIS_DIR, "node.pid");
|