@co0ontty/wand 4.83.1 → 4.84.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 +4 -0
- package/dist/agent-dispatch.js +5 -1
- package/dist/ai-team-availability.d.ts +1 -1
- package/dist/ai-team-prompts.js +13 -4
- package/dist/ai-team-runner.d.ts +80 -5
- package/dist/ai-team-runner.js +332 -55
- package/dist/ai-team-types.d.ts +92 -5
- package/dist/ai-team-types.js +9 -2
- package/dist/build-info.json +3 -3
- package/dist/cli-api.d.ts +1 -0
- package/dist/cli-api.js +3 -0
- package/dist/cli.js +18 -1
- package/dist/commit-task-archive.d.ts +3 -1
- package/dist/commit-task-archive.js +21 -10
- package/dist/config.d.ts +1 -1
- package/dist/config.js +73 -0
- package/dist/conversation-mentions.d.ts +16 -0
- package/dist/conversation-mentions.js +32 -0
- package/dist/conversation-service.d.ts +90 -0
- package/dist/conversation-service.js +759 -0
- package/dist/conversation-session-preview.d.ts +9 -0
- package/dist/conversation-session-preview.js +47 -0
- package/dist/conversation-task-preview.d.ts +5 -0
- package/dist/conversation-task-preview.js +8 -0
- package/dist/conversation-types.d.ts +80 -0
- package/dist/conversation-types.js +7 -0
- package/dist/core-extension-host.d.ts +27 -0
- package/dist/core-extension-host.js +138 -0
- package/dist/core-runner.d.ts +86 -0
- package/dist/core-runner.js +757 -0
- package/dist/core-status-cli.d.ts +9 -0
- package/dist/core-status-cli.js +280 -0
- package/dist/core-turn-tracker.d.ts +12 -0
- package/dist/core-turn-tracker.js +36 -0
- package/dist/decision-runner.d.ts +6 -0
- package/dist/decision-runner.js +3 -1
- package/dist/decision-tool.d.ts +2 -0
- package/dist/decision-tool.js +49 -22
- package/dist/env-utils.d.ts +7 -3
- package/dist/env-utils.js +30 -5
- package/dist/git-quick-commit.d.ts +5 -0
- package/dist/git-quick-commit.js +9 -3
- package/dist/git-utils.js +2 -1
- package/dist/harness-engine.d.ts +110 -0
- package/dist/harness-engine.js +331 -0
- package/dist/mission-diff.js +2 -1
- package/dist/model-auto-assign.d.ts +50 -0
- package/dist/model-auto-assign.js +163 -0
- package/dist/model-group-runner.d.ts +4 -0
- package/dist/model-group-runner.js +72 -0
- package/dist/model-groups.d.ts +38 -0
- package/dist/model-groups.js +138 -0
- package/dist/models.d.ts +12 -0
- package/dist/models.js +102 -8
- package/dist/npm-update-utils.js +2 -1
- package/dist/openrouter-free-cli.d.ts +25 -0
- package/dist/openrouter-free-cli.js +109 -0
- package/dist/openrouter-free-models.d.ts +85 -0
- package/dist/openrouter-free-models.js +458 -0
- package/dist/openrouter-free-selection.d.ts +5 -0
- package/dist/openrouter-free-selection.js +7 -0
- package/dist/path-repair.d.ts +10 -0
- package/dist/path-repair.js +50 -5
- package/dist/pi-auto-resources.d.ts +12 -0
- package/dist/pi-auto-resources.js +151 -0
- package/dist/pi-execution-types.d.ts +48 -0
- package/dist/pi-execution-types.js +1 -0
- package/dist/pi-execution.d.ts +9 -0
- package/dist/pi-execution.js +187 -0
- package/dist/pi-extension-resources.d.ts +13 -0
- package/dist/pi-extension-resources.js +71 -0
- package/dist/pi-openrouter-free-bridge.d.ts +2 -0
- package/dist/pi-openrouter-free-bridge.js +80 -0
- package/dist/pi-resource-bridge.d.ts +2 -0
- package/dist/pi-resource-bridge.js +73 -0
- package/dist/pi-resource-catalog.d.ts +18 -0
- package/dist/pi-resource-catalog.js +82 -0
- package/dist/pi-resource-recommendation.d.ts +29 -0
- package/dist/pi-resource-recommendation.js +169 -0
- package/dist/pi-resource-run.d.ts +8 -0
- package/dist/pi-resource-run.js +28 -0
- package/dist/pi-session-settings.d.ts +157 -0
- package/dist/pi-session-settings.js +166 -0
- package/dist/platform-action-catalog.d.ts +24 -0
- package/dist/platform-action-catalog.js +141 -0
- package/dist/platform-action-service.d.ts +37 -0
- package/dist/platform-action-service.js +138 -0
- package/dist/platform-action-types.d.ts +125 -0
- package/dist/platform-action-types.js +7 -0
- package/dist/process-manager.d.ts +21 -1
- package/dist/process-manager.js +168 -15
- package/dist/provider-catalog.js +1 -1
- package/dist/provider-cli-updater.js +29 -8
- package/dist/provider-history-scanner.d.ts +9 -0
- package/dist/provider-history-scanner.js +107 -1
- package/dist/retention.d.ts +19 -7
- package/dist/retention.js +171 -28
- package/dist/server-ai-team-routes.js +6 -2
- package/dist/server-conversation-routes.d.ts +5 -0
- package/dist/server-conversation-routes.js +91 -0
- package/dist/server-employee-routes.d.ts +2 -0
- package/dist/server-employee-routes.js +85 -11
- package/dist/server-pi-recommendation-routes.d.ts +13 -0
- package/dist/server-pi-recommendation-routes.js +67 -0
- package/dist/server-resume-routes.js +1 -1
- package/dist/server-session-routes.d.ts +4 -3
- package/dist/server-session-routes.js +182 -37
- package/dist/server-settings-routes.d.ts +5 -0
- package/dist/server-settings-routes.js +46 -0
- package/dist/server-task-routes.js +49 -4
- package/dist/server-team-dispatch-routes.d.ts +19 -0
- package/dist/server-team-dispatch-routes.js +71 -0
- package/dist/server-update-routes.d.ts +1 -1
- package/dist/server-update-routes.js +10 -5
- package/dist/server-workspace-routes.js +44 -24
- package/dist/server.d.ts +1 -0
- package/dist/server.js +148 -30
- package/dist/session-ai-context.d.ts +5 -1
- package/dist/session-ai-context.js +9 -4
- package/dist/session-registry.d.ts +4 -0
- package/dist/session-registry.js +47 -13
- package/dist/session-transport.js +8 -1
- package/dist/settings-web-access.d.ts +15 -0
- package/dist/settings-web-access.js +37 -0
- package/dist/silicon-employee-defaults.d.ts +29 -0
- package/dist/silicon-employee-defaults.js +41 -0
- package/dist/silicon-employee-dispatch.d.ts +5 -1
- package/dist/silicon-employee-dispatch.js +10 -4
- package/dist/silicon-employee-draft.d.ts +21 -4
- package/dist/silicon-employee-draft.js +103 -16
- package/dist/storage.d.ts +73 -2
- package/dist/storage.js +362 -26
- package/dist/structured-claude-protocol.js +1 -1
- package/dist/structured-client-protocol.js +11 -33
- package/dist/structured-content.d.ts +23 -0
- package/dist/structured-content.js +72 -0
- package/dist/structured-failure.d.ts +16 -0
- package/dist/structured-failure.js +36 -0
- package/dist/structured-pi-adapter.d.ts +8 -3
- package/dist/structured-pi-adapter.js +131 -30
- package/dist/structured-provider-common.d.ts +6 -0
- package/dist/structured-provider-common.js +23 -1
- package/dist/structured-runner.d.ts +45 -0
- package/dist/structured-session-manager.d.ts +78 -4
- package/dist/structured-session-manager.js +513 -129
- package/dist/structured-thinking.d.ts +15 -0
- package/dist/structured-thinking.js +46 -0
- package/dist/subagent-dispatch.d.ts +56 -0
- package/dist/subagent-dispatch.js +102 -0
- package/dist/system-employee.d.ts +4 -3
- package/dist/system-employee.js +7 -4
- package/dist/task-retention.d.ts +23 -0
- package/dist/task-retention.js +69 -0
- package/dist/task-types.d.ts +4 -0
- package/dist/task-types.js +3 -0
- package/dist/team-dispatch.d.ts +101 -0
- package/dist/team-dispatch.js +269 -0
- package/dist/tool-preview.js +7 -1
- package/dist/tui/commands.js +50 -1
- package/dist/tui/ipc-protocol.d.ts +1 -1
- package/dist/tui/ipc-server.d.ts +4 -0
- package/dist/tui/ipc-server.js +23 -0
- package/dist/turn-heartbeat.d.ts +35 -0
- package/dist/turn-heartbeat.js +64 -0
- package/dist/types.d.ts +147 -1
- package/dist/user-profile.d.ts +33 -0
- package/dist/user-profile.js +70 -0
- package/dist/web-ui/chat-message-meta.d.ts +11 -0
- package/dist/web-ui/chat-message-meta.js +47 -0
- package/dist/web-ui/content/ai-teams.js +13 -13
- package/dist/web-ui/content/scripts.js +795 -95
- package/dist/web-ui/content/styles.css +1 -1
- package/dist/web-ui/content/tailwind.css +1 -6808
- package/dist/web-ui/content/vendor/qrcode/qrcode.bundle.js +1 -1
- package/dist/web-ui/embedded-assets.d.ts +1 -1
- package/dist/web-ui/embedded-assets.js +5 -5
- package/dist/web-ui/index.d.ts +1 -1
- package/dist/web-ui/index.js +3 -3
- package/dist/web-ui/markdown.d.ts +2 -0
- package/dist/web-ui/markdown.js +111 -0
- package/dist/web-ui/page.d.ts +4 -0
- package/dist/web-ui/page.js +8 -0
- package/dist/web-ui/react/local-preview/controller.d.ts +30 -0
- package/dist/web-ui/react/local-preview/controller.js +159 -0
- package/dist/web-ui/running-activity.d.ts +63 -0
- package/dist/web-ui/running-activity.js +134 -0
- package/dist/web-ui/styles.js +2 -11
- package/package.json +7 -2
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
import { type OpenRouterFreeModelsService } from "./openrouter-free-models.js";
|
|
2
|
+
import { type StructuredFailure } from "./structured-failure.js";
|
|
1
3
|
import { type WorktreeSetupSpec } from "./git-worktree.js";
|
|
2
4
|
import { SessionLogger } from "./session-logger.js";
|
|
3
5
|
import { WandStorage } from "./storage.js";
|
|
4
6
|
import { ConversationTurn, ExecutionMode, ProcessEvent, SessionProvider, SessionRunner, SessionSnapshot, SessionSource, WandConfig } from "./types.js";
|
|
5
7
|
import type { WandTaskAgent } from "./task-types.js";
|
|
8
|
+
import type { CoreStatus } from "./core-status-cli.js";
|
|
9
|
+
import { type EngineResolution } from "./harness-engine.js";
|
|
10
|
+
import { type PiSessionSettings } from "./pi-session-settings.js";
|
|
6
11
|
import { type DecisionRuntimeAccess } from "./decision-runner.js";
|
|
7
12
|
import { type StructuredExecHost } from "./structured-exec-host.js";
|
|
8
13
|
import type { StructuredRunnerAdapter } from "./structured-runner.js";
|
|
9
14
|
export interface StructuredSessionManagerRunners {
|
|
15
|
+
/**
|
|
16
|
+
* 宿主注入的执行器。注入 `pi` 视作钉死 CLI 引擎(`auto` 不覆盖);
|
|
17
|
+
* 注入 `core` 则视为宿主提供了进程内 harness 能力。
|
|
18
|
+
*/
|
|
19
|
+
core?: StructuredRunnerAdapter;
|
|
10
20
|
claudeCli?: StructuredRunnerAdapter;
|
|
11
21
|
codex?: StructuredRunnerAdapter;
|
|
12
22
|
opencode?: StructuredRunnerAdapter;
|
|
@@ -16,6 +26,7 @@ export interface StructuredSessionManagerRunners {
|
|
|
16
26
|
gemini?: StructuredRunnerAdapter;
|
|
17
27
|
}
|
|
18
28
|
interface CreateStructuredSessionOptions {
|
|
29
|
+
title?: string;
|
|
19
30
|
cwd: string;
|
|
20
31
|
mode: ExecutionMode;
|
|
21
32
|
provider?: SessionProvider;
|
|
@@ -68,10 +79,18 @@ export declare class StructuredSessionManager {
|
|
|
68
79
|
private readonly config;
|
|
69
80
|
private readonly logger;
|
|
70
81
|
private readonly execHost?;
|
|
82
|
+
private readonly decisionRuntime;
|
|
83
|
+
/** 「智能分配」专用的本地决策入口:只有真正能跑时才注入,没注入则用系统员工回退。 */
|
|
84
|
+
private readonly autoAssignEvaluate;
|
|
71
85
|
private readonly sessions;
|
|
72
86
|
private readonly pendingRunnerExecutions;
|
|
73
87
|
private readonly unacceptedTeamStarts;
|
|
74
88
|
private readonly interruptedWith;
|
|
89
|
+
/**
|
|
90
|
+
* 「智能分配」正在结算的会话:这段窗口内还没有 runner 归属,新输入必须排队而不是另起一轮。
|
|
91
|
+
* token.cancelled 由 stop / delete 置位,结算回来后不得再启动。
|
|
92
|
+
*/
|
|
93
|
+
private readonly autoAssignPending;
|
|
75
94
|
private readonly preserveQueueOnInterrupt;
|
|
76
95
|
/** Last wall-clock time (ms) a streaming checkpoint reached SQLite. */
|
|
77
96
|
private readonly lastStreamSaveAt;
|
|
@@ -88,6 +107,11 @@ export declare class StructuredSessionManager {
|
|
|
88
107
|
private readonly relayHandlers;
|
|
89
108
|
private emitEvent;
|
|
90
109
|
private archiveTimer;
|
|
110
|
+
/**
|
|
111
|
+
* 静默期心跳:回合在飞且连续 TURN_QUIET_HEARTBEAT_MS 没有任何事件时,用现有的
|
|
112
|
+
* status 事件重发一次权威快照(含最新 turn 锚点)。timer 只在 inFlight 期间存在。
|
|
113
|
+
*/
|
|
114
|
+
private readonly turnHeartbeat;
|
|
91
115
|
private readonly topicCoordinator;
|
|
92
116
|
private readonly nativeTitles;
|
|
93
117
|
private readonly streamEmitTimers;
|
|
@@ -97,6 +121,12 @@ export declare class StructuredSessionManager {
|
|
|
97
121
|
private readonly grokRunner;
|
|
98
122
|
private readonly qoderRunner;
|
|
99
123
|
private readonly piRunner;
|
|
124
|
+
/** 进程内 core 引擎供员工候选显式启用;普通 Pi 主功能不使用它。 */
|
|
125
|
+
private readonly coreRunner;
|
|
126
|
+
/** 宿主是否显式注入了 pi 的 CLI runner / core runner,供系统级引擎状态使用。 */
|
|
127
|
+
private readonly piRunnerSupplied;
|
|
128
|
+
private readonly coreRunnerSupplied;
|
|
129
|
+
private coreRestartDrains;
|
|
100
130
|
private readonly geminiRunner;
|
|
101
131
|
/** Structured CLI runs that were mid-flight when the previous web process died. */
|
|
102
132
|
private pendingRecoveryIds;
|
|
@@ -104,9 +134,16 @@ export declare class StructuredSessionManager {
|
|
|
104
134
|
private detachedRecoveryRetryTimer;
|
|
105
135
|
private detachedRecoveryFailureLogged;
|
|
106
136
|
private disposed;
|
|
107
|
-
constructor(storage: WandStorage, config: WandConfig, logger?: SessionLogger | null, runners?: StructuredSessionManagerRunners, execHost?: StructuredExecHost | undefined, decisionRuntime?: () => DecisionRuntimeAccess | null
|
|
137
|
+
constructor(storage: WandStorage, config: WandConfig, logger?: SessionLogger | null, runners?: StructuredSessionManagerRunners, execHost?: StructuredExecHost | undefined, decisionRuntime?: () => DecisionRuntimeAccess | null, openRouter?: OpenRouterFreeModelsService,
|
|
138
|
+
/** 「智能分配」专用的本地决策入口:只有真正能跑时才注入,没注入则用系统员工回退。 */
|
|
139
|
+
autoAssignEvaluate?: () => DecisionRuntimeAccess["evaluate"]);
|
|
108
140
|
private archiveExpiredSessions;
|
|
109
141
|
setEventEmitter(emitEvent: (event: ProcessEvent) => void): void;
|
|
142
|
+
getCoreTurnStatus(): CoreStatus;
|
|
143
|
+
/** Keep current turns running; new Pi inputs stay in the durable input queue. */
|
|
144
|
+
beginCoreRestartDrain(): () => void;
|
|
145
|
+
/** Resume accepted inputs after a cancelled drain or after a successful restart. */
|
|
146
|
+
resumeQueuedPiMessages(): void;
|
|
110
147
|
/** Stop every runner and flush terminal state before storage is closed. */
|
|
111
148
|
dispose(): void;
|
|
112
149
|
/** Called once after startup wiring; transient daemon failures retry automatically. */
|
|
@@ -130,7 +167,7 @@ export declare class StructuredSessionManager {
|
|
|
130
167
|
get(id: string): SessionSnapshot | null;
|
|
131
168
|
setSessionWorkspace(id: string, membership: Pick<SessionSnapshot, "workspaceId" | "workspaceTaskId">): void;
|
|
132
169
|
setSessionTopic(id: string, title: string, description: string): SessionSnapshot;
|
|
133
|
-
/**
|
|
170
|
+
/** 归档会先停掉还在跑的回合,会话 ID 和 provider session id 都留着。 */
|
|
134
171
|
setSessionArchived(id: string, archived: boolean): SessionSnapshot;
|
|
135
172
|
private setSessionTopicGenerating;
|
|
136
173
|
/**
|
|
@@ -150,10 +187,14 @@ export declare class StructuredSessionManager {
|
|
|
150
187
|
}): SessionSnapshot;
|
|
151
188
|
/** Server-only generation anchor, including a failed unaccepted turn whose activeRequestId is cleared. */
|
|
152
189
|
teamRequestId(id: string): string | null;
|
|
153
|
-
/**
|
|
190
|
+
/** Compatibility boolean API; typed consumers preserve the reason without parsing user-facing text. */
|
|
154
191
|
consumeUnacceptedTeamStartup(id: string, requestId: string): boolean;
|
|
155
|
-
/**
|
|
192
|
+
/** Consume only the exact failed request observed by dispatch, once, before a newer request can replace it. */
|
|
193
|
+
consumeUnacceptedTeamFailure(id: string, requestId: string): StructuredFailure | null;
|
|
194
|
+
private employeeCandidateModel;
|
|
195
|
+
/** Only an unstarted employee conversation may replay its explicitly rejected first input. */
|
|
156
196
|
private retryEmployeeCandidate;
|
|
197
|
+
private throwUnacceptedInput;
|
|
157
198
|
/** 往转发会话里追加别的参与者的发言。 */
|
|
158
199
|
appendRelayTurns(id: string, turns: ConversationTurn[]): SessionSnapshot | null;
|
|
159
200
|
sendMessage(id: string, input: string, opts?: {
|
|
@@ -186,6 +227,12 @@ export declare class StructuredSessionManager {
|
|
|
186
227
|
clearQueuedMessages(sessionId: string): SessionSnapshot;
|
|
187
228
|
/** 新建空白对话可原位换 CLI;接受过输入、恢复会话和自动化不跨 provider 搬历史。 */
|
|
188
229
|
setSessionProvider(sessionId: string, provider: SessionProvider): SessionSnapshot;
|
|
230
|
+
getPiSettings(sessionId: string): {
|
|
231
|
+
settings: PiSessionSettings;
|
|
232
|
+
resolution: EngineResolution;
|
|
233
|
+
};
|
|
234
|
+
/** Metadata-only, synchronous merge: active runs retain their captured settings, queued rounds see these. */
|
|
235
|
+
setPiSettings(sessionId: string, patch: unknown): SessionSnapshot;
|
|
189
236
|
/** Update the selected model for a structured session. Takes effect on the next spawn. */
|
|
190
237
|
setSessionModel(sessionId: string, model: string | null): SessionSnapshot;
|
|
191
238
|
/**
|
|
@@ -216,7 +263,34 @@ export declare class StructuredSessionManager {
|
|
|
216
263
|
private currentSessionForRequest;
|
|
217
264
|
/** Delete a handle only if it still belongs to the execution doing cleanup. */
|
|
218
265
|
private releasePendingRunnerExecution;
|
|
266
|
+
/**
|
|
267
|
+
* 本轮开始:turnStartedAt / lastActivityAt 同时落下,并给这一轮挂上静默心跳。
|
|
268
|
+
* 只在新回合(新 requestId)起点未知时调用;daemon 领养走 adoptTurn。
|
|
269
|
+
*/
|
|
270
|
+
private beginTurn;
|
|
271
|
+
/**
|
|
272
|
+
* 领养 daemon 里仍在飞的回合:起点是重启前那一轮的真实时刻,不能改写成重连时刻;
|
|
273
|
+
* 锚点缺失(改动之前落库的历史数据)才退回现在。
|
|
274
|
+
*/
|
|
275
|
+
private adoptTurn;
|
|
276
|
+
/**
|
|
277
|
+
* 观测到本轮活动(输出 chunk / 状态变化):只刷新 lastActivityAt 并重新计算静默窗口;
|
|
278
|
+
* turnStartedAt 保持不变,客户端才算是「这一轮已经跑了多久」而不是「距离上一条输出多久」。
|
|
279
|
+
*/
|
|
280
|
+
private noteTurnActivity;
|
|
281
|
+
/**
|
|
282
|
+
* 本轮收敛:`inFlight` 清 false 的一切路径(结束 / 失败 / 停止 / 中断 / 重启降级 /
|
|
283
|
+
* 候选降级)都必须走这里——两个锚点一起回 null,静默心跳立即 cancel。
|
|
284
|
+
* 收敛后不存在任何「还在跑」的读数,客户端不需要再猜上一轮的锚点属于哪一轮。
|
|
285
|
+
*/
|
|
286
|
+
private settleTurn;
|
|
287
|
+
/**
|
|
288
|
+
* 静默窗口到期:确认这一轮仍在飞才补发一次,payload 与一条普通 status 快照完全一致
|
|
289
|
+
* (不带新字段、不开新事件类型)。返回值决定要不要再挂下一个窗口。
|
|
290
|
+
*/
|
|
291
|
+
private publishQuietHeartbeat;
|
|
219
292
|
private emitStructuredSnapshot;
|
|
293
|
+
private enqueueInput;
|
|
220
294
|
private flushNextQueuedMessage;
|
|
221
295
|
private emit;
|
|
222
296
|
private incrementApprovalStats;
|