@sentropic/h2a-runtime 0.85.17 → 0.85.19
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/agents-projection.d.ts.map +1 -1
- package/dist/agents-projection.js +3 -1
- package/dist/agents-projection.js.map +1 -1
- package/dist/conv-guard.d.ts.map +1 -1
- package/dist/conv-guard.js +7 -1
- package/dist/conv-guard.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +136 -30
- package/dist/index.js.map +1 -1
- package/dist/interactive-throttle.d.ts +1 -1
- package/dist/interactive-throttle.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/model-catalog.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/model-catalog.js +7 -1
- package/dist/llm-gateway-runtime/model-catalog.js.map +1 -1
- package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/proxy-anthropic.js +7 -0
- package/dist/llm-gateway-runtime/proxy-anthropic.js.map +1 -1
- package/dist/llm-gateway-runtime/proxy-gemini.d.ts +81 -0
- package/dist/llm-gateway-runtime/proxy-gemini.d.ts.map +1 -0
- package/dist/llm-gateway-runtime/proxy-gemini.js +388 -0
- package/dist/llm-gateway-runtime/proxy-gemini.js.map +1 -0
- package/dist/llm-mesh.d.ts +7 -2
- package/dist/llm-mesh.d.ts.map +1 -1
- package/dist/llm-mesh.js +60 -2
- package/dist/llm-mesh.js.map +1 -1
- package/dist/registry.d.ts +29 -6
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +87 -44
- package/dist/registry.js.map +1 -1
- package/dist/relaunch.d.ts +1 -1
- package/dist/relaunch.d.ts.map +1 -1
- package/dist/relaunch.js +15 -0
- package/dist/relaunch.js.map +1 -1
- package/dist/restore.d.ts +3 -0
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +29 -12
- package/dist/restore.js.map +1 -1
- package/dist/tmux.d.ts +34 -9
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +85 -24
- package/dist/tmux.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-projection.d.ts","sourceRoot":"","sources":["../src/agents-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,YAAY,CAAC;AAClE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,QAAQ,CAAC;IACtB,8BAA8B,EAAE,KAAK,CAAC;IACtC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE;QACZ,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,uBAAuB,EAAE,KAAK,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,qBAAqB,CAyBzE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"agents-projection.d.ts","sourceRoot":"","sources":["../src/agents-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,YAAY,CAAC;AAClE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,QAAQ,CAAC;IACtB,8BAA8B,EAAE,KAAK,CAAC;IACtC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE;QACZ,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,uBAAuB,EAAE,KAAK,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,qBAAqB,CAyBzE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,qBAAqB,CAuB/E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC;CAClC,GAAG,oBAAoB,CAYvB;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,qBAAqB,GAC3B,0BAA0B,CAQ5B;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,qBAAqB,EAAE,EACxC,QAAQ,EAAE,MAAM,GACf,qBAAqB,GAAG,SAAS,CAUnC"}
|
|
@@ -38,7 +38,9 @@ export function projectLocalSessionAgent(row) {
|
|
|
38
38
|
state: row.state,
|
|
39
39
|
cwd: row.path,
|
|
40
40
|
...(row.displayName !== undefined ? { label: row.displayName } : {}),
|
|
41
|
-
tmuxSession
|
|
41
|
+
...(row.tmuxSession !== undefined
|
|
42
|
+
? { tmuxSession: row.tmuxSession }
|
|
43
|
+
: {}),
|
|
42
44
|
sources: [{ kind: "local-tmux", id: row.slug }],
|
|
43
45
|
conflicts: row.badge === "guess" ? ["not-enrolled-in-registry"] : [],
|
|
44
46
|
capabilities: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-projection.js","sourceRoot":"","sources":["../src/agents-projection.ts"],"names":[],"mappings":"AAwDA,MAAM,UAAU,mBAAmB,CAAC,GAAkB;IACpD,OAAO,cAAc,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAkB;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAqB,CAAC;IAC9D,OAAO;QACL,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE;QACnB,WAAW,EAAE,QAAQ;QACrB,8BAA8B,EAAE,KAAK;QACrC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG;QAC7B,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,WAAW,EAAE,mBAAmB,CAAC,GAAG,CAAC;QACrC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC/C,SAAS,EAAE,EAAE;QACb,YAAY,EAAE;YACZ,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ;YACrB,IAAI,EAAE,IAAI;YACV,MAAM;YACN,uBAAuB,EAAE,KAAK;SAC/B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAe;IACtD,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO;QACL,EAAE;QACF,WAAW,EAAE,QAAQ;QACrB,8BAA8B,EAAE,KAAK;QACrC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,GAAG,CAAC,OAAO;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,GAAG,CAAC,IAAI;QACb,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"agents-projection.js","sourceRoot":"","sources":["../src/agents-projection.ts"],"names":[],"mappings":"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"}
|
package/dist/conv-guard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conv-guard.d.ts","sourceRoot":"","sources":["../src/conv-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAY,KAAK,YAAY,EAAsB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"conv-guard.d.ts","sourceRoot":"","sources":["../src/conv-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAY,KAAK,YAAY,EAAsB,MAAM,eAAe,CAAC;AAGhF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,cAAc,CAAC;IACtB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA4BF;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAAmB,GACxB,SAAS,EAAE,CAsCb;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAC/B,MAAM,CAQR;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtE,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,OAAO,CAAC,CAkClB"}
|
package/dist/conv-guard.js
CHANGED
|
@@ -17,13 +17,19 @@
|
|
|
17
17
|
* tells the caller whether to proceed (--force overrides, loudly).
|
|
18
18
|
*/
|
|
19
19
|
import { listLive } from "./registry.js";
|
|
20
|
+
import { managedSessionCandidates } from "./tmux.js";
|
|
20
21
|
function ownerFromEntry(e) {
|
|
21
22
|
if (e.kind === "local-tmux") {
|
|
22
23
|
const slug = e.label ?? e.id;
|
|
24
|
+
const candidates = managedSessionCandidates(e.id);
|
|
25
|
+
const session = e.tmuxSession ?? candidates.join(" or ");
|
|
26
|
+
const stop = e.tmuxSession
|
|
27
|
+
? `h2a stop ${e.tmuxSession}`
|
|
28
|
+
: candidates.map((name) => `h2a stop ${name}`).join(" or ");
|
|
23
29
|
return {
|
|
24
30
|
where: "local-tmux",
|
|
25
31
|
label: slug,
|
|
26
|
-
detail: `local tmux session ${
|
|
32
|
+
detail: `local tmux session ${session} (${e.tool}, cwd ${e.cwd}) — stop it first: ${stop}`,
|
|
27
33
|
};
|
|
28
34
|
}
|
|
29
35
|
return {
|
package/dist/conv-guard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conv-guard.js","sourceRoot":"","sources":["../src/conv-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAyC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"conv-guard.js","sourceRoot":"","sources":["../src/conv-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+GA,OAAO,EAaL,KAAK,aAAa,EAGnB,MAAM,eAAe,CAAC;AA6GvB,OAAO,EAGL,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAgHhC,eAAO,MAAM,WAAW,2BAA2B,CAAC;AACpD,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AA0XrB,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AA4HD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA6G7B;AAyED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAEvC,OAAO,GAAE;IACP,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IACnD,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACtD,GACV,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAC1D,OAAO,GAAE;IACP,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IACnD,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CACtD,GACV,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAQD,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAwP1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAqHrE;AAgND,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,EACnC,MAAM,GAAE,CACN,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,KAChC,OAAO,CAAC,MAAM,GAAG,SAAS,CACoC,GAClE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AA2JD,wBAAsB,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyyNvE;AA0BD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AAC/B,oFAAoF;AACpF,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAE5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,MAAM,CAEnE"}
|
package/dist/index.js
CHANGED
|
@@ -14,12 +14,12 @@ import { transmittedSecrets, secretsSummary } from "./secrets.js";
|
|
|
14
14
|
import { localConvStat, remoteConvStat, alignment } from "./convsync.js";
|
|
15
15
|
import { gitAlignment, localAncestry, localGitStat, remoteGitStat, } from "./gitdiff.js";
|
|
16
16
|
import { syncConversation } from "./sync.js";
|
|
17
|
-
import { attachLocalSession, attachPodTmux, capturePane, conductorRunning, currentTmuxSessionIs, ensureManagedTmuxProfile, existingLocalSessionSlugs, fanoutLabels, findLocalSession, killLocalSession, localSessionGatewayEnvStatus, listLocalSessions, localSessionIdle, localSessionPanePid, localSessionName, readLaunchContext, relaunchInSession, resolveAgentPaneForInstance, runLocalCliForeground, sendKeysLiteral, sessionAttached, sessionAttachedCount, setLocalSessionDisplayName, slugify, cleanupHeadlessPromptFile, startH2aWindow, startH2aWindowVerified, startHeadlessSession, startLocalSession, tmuxAvailable, } from "./tmux.js";
|
|
17
|
+
import { attachLocalSession, attachPodTmux, capturePane, conductorRunning, currentTmuxSessionIs, ensureManagedTmuxProfile, existingLocalSessionSlugs, fanoutLabels, findLocalSession, killLocalSession, localSessionGatewayEnvStatus, listLocalSessions, localSessionIdle, localSessionPanePid, localSessionName, managedSessionCandidates, parseManagedSessionName, readLaunchContext, relaunchInSession, resolveAgentPaneForInstance, resolveLocalSession, runLocalCliForeground, sendKeysLiteral, sessionAttached, sessionAttachedCount, setLocalSessionDisplayName, slugify, cleanupHeadlessPromptFile, startH2aWindow, startH2aWindowVerified, startHeadlessSession, startLocalSession, tmuxAvailable, } from "./tmux.js";
|
|
18
18
|
import { buildAgentLaunchArgs, isAgentLaunchEffort, isAgentLaunchProfile, } from "./agent-launch-args.js";
|
|
19
19
|
import { planRelaunch } from "./relaunch.js";
|
|
20
20
|
import { readLastLayout, restore as restoreLayout, } from "./restore.js";
|
|
21
21
|
import { getLayoutConfig } from "./config.js";
|
|
22
|
-
import { advanceJob, coerceRegistryTool, enroll, enrollFromRun, isLive, listJobs, listLocalForLs, loadRegistry,
|
|
22
|
+
import { advanceJob, coerceRegistryTool, enroll, enrollFromRun, isLive, listJobs, listLocalForLs, loadRegistry, resolveLocalTmuxSessionForName, tryClaimSlot, withRegistryLock, resolveRegistryPath, } from "./registry.js";
|
|
23
23
|
import { aimdEffectiveCap, assertDelegateEffort, assertSafeName, buildDelegateArgs, buildJobRows, buildRemoteDelegate, buildThrottleResumeArgs, canDelegateAtDepth, childDepthEnvValue, clampDepth, clampRemoteDepthBudget, conductorAdvisory, DEFAULT_MAX_CONCURRENT, DEPTH_ENV, inheritedDepthBudget, isDelegateType, isThrottleResumeDue, jitteredBackoffMs, JOB_ID_ENV, jobDir, planNextStarts, planThrottleStep, readJobResult, THROTTLE_MAX_ATTEMPTS, reconcileRemoteJobs, renderJobsTable, resolveJobCwd, runTrackMirror, sweepStaleJobs, trackItemNewArgs, trackItemRealizeArgs, } from "./delegate.js";
|
|
24
24
|
import { detectThrottle, THROTTLE_TAIL_LINES } from "./throttle-signatures.js";
|
|
25
25
|
import { interactiveResumeNudge, planInteractiveResume, } from "./interactive-throttle.js";
|
|
@@ -60,7 +60,7 @@ import { appendSessionLogEntry, clearBinding, clearExhaustion, enrollAccount, li
|
|
|
60
60
|
const H2A_RUN_API_VERSION = "h2a.run/v1";
|
|
61
61
|
const H2A_RUNTIME_VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
|
|
62
62
|
import { CLI_PROFILES } from "./protocol-local.js";
|
|
63
|
-
import { enrollCodexAccount, enrollClaudeAccount, readLlmMeshConfig, startGateway, stopGateway, writeLlmMeshConfig, readGatewayPid, llmMeshLogPath, jwtExpiry, readLlmMeshSessionEnv, acquireLlmMeshSessionEnv, } from "./llm-mesh.js";
|
|
63
|
+
import { enrollCodexAccount, enrollClaudeAccount, enrollGeminiAccount, readLlmMeshConfig, startGateway, stopGateway, writeLlmMeshConfig, readGatewayPid, llmMeshLogPath, jwtExpiry, readLlmMeshSessionEnv, acquireLlmMeshSessionEnv, } from "./llm-mesh.js";
|
|
64
64
|
const KNOWN_PROFILE_HELP = `${CLI_PROFILES.join(", ")} (aliases: claude-code, antigravity, gemini-cli, mistralcli)`;
|
|
65
65
|
export const packageName = "@sentropic/h2a-runtime";
|
|
66
66
|
export const H2A_RUNTIME_CLI_API_VERSION = 1;
|
|
@@ -1242,17 +1242,30 @@ async function prepareLlmMeshForRestore(opts = {}) {
|
|
|
1242
1242
|
}
|
|
1243
1243
|
}
|
|
1244
1244
|
function registryEntryForResumeTarget(target, local) {
|
|
1245
|
-
const
|
|
1246
|
-
const
|
|
1247
|
-
const
|
|
1248
|
-
const
|
|
1249
|
-
|
|
1250
|
-
|
|
1245
|
+
const parsedTarget = parseManagedSessionName(target);
|
|
1246
|
+
const canonicalSlug = local?.slug ?? parsedTarget?.slug ?? target;
|
|
1247
|
+
const tmuxSession = local?.name ?? target;
|
|
1248
|
+
const candidates = local
|
|
1249
|
+
? [local.name]
|
|
1250
|
+
: parsedTarget
|
|
1251
|
+
? [target]
|
|
1252
|
+
: managedSessionCandidates(canonicalSlug);
|
|
1253
|
+
const matches = loadRegistry().filter((e) => {
|
|
1254
|
+
if (e.role !== undefined || e.kind !== "local-tmux")
|
|
1255
|
+
return false;
|
|
1256
|
+
// Full managed names are exact targets; never reinterpret one as an id
|
|
1257
|
+
// or label that happens to share a prefix-shaped string.
|
|
1258
|
+
if (parsedTarget) {
|
|
1259
|
+
return (e.tmuxSession === tmuxSession ||
|
|
1260
|
+
(e.tmuxSession === undefined && e.id === canonicalSlug));
|
|
1261
|
+
}
|
|
1262
|
+
return (e.id === target ||
|
|
1251
1263
|
e.id === canonicalSlug ||
|
|
1252
1264
|
e.label === target ||
|
|
1253
1265
|
e.label === canonicalSlug ||
|
|
1254
1266
|
e.tmuxSession === tmuxSession ||
|
|
1255
|
-
e.tmuxSession
|
|
1267
|
+
(e.tmuxSession !== undefined && candidates.includes(e.tmuxSession)));
|
|
1268
|
+
});
|
|
1256
1269
|
const ids = new Set(matches.map((e) => e.id));
|
|
1257
1270
|
if (ids.size !== 1)
|
|
1258
1271
|
return undefined;
|
|
@@ -1260,6 +1273,36 @@ function registryEntryForResumeTarget(target, local) {
|
|
|
1260
1273
|
.slice()
|
|
1261
1274
|
.sort((a, b) => b.lastSeenAt.localeCompare(a.lastSeenAt))[0];
|
|
1262
1275
|
}
|
|
1276
|
+
/**
|
|
1277
|
+
* Resolve tmux first, then the durable registry, without allowing a bare slug
|
|
1278
|
+
* that names both prefix generations to fall through to a remote session.
|
|
1279
|
+
*/
|
|
1280
|
+
function resolveManagedLocalTarget(target) {
|
|
1281
|
+
const live = resolveLocalSession(target);
|
|
1282
|
+
if (live.kind === "found") {
|
|
1283
|
+
return { kind: "found", name: live.session.name, local: live.session };
|
|
1284
|
+
}
|
|
1285
|
+
if (live.kind === "ambiguous") {
|
|
1286
|
+
return {
|
|
1287
|
+
kind: "ambiguous",
|
|
1288
|
+
names: live.sessions.map((session) => session.name).sort(),
|
|
1289
|
+
};
|
|
1290
|
+
}
|
|
1291
|
+
const registered = resolveLocalTmuxSessionForName(target, loadRegistry());
|
|
1292
|
+
if (registered.kind === "found") {
|
|
1293
|
+
return { kind: "found", name: registered.name };
|
|
1294
|
+
}
|
|
1295
|
+
if (registered.kind === "ambiguous") {
|
|
1296
|
+
return { kind: "ambiguous", names: [...registered.names].sort() };
|
|
1297
|
+
}
|
|
1298
|
+
return { kind: "missing" };
|
|
1299
|
+
}
|
|
1300
|
+
function reportAmbiguousLocalTarget(target, action, names) {
|
|
1301
|
+
const choices = [...new Set(names)].sort();
|
|
1302
|
+
process.stderr.write(`[h2a] local session "${target}" is ambiguous; use an exact managed tmux name:\n` +
|
|
1303
|
+
choices.map((name) => ` h2a ${action} ${name}`).join("\n") +
|
|
1304
|
+
"\n");
|
|
1305
|
+
}
|
|
1263
1306
|
async function confirmReplace(slug) {
|
|
1264
1307
|
if (process.stdin.isTTY !== true || process.stderr.isTTY !== true) {
|
|
1265
1308
|
return false;
|
|
@@ -2985,8 +3028,16 @@ export async function main(argv) {
|
|
|
2985
3028
|
return;
|
|
2986
3029
|
}
|
|
2987
3030
|
const target = slug ?? slugify(process.cwd());
|
|
2988
|
-
const
|
|
2989
|
-
|
|
3031
|
+
const localResolution = resolveLocalSession(target);
|
|
3032
|
+
if (localResolution.kind === "ambiguous") {
|
|
3033
|
+
reportAmbiguousLocalTarget(target, "resume", localResolution.sessions.map((session) => session.name));
|
|
3034
|
+
process.exitCode = 1;
|
|
3035
|
+
return;
|
|
3036
|
+
}
|
|
3037
|
+
const local = localResolution.kind === "found"
|
|
3038
|
+
? localResolution.session
|
|
3039
|
+
: undefined;
|
|
3040
|
+
const displaySlug = local?.slug ?? parseManagedSessionName(target)?.slug ?? target;
|
|
2990
3041
|
const registryEntry = registryEntryForResumeTarget(target, local);
|
|
2991
3042
|
const resolvedConvId = explicitProfile === "claude" && opts.last
|
|
2992
3043
|
? localConvStat(process.cwd())?.convId
|
|
@@ -4158,13 +4209,18 @@ export async function main(argv) {
|
|
|
4158
4209
|
return;
|
|
4159
4210
|
}
|
|
4160
4211
|
// LOCAL job (P1): attach into the detached tmux session.
|
|
4161
|
-
const
|
|
4162
|
-
if (
|
|
4212
|
+
const localTarget = resolveLocalSession(job?.tmuxSession ?? id);
|
|
4213
|
+
if (localTarget.kind === "ambiguous") {
|
|
4214
|
+
reportAmbiguousLocalTarget(id, "jobs attach", localTarget.sessions.map((s) => s.name));
|
|
4215
|
+
process.exitCode = 1;
|
|
4216
|
+
return;
|
|
4217
|
+
}
|
|
4218
|
+
if (localTarget.kind !== "found") {
|
|
4163
4219
|
process.stderr.write(`[h2a] no live tmux session for job "${id}" (it may have ended; see: h2a jobs status ${id})\n`);
|
|
4164
4220
|
process.exitCode = 1;
|
|
4165
4221
|
return;
|
|
4166
4222
|
}
|
|
4167
|
-
process.exitCode = attachLocalSession(name);
|
|
4223
|
+
process.exitCode = attachLocalSession(localTarget.session.name);
|
|
4168
4224
|
});
|
|
4169
4225
|
jobsCommand
|
|
4170
4226
|
.command("logs <id>")
|
|
@@ -4172,6 +4228,24 @@ export async function main(argv) {
|
|
|
4172
4228
|
.action((id) => {
|
|
4173
4229
|
const job = listJobs().find((e) => e.id === id);
|
|
4174
4230
|
if (!job) {
|
|
4231
|
+
// Match `jobs attach`: an exact local tmux name (or a unique bare slug)
|
|
4232
|
+
// is still useful even when it is not a delegated-job registry id.
|
|
4233
|
+
const localTarget = resolveLocalSession(id);
|
|
4234
|
+
if (localTarget.kind === "ambiguous") {
|
|
4235
|
+
reportAmbiguousLocalTarget(id, "jobs logs", localTarget.sessions.map((s) => s.name));
|
|
4236
|
+
process.exitCode = 1;
|
|
4237
|
+
return;
|
|
4238
|
+
}
|
|
4239
|
+
if (localTarget.kind === "found") {
|
|
4240
|
+
const pane = capturePane(localTarget.session.name);
|
|
4241
|
+
if (pane) {
|
|
4242
|
+
process.stdout.write(pane);
|
|
4243
|
+
return;
|
|
4244
|
+
}
|
|
4245
|
+
process.stderr.write(`[h2a] no logs for local tmux session "${id}" (the tmux pane is gone)\n`);
|
|
4246
|
+
process.exitCode = 1;
|
|
4247
|
+
return;
|
|
4248
|
+
}
|
|
4175
4249
|
process.stderr.write(`[h2a] no job "${id}" (see: h2a jobs ls)\n`);
|
|
4176
4250
|
process.exitCode = 1;
|
|
4177
4251
|
return;
|
|
@@ -4188,8 +4262,15 @@ export async function main(argv) {
|
|
|
4188
4262
|
process.exitCode = 1;
|
|
4189
4263
|
return;
|
|
4190
4264
|
}
|
|
4191
|
-
const
|
|
4192
|
-
|
|
4265
|
+
const localTarget = resolveLocalSession(job.tmuxSession ?? id);
|
|
4266
|
+
if (localTarget.kind === "ambiguous") {
|
|
4267
|
+
reportAmbiguousLocalTarget(id, "jobs logs", localTarget.sessions.map((s) => s.name));
|
|
4268
|
+
process.exitCode = 1;
|
|
4269
|
+
return;
|
|
4270
|
+
}
|
|
4271
|
+
const pane = localTarget.kind === "found"
|
|
4272
|
+
? capturePane(localTarget.session.name)
|
|
4273
|
+
: "";
|
|
4193
4274
|
if (pane) {
|
|
4194
4275
|
process.stdout.write(pane);
|
|
4195
4276
|
return;
|
|
@@ -4807,11 +4888,17 @@ export async function main(argv) {
|
|
|
4807
4888
|
process.exitCode = 1;
|
|
4808
4889
|
return;
|
|
4809
4890
|
}
|
|
4810
|
-
//
|
|
4891
|
+
// Exact tmux session -> its own convId when available. Historical rows
|
|
4892
|
+
// fall back to their slug only after planRelaunch has excluded a dual
|
|
4893
|
+
// h2a-/remote- prefix collision.
|
|
4894
|
+
const convByTmuxSession = new Map();
|
|
4811
4895
|
const convBySlug = new Map();
|
|
4812
4896
|
for (const e of loadRegistry()) {
|
|
4813
|
-
if (e.kind
|
|
4814
|
-
|
|
4897
|
+
if (e.kind !== "local-tmux" || !e.convId)
|
|
4898
|
+
continue;
|
|
4899
|
+
convBySlug.set(e.id, e.convId);
|
|
4900
|
+
if (e.tmuxSession)
|
|
4901
|
+
convByTmuxSession.set(e.tmuxSession, e.convId);
|
|
4815
4902
|
}
|
|
4816
4903
|
const sessions = listLocalSessions().filter((s) => !filter || s.slug.includes(filter));
|
|
4817
4904
|
const plan = planRelaunch(sessions.map((s) => ({
|
|
@@ -4819,9 +4906,11 @@ export async function main(argv) {
|
|
|
4819
4906
|
name: s.name,
|
|
4820
4907
|
profile: s.profile,
|
|
4821
4908
|
idle: localSessionIdle(s.name),
|
|
4822
|
-
...(
|
|
4823
|
-
? { convId:
|
|
4824
|
-
:
|
|
4909
|
+
...(convByTmuxSession.has(s.name)
|
|
4910
|
+
? { convId: convByTmuxSession.get(s.name) }
|
|
4911
|
+
: convBySlug.has(s.slug)
|
|
4912
|
+
? { convId: convBySlug.get(s.slug) }
|
|
4913
|
+
: {}),
|
|
4825
4914
|
})));
|
|
4826
4915
|
if (plan.actions.length === 0) {
|
|
4827
4916
|
process.stderr.write(`[h2a] nothing to relaunch${filter ? ` matching "${filter}"` : ""} (${plan.skipped.length} skipped)\n`);
|
|
@@ -5307,7 +5396,12 @@ export async function main(argv) {
|
|
|
5307
5396
|
.action(async (first, second, opts) => {
|
|
5308
5397
|
// Local tmux session? (unless an explicit URL/sessionId pair is given).
|
|
5309
5398
|
if (second === undefined && !looksLikeUrl(first)) {
|
|
5310
|
-
const
|
|
5399
|
+
const localTarget = resolveManagedLocalTarget(first);
|
|
5400
|
+
if (localTarget.kind === "ambiguous") {
|
|
5401
|
+
reportAmbiguousLocalTarget(first, "attach", localTarget.names);
|
|
5402
|
+
process.exitCode = 1;
|
|
5403
|
+
return;
|
|
5404
|
+
}
|
|
5311
5405
|
// A session started by `h2a run` is enrolled in the registry as
|
|
5312
5406
|
// kind:"local-tmux". Trust that durable record even when a transient
|
|
5313
5407
|
// `tmux list-sessions` miss hides the live session — otherwise a purely
|
|
@@ -5316,7 +5410,7 @@ export async function main(argv) {
|
|
|
5316
5410
|
// `h2a ls` already merges registry + tmux; attach must not be less
|
|
5317
5411
|
// reliable. When the registry says local but tmux can't reach it,
|
|
5318
5412
|
// attachLocalSession fails with a clear LOCAL error (never a Pod).
|
|
5319
|
-
const localName =
|
|
5413
|
+
const localName = localTarget.kind === "found" ? localTarget.name : undefined;
|
|
5320
5414
|
if (opts.local || localName) {
|
|
5321
5415
|
if (!localName) {
|
|
5322
5416
|
process.stderr.write(`[h2a] no local session "${first}" (see: h2a ls)\n`);
|
|
@@ -5499,10 +5593,15 @@ export async function main(argv) {
|
|
|
5499
5593
|
.action(async (first, second, opts) => {
|
|
5500
5594
|
// Local tmux session? (unless an explicit URL/sessionId pair is given).
|
|
5501
5595
|
if (second === undefined && !looksLikeUrl(first)) {
|
|
5502
|
-
const
|
|
5503
|
-
if (
|
|
5504
|
-
|
|
5505
|
-
process.
|
|
5596
|
+
const localTarget = resolveManagedLocalTarget(first);
|
|
5597
|
+
if (localTarget.kind === "ambiguous") {
|
|
5598
|
+
reportAmbiguousLocalTarget(first, "stop", localTarget.names);
|
|
5599
|
+
process.exitCode = 1;
|
|
5600
|
+
return;
|
|
5601
|
+
}
|
|
5602
|
+
if (localTarget.kind === "found") {
|
|
5603
|
+
const ok = killLocalSession(localTarget.name);
|
|
5604
|
+
process.stderr.write(`[h2a] local session ${localTarget.local?.slug ?? first} ${ok ? "killed" : "could not be killed"}\n`);
|
|
5506
5605
|
if (!ok)
|
|
5507
5606
|
process.exitCode = 1;
|
|
5508
5607
|
return;
|
|
@@ -5948,6 +6047,13 @@ export async function main(argv) {
|
|
|
5948
6047
|
// For a working gateway proxy, use `enroll openai --token sk-...` instead.
|
|
5949
6048
|
account = enrollCodexAccount();
|
|
5950
6049
|
}
|
|
6050
|
+
else if (provider === "google" ||
|
|
6051
|
+
provider === "gemini" ||
|
|
6052
|
+
provider === "gcp" ||
|
|
6053
|
+
provider === "gemini-code-assist") {
|
|
6054
|
+
// Reads ~/.gemini/oauth_creds.json: access_token and refresh_token for Google Cloud Code Assist.
|
|
6055
|
+
account = enrollGeminiAccount();
|
|
6056
|
+
}
|
|
5951
6057
|
else if (provider === "openai") {
|
|
5952
6058
|
if (!opts.token) {
|
|
5953
6059
|
process.stderr.write(`[h2a] llm-mesh: --token <sk-...> is required for provider "openai"\n` +
|
|
@@ -5983,7 +6089,7 @@ export async function main(argv) {
|
|
|
5983
6089
|
}
|
|
5984
6090
|
else {
|
|
5985
6091
|
process.stderr.write(`[h2a] llm-mesh: unsupported provider "${provider}".\n` +
|
|
5986
|
-
` Supported: codex (OAuth), openai (API key), anthropic (API key)\n`);
|
|
6092
|
+
` Supported: codex (OAuth), google (OAuth), gemini (OAuth), openai (API key), anthropic (API key)\n`);
|
|
5987
6093
|
process.exitCode = 1;
|
|
5988
6094
|
return;
|
|
5989
6095
|
}
|