@mclawnet/agent 0.6.34 → 0.6.36
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/cli.js +75 -7
- package/dist/__tests__/bootstrap-deps.test.d.ts +2 -0
- package/dist/__tests__/bootstrap-deps.test.d.ts.map +1 -0
- package/dist/__tests__/collect-manifest.test.d.ts +2 -0
- package/dist/__tests__/collect-manifest.test.d.ts.map +1 -0
- package/dist/__tests__/hub-connection-on-activity.test.d.ts +2 -0
- package/dist/__tests__/hub-connection-on-activity.test.d.ts.map +1 -0
- package/dist/__tests__/hub-connection-wake-watch.test.d.ts +2 -0
- package/dist/__tests__/hub-connection-wake-watch.test.d.ts.map +1 -0
- package/dist/__tests__/ideas-rest-client.test.d.ts +2 -0
- package/dist/__tests__/ideas-rest-client.test.d.ts.map +1 -0
- package/dist/__tests__/legacy-claude-execute-compat.test.d.ts +2 -0
- package/dist/__tests__/legacy-claude-execute-compat.test.d.ts.map +1 -0
- package/dist/__tests__/no-adapter-cycle.test.d.ts +2 -0
- package/dist/__tests__/no-adapter-cycle.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-env-defaults.test.d.ts +2 -0
- package/dist/__tests__/runtime-env-defaults.test.d.ts.map +1 -0
- package/dist/__tests__/session-manager-exit-reason.test.d.ts +2 -0
- package/dist/__tests__/session-manager-exit-reason.test.d.ts.map +1 -0
- package/dist/__tests__/session-manager-merge.test.d.ts +2 -0
- package/dist/__tests__/session-manager-merge.test.d.ts.map +1 -0
- package/dist/__tests__/session-manager-sticky.test.d.ts +2 -0
- package/dist/__tests__/session-manager-sticky.test.d.ts.map +1 -0
- package/dist/__tests__/session-protocol-dispatch.test.d.ts +2 -0
- package/dist/__tests__/session-protocol-dispatch.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-bridge.test.d.ts +2 -0
- package/dist/__tests__/worktree-bridge.test.d.ts.map +1 -0
- package/dist/backend-adapter.d.ts +6 -232
- package/dist/backend-adapter.d.ts.map +1 -1
- package/dist/backend-factory-AFF6I7YF.js +11 -0
- package/dist/backend-factory.d.ts +23 -1
- package/dist/backend-factory.d.ts.map +1 -1
- package/dist/bootstrap-deps.d.ts +84 -0
- package/dist/bootstrap-deps.d.ts.map +1 -0
- package/dist/bootstrap-deps.js +173 -0
- package/dist/bootstrap-deps.js.map +1 -0
- package/dist/{chunk-PJ5M6Q36.js → chunk-376QZ7JB.js} +2 -2
- package/dist/chunk-376QZ7JB.js.map +1 -0
- package/dist/{chunk-2JDX6XFD.js → chunk-GOCWMRBB.js} +1817 -298
- package/dist/chunk-GOCWMRBB.js.map +1 -0
- package/dist/{chunk-M2CDVPQF.js → chunk-JH6RGJBQ.js} +2 -2
- package/dist/{chunk-MFXF77LG.js → chunk-VAEFJLPL.js} +25 -3
- package/dist/chunk-VAEFJLPL.js.map +1 -0
- package/dist/{dist-VLBO5CT3.js → dist-NWVHAP5R.js} +330 -23
- package/dist/dist-NWVHAP5R.js.map +1 -0
- package/dist/errors.d.ts +20 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/hub-connection.d.ts +25 -1
- package/dist/hub-connection.d.ts.map +1 -1
- package/dist/ideas-rest-client.d.ts +25 -0
- package/dist/ideas-rest-client.d.ts.map +1 -0
- package/dist/index.js +3 -3
- package/dist/{linux-IHA4O633.js → linux-MBU6ERXL.js} +3 -3
- package/dist/{macos-G4VK2253.js → macos-I2DUWFUH.js} +3 -3
- package/dist/projects-handler.d.ts +146 -1
- package/dist/projects-handler.d.ts.map +1 -1
- package/dist/runtime-env-defaults.d.ts +18 -0
- package/dist/runtime-env-defaults.d.ts.map +1 -0
- package/dist/service/index.js +5 -5
- package/dist/session-manager.d.ts +59 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +3 -2
- package/dist/{windows-P6U3JLUZ.js → windows-PEJ3KOLC.js} +3 -3
- package/dist/worktree-bridge.d.ts +51 -0
- package/dist/worktree-bridge.d.ts.map +1 -0
- package/package.json +10 -8
- package/dist/backend-factory-RUYUBJVF.js +0 -9
- package/dist/chunk-2JDX6XFD.js.map +0 -1
- package/dist/chunk-MFXF77LG.js.map +0 -1
- package/dist/chunk-PJ5M6Q36.js.map +0 -1
- package/dist/dist-VLBO5CT3.js.map +0 -1
- /package/dist/{backend-factory-RUYUBJVF.js.map → backend-factory-AFF6I7YF.js.map} +0 -0
- /package/dist/{chunk-M2CDVPQF.js.map → chunk-JH6RGJBQ.js.map} +0 -0
- /package/dist/{linux-IHA4O633.js.map → linux-MBU6ERXL.js.map} +0 -0
- /package/dist/{macos-G4VK2253.js.map → macos-I2DUWFUH.js.map} +0 -0
- /package/dist/{windows-P6U3JLUZ.js.map → windows-PEJ3KOLC.js.map} +0 -0
package/dist/service/index.js
CHANGED
|
@@ -9,22 +9,22 @@ import {
|
|
|
9
9
|
mergeServiceConfig,
|
|
10
10
|
saveServiceConfig,
|
|
11
11
|
validateServiceConfig
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-JH6RGJBQ.js";
|
|
13
|
+
import "../chunk-376QZ7JB.js";
|
|
14
14
|
|
|
15
15
|
// src/service/index.ts
|
|
16
16
|
async function getServiceManager() {
|
|
17
17
|
switch (process.platform) {
|
|
18
18
|
case "darwin": {
|
|
19
|
-
const { MacOSServiceManager } = await import("../macos-
|
|
19
|
+
const { MacOSServiceManager } = await import("../macos-I2DUWFUH.js");
|
|
20
20
|
return new MacOSServiceManager();
|
|
21
21
|
}
|
|
22
22
|
case "linux": {
|
|
23
|
-
const { LinuxServiceManager } = await import("../linux-
|
|
23
|
+
const { LinuxServiceManager } = await import("../linux-MBU6ERXL.js");
|
|
24
24
|
return new LinuxServiceManager();
|
|
25
25
|
}
|
|
26
26
|
case "win32": {
|
|
27
|
-
const { WindowsServiceManager } = await import("../windows-
|
|
27
|
+
const { WindowsServiceManager } = await import("../windows-PEJ3KOLC.js");
|
|
28
28
|
return new WindowsServiceManager();
|
|
29
29
|
}
|
|
30
30
|
default:
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WorkspaceHandle } from "@mclawnet/swarm";
|
|
1
2
|
import type { BackendAdapter, PermissionDecision, PermissionRequest, SpawnOptions } from "./backend-adapter.js";
|
|
2
3
|
import { type SessionKind } from "./errors.js";
|
|
3
4
|
import { type RecoveryReport } from "./checkpoint.js";
|
|
@@ -14,9 +15,11 @@ export declare class SessionManager {
|
|
|
14
15
|
private sessions;
|
|
15
16
|
private conversationBuffer;
|
|
16
17
|
private sessionMeta;
|
|
18
|
+
private stickyState;
|
|
17
19
|
private activelyExecuting;
|
|
18
20
|
private aborting;
|
|
19
21
|
private expectedExits;
|
|
22
|
+
private lastSessionError;
|
|
20
23
|
private idleSweepTimer;
|
|
21
24
|
private idleTtlMs;
|
|
22
25
|
private idleSweepIntervalMs;
|
|
@@ -62,6 +65,14 @@ export declare class SessionManager {
|
|
|
62
65
|
*/
|
|
63
66
|
private onSessionExit?;
|
|
64
67
|
private onPermissionRequest?;
|
|
68
|
+
/**
|
|
69
|
+
* (N5) Fires when `closeSession` runs against a session that had a
|
|
70
|
+
* workspace handle attached via {@link SessionManager.attachWorkspace}.
|
|
71
|
+
* Receives the original handle so the host can dispose it (keep=true) and
|
|
72
|
+
* notify hub via `session.worktree_closed`. Never blocks the close path —
|
|
73
|
+
* exceptions are caught and logged.
|
|
74
|
+
*/
|
|
75
|
+
private onWorkspaceClose?;
|
|
65
76
|
private classify;
|
|
66
77
|
constructor(options: {
|
|
67
78
|
adapter: BackendAdapter;
|
|
@@ -96,6 +107,12 @@ export declare class SessionManager {
|
|
|
96
107
|
* Use {@link SessionManager.respondToPermission} to deliver the decision back.
|
|
97
108
|
*/
|
|
98
109
|
onPermissionRequest?: (sessionId: string, req: PermissionRequest) => void;
|
|
110
|
+
/**
|
|
111
|
+
* (N5) Invoked synchronously from {@link SessionManager.closeSession} when
|
|
112
|
+
* the session had a workspace handle attached. Caller typically disposes
|
|
113
|
+
* the handle (keep=true) and sends `session.worktree_closed` to hub.
|
|
114
|
+
*/
|
|
115
|
+
onWorkspaceClose?: (sessionId: string, handle: WorkspaceHandle) => void;
|
|
99
116
|
classify?: (sessionId: string) => SessionKind;
|
|
100
117
|
/**
|
|
101
118
|
* (PR-C) Where to write the agent-sessions.json checkpoint. Pass `null`
|
|
@@ -116,6 +133,48 @@ export declare class SessionManager {
|
|
|
116
133
|
* block the user's turn on memory.
|
|
117
134
|
*/
|
|
118
135
|
sendUserInput(sessionId: string, content: string): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* (N2/N3) Update sticky model/mode on a session. Survives abort/respawn
|
|
138
|
+
* because it writes to `stickyState`, which is independent of `sessionMeta`
|
|
139
|
+
* (cleared on abort). Partial: fields with `undefined` are not touched.
|
|
140
|
+
*
|
|
141
|
+
* Valid use cases:
|
|
142
|
+
* - patch sticky on a live session (mutates meta + stickyState)
|
|
143
|
+
* - stage sticky BEFORE the first session.create lands (writes only to
|
|
144
|
+
* stickyState — meta is created later by createSession, which mirrors
|
|
145
|
+
* from stickyState)
|
|
146
|
+
*
|
|
147
|
+
* No-throw on missing session; this method is best-effort state staging.
|
|
148
|
+
*/
|
|
149
|
+
updateSticky(sessionId: string, sticky: {
|
|
150
|
+
model?: string;
|
|
151
|
+
mode?: string;
|
|
152
|
+
}): void;
|
|
153
|
+
/**
|
|
154
|
+
* (N2/N3) Stage a per-turn override for the very next spawn. Consumed
|
|
155
|
+
* (and deleted from stickyState) by the next `createSession` for this
|
|
156
|
+
* sessionId. Survives abort/respawn until consumed — so a hub-side
|
|
157
|
+
* abort+recreate driven by a model switch still carries the override.
|
|
158
|
+
*
|
|
159
|
+
* No-throw on missing session: same staging-before-alive use case as
|
|
160
|
+
* `updateSticky`.
|
|
161
|
+
*/
|
|
162
|
+
setTurnOverride(sessionId: string, override: {
|
|
163
|
+
model?: string;
|
|
164
|
+
mode?: string;
|
|
165
|
+
}): void;
|
|
166
|
+
/**
|
|
167
|
+
* (N5) Attach a workspace handle to an existing session's meta so that a
|
|
168
|
+
* later `closeSession` can fire `onWorkspaceClose` with it. Idempotent: a
|
|
169
|
+
* second call overwrites the existing handle (acceptable since the host
|
|
170
|
+
* never adopts two workspaces for the same session in practice). No-op
|
|
171
|
+
* with a warn when the session is unknown — the caller's prepare succeeded
|
|
172
|
+
* before createSession failed, so the workspace is already cleaning itself
|
|
173
|
+
* up via the error path in hub-connection.
|
|
174
|
+
*/
|
|
175
|
+
attachWorkspace(sessionId: string, handle: WorkspaceHandle): void;
|
|
176
|
+
/** (N5) Inspect the attached workspace handle for a session, if any. */
|
|
177
|
+
getWorkspaceHandle(sessionId: string): WorkspaceHandle | undefined;
|
|
119
178
|
abortSession(sessionId: string): Promise<void>;
|
|
120
179
|
/**
|
|
121
180
|
* M3.S2b — Deliver a permission decision back to the adapter for the named
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAsU,MAAM,iBAAiB,CAAC;AAIvX,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAsB3D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/D,GAAG,EAAE,aAAa,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC,CAwgBD"}
|
package/dist/start.js
CHANGED
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
getLogDir,
|
|
6
6
|
getNodePath,
|
|
7
7
|
loadServiceConfig
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-JH6RGJBQ.js";
|
|
9
|
+
import "./chunk-376QZ7JB.js";
|
|
10
10
|
|
|
11
11
|
// src/service/windows.ts
|
|
12
12
|
import { execSync, spawn } from "child_process";
|
|
@@ -162,4 +162,4 @@ export {
|
|
|
162
162
|
generateEcosystem,
|
|
163
163
|
getEcosystemPath
|
|
164
164
|
};
|
|
165
|
-
//# sourceMappingURL=windows-
|
|
165
|
+
//# sourceMappingURL=windows-PEJ3KOLC.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { AgentGenericRequest } from "@mclawnet/shared";
|
|
2
|
+
import type { HubConnection } from "./hub-connection.js";
|
|
3
|
+
/**
|
|
4
|
+
* Generic.request handler for the `worktree` namespace. Provides chat-session
|
|
5
|
+
* lifecycle operations on worktrees prepared by WorkspaceManager (PR-A):
|
|
6
|
+
*
|
|
7
|
+
* - `delete` → remove worktree + branch (force-delete unmerged branches when
|
|
8
|
+
* caller passes force=true)
|
|
9
|
+
* - `ship` → commit + push + open PR via shipment pipeline (added separately
|
|
10
|
+
* in PR-A task #8; this file holds the dispatch skeleton)
|
|
11
|
+
*
|
|
12
|
+
* Unlike SwarmCoordinator-driven dispose (which goes through WorkspaceManager
|
|
13
|
+
* + per-swarm handle index), the delete action operates directly on the on-disk
|
|
14
|
+
* path so it survives agent restarts that lost the in-memory handle map. The
|
|
15
|
+
* trade-off: caller (hub/UI) must pass the exact worktree path & branch name,
|
|
16
|
+
* which it has via chat_sessions.worktree_path / .worktree_branch.
|
|
17
|
+
*
|
|
18
|
+
* Security: rejects any path outside the calling user's workspace tree. We
|
|
19
|
+
* approximate this with two cheap checks — absolute path required, and the
|
|
20
|
+
* basename must start with the per-session prefix `chat-` (see GitWorktreeProvider).
|
|
21
|
+
* Anything else (random "/etc", a sibling worktree from another agent, etc.) is
|
|
22
|
+
* rejected up front rather than relying on `git -C` to refuse.
|
|
23
|
+
*/
|
|
24
|
+
export declare class WorktreeBridge {
|
|
25
|
+
private hub;
|
|
26
|
+
constructor(hub: HubConnection);
|
|
27
|
+
handle(msg: AgentGenericRequest): Promise<Record<string, unknown>>;
|
|
28
|
+
private deleteWorktree;
|
|
29
|
+
/**
|
|
30
|
+
* Emit a session.worktree_deleted push frame after a successful delete so
|
|
31
|
+
* the hub can clear the DB columns and broadcast to other tabs. Caller
|
|
32
|
+
* passes sessionId via params; missing sessionId silently skips the push
|
|
33
|
+
* (delete still works — just no DB sync, used by cleanup tooling that
|
|
34
|
+
* doesn't have a session context).
|
|
35
|
+
*/
|
|
36
|
+
private maybeEmitDeleted;
|
|
37
|
+
/**
|
|
38
|
+
* Ship a chat-session worktree: stage all changes, commit if dirty, then
|
|
39
|
+
* either push + open draft PR (when `gh` CLI is available) or fall back to
|
|
40
|
+
* writing diff.patch + report.md inside the worktree for manual `git apply`.
|
|
41
|
+
*
|
|
42
|
+
* Result shape mirrors M6 swarm ShipmentResult so the UI can render both
|
|
43
|
+
* with the same component (Banner + future shipment list view).
|
|
44
|
+
*
|
|
45
|
+
* No LLM involvement (chat sessions don't have a queen role to generate
|
|
46
|
+
* report bodies). Title/body are caller-provided (UI) or default to the
|
|
47
|
+
* branch name + short stat summary.
|
|
48
|
+
*/
|
|
49
|
+
private shipWorktree;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=worktree-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-bridge.d.ts","sourceRoot":"","sources":["../src/worktree-bridge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAKhC,MAAM,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAY1D,cAAc;IAwE5B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;;;;;;;;;;OAWG;YACW,YAAY;CAkJ3B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mclawnet/agent",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -21,16 +21,18 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"commander": "^14.0.3",
|
|
24
|
+
"smol-toml": "^1.6.1",
|
|
24
25
|
"ws": "^8.19.0",
|
|
25
|
-
"@mclawnet/
|
|
26
|
+
"@mclawnet/backend-types": "0.1.0",
|
|
27
|
+
"@mclawnet/claude-adapter": "0.1.25",
|
|
28
|
+
"@mclawnet/mcp-server": "0.1.9",
|
|
26
29
|
"@mclawnet/logger": "0.1.7",
|
|
27
|
-
"@mclawnet/
|
|
28
|
-
"@mclawnet/scheduler": "0.1.3",
|
|
29
|
-
"@mclawnet/mcp-server": "0.1.7",
|
|
30
|
-
"@mclawnet/shared": "0.1.8",
|
|
30
|
+
"@mclawnet/swarm": "0.1.14",
|
|
31
31
|
"@mclawnet/skill-manager": "0.1.6",
|
|
32
|
-
"@mclawnet/
|
|
33
|
-
"@mclawnet/task": "0.1.
|
|
32
|
+
"@mclawnet/shared": "0.1.9",
|
|
33
|
+
"@mclawnet/task": "0.1.3",
|
|
34
|
+
"@mclawnet/scheduler": "0.1.4",
|
|
35
|
+
"@mclawnet/memory": "0.1.7"
|
|
34
36
|
},
|
|
35
37
|
"optionalDependencies": {
|
|
36
38
|
"@mclawnet/codex-adapter": "0.1.0"
|