@cecwxf/wtt 0.1.7 → 0.1.8

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.
Files changed (109) hide show
  1. package/package.json +1 -1
  2. package/dist/channel.d.ts +0 -275
  3. package/dist/channel.d.ts.map +0 -1
  4. package/dist/channel.js +0 -2089
  5. package/dist/channel.js.map +0 -1
  6. package/dist/commands/account.d.ts +0 -16
  7. package/dist/commands/account.d.ts.map +0 -1
  8. package/dist/commands/account.js +0 -37
  9. package/dist/commands/account.js.map +0 -1
  10. package/dist/commands/bind.d.ts +0 -3
  11. package/dist/commands/bind.d.ts.map +0 -1
  12. package/dist/commands/bind.js +0 -102
  13. package/dist/commands/bind.js.map +0 -1
  14. package/dist/commands/config.d.ts +0 -3
  15. package/dist/commands/config.d.ts.map +0 -1
  16. package/dist/commands/config.js +0 -38
  17. package/dist/commands/config.js.map +0 -1
  18. package/dist/commands/delegate.d.ts +0 -7
  19. package/dist/commands/delegate.d.ts.map +0 -1
  20. package/dist/commands/delegate.js +0 -99
  21. package/dist/commands/delegate.js.map +0 -1
  22. package/dist/commands/formatter.d.ts +0 -8
  23. package/dist/commands/formatter.d.ts.map +0 -1
  24. package/dist/commands/formatter.js +0 -200
  25. package/dist/commands/formatter.js.map +0 -1
  26. package/dist/commands/handlers.d.ts +0 -3
  27. package/dist/commands/handlers.d.ts.map +0 -1
  28. package/dist/commands/handlers.js +0 -87
  29. package/dist/commands/handlers.js.map +0 -1
  30. package/dist/commands/http.d.ts +0 -26
  31. package/dist/commands/http.d.ts.map +0 -1
  32. package/dist/commands/http.js +0 -190
  33. package/dist/commands/http.js.map +0 -1
  34. package/dist/commands/index.d.ts +0 -3
  35. package/dist/commands/index.d.ts.map +0 -1
  36. package/dist/commands/index.js +0 -2
  37. package/dist/commands/index.js.map +0 -1
  38. package/dist/commands/parser.d.ts +0 -5
  39. package/dist/commands/parser.d.ts.map +0 -1
  40. package/dist/commands/parser.js +0 -333
  41. package/dist/commands/parser.js.map +0 -1
  42. package/dist/commands/pipeline.d.ts +0 -7
  43. package/dist/commands/pipeline.d.ts.map +0 -1
  44. package/dist/commands/pipeline.js +0 -99
  45. package/dist/commands/pipeline.js.map +0 -1
  46. package/dist/commands/router.d.ts +0 -18
  47. package/dist/commands/router.d.ts.map +0 -1
  48. package/dist/commands/router.js +0 -75
  49. package/dist/commands/router.js.map +0 -1
  50. package/dist/commands/setup.d.ts +0 -7
  51. package/dist/commands/setup.d.ts.map +0 -1
  52. package/dist/commands/setup.js +0 -89
  53. package/dist/commands/setup.js.map +0 -1
  54. package/dist/commands/task.d.ts +0 -26
  55. package/dist/commands/task.d.ts.map +0 -1
  56. package/dist/commands/task.js +0 -438
  57. package/dist/commands/task.js.map +0 -1
  58. package/dist/commands/types.d.ts +0 -175
  59. package/dist/commands/types.d.ts.map +0 -1
  60. package/dist/commands/types.js +0 -2
  61. package/dist/commands/types.js.map +0 -1
  62. package/dist/e2e-crypto.d.ts +0 -36
  63. package/dist/e2e-crypto.d.ts.map +0 -1
  64. package/dist/e2e-crypto.js +0 -166
  65. package/dist/e2e-crypto.js.map +0 -1
  66. package/dist/index.d.ts +0 -20
  67. package/dist/index.d.ts.map +0 -1
  68. package/dist/index.js +0 -21
  69. package/dist/index.js.map +0 -1
  70. package/dist/plugin-config.d.ts +0 -32
  71. package/dist/plugin-config.d.ts.map +0 -1
  72. package/dist/plugin-config.js +0 -268
  73. package/dist/plugin-config.js.map +0 -1
  74. package/dist/runtime/index.d.ts +0 -13
  75. package/dist/runtime/index.d.ts.map +0 -1
  76. package/dist/runtime/index.js +0 -7
  77. package/dist/runtime/index.js.map +0 -1
  78. package/dist/runtime/progress-ticker.d.ts +0 -65
  79. package/dist/runtime/progress-ticker.d.ts.map +0 -1
  80. package/dist/runtime/progress-ticker.js +0 -116
  81. package/dist/runtime/progress-ticker.js.map +0 -1
  82. package/dist/runtime/session-binding.d.ts +0 -16
  83. package/dist/runtime/session-binding.d.ts.map +0 -1
  84. package/dist/runtime/session-binding.js +0 -20
  85. package/dist/runtime/session-binding.js.map +0 -1
  86. package/dist/runtime/status-transition.d.ts +0 -19
  87. package/dist/runtime/status-transition.d.ts.map +0 -1
  88. package/dist/runtime/status-transition.js +0 -95
  89. package/dist/runtime/status-transition.js.map +0 -1
  90. package/dist/runtime/task-executor-persistence.d.ts +0 -63
  91. package/dist/runtime/task-executor-persistence.d.ts.map +0 -1
  92. package/dist/runtime/task-executor-persistence.js +0 -201
  93. package/dist/runtime/task-executor-persistence.js.map +0 -1
  94. package/dist/runtime/task-executor.d.ts +0 -169
  95. package/dist/runtime/task-executor.d.ts.map +0 -1
  96. package/dist/runtime/task-executor.js +0 -1230
  97. package/dist/runtime/task-executor.js.map +0 -1
  98. package/dist/runtime/task-status-handler.d.ts +0 -28
  99. package/dist/runtime/task-status-handler.d.ts.map +0 -1
  100. package/dist/runtime/task-status-handler.js +0 -102
  101. package/dist/runtime/task-status-handler.js.map +0 -1
  102. package/dist/types.d.ts +0 -159
  103. package/dist/types.d.ts.map +0 -1
  104. package/dist/types.js +0 -6
  105. package/dist/types.js.map +0 -1
  106. package/dist/ws-client.d.ts +0 -90
  107. package/dist/ws-client.d.ts.map +0 -1
  108. package/dist/ws-client.js +0 -385
  109. package/dist/ws-client.js.map +0 -1
@@ -1,268 +0,0 @@
1
- import { existsSync, readFileSync, statSync } from "node:fs";
2
- import os from "node:os";
3
- import path from "node:path";
4
- const DEFAULT_ACCOUNT_ID = "default";
5
- const DEFAULT_PLUGIN_CONFIG_RELATIVE = ".openclaw/wtt-plugin.json";
6
- const CONFIG_ENV_KEY = "WTT_PLUGIN_CONFIG";
7
- export const WTT_ACCOUNT_FIELD_NAMES = [
8
- "enabled",
9
- "name",
10
- "cloudUrl",
11
- "agentId",
12
- "token",
13
- "e2ePassword",
14
- "inboundPollIntervalMs",
15
- "inboundPollLimit",
16
- "inboundDedupWindowMs",
17
- "inboundDedupMaxEntries",
18
- ];
19
- let pluginConfigCache;
20
- function isRecord(value) {
21
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
22
- }
23
- function hasMeaningfulAccountConfig(raw) {
24
- if (!raw)
25
- return false;
26
- return Boolean(raw.agentId || raw.token || raw.cloudUrl || raw.name || raw.enabled !== undefined);
27
- }
28
- function pickAccountConfig(raw) {
29
- if (!isRecord(raw))
30
- return {};
31
- const picked = {};
32
- for (const field of WTT_ACCOUNT_FIELD_NAMES) {
33
- if (Object.prototype.hasOwnProperty.call(raw, field)) {
34
- picked[field] = raw[field];
35
- }
36
- }
37
- return picked;
38
- }
39
- function trimOrUndefined(raw) {
40
- if (typeof raw !== "string")
41
- return undefined;
42
- const trimmed = raw.trim();
43
- return trimmed.length > 0 ? trimmed : undefined;
44
- }
45
- function expandHome(rawPath) {
46
- const trimmed = rawPath.trim();
47
- if (!trimmed.startsWith("~"))
48
- return trimmed;
49
- if (trimmed === "~")
50
- return os.homedir();
51
- if (trimmed.startsWith("~/"))
52
- return path.join(os.homedir(), trimmed.slice(2));
53
- return trimmed;
54
- }
55
- function resolvePluginConfigPath() {
56
- const override = trimOrUndefined(process.env[CONFIG_ENV_KEY]);
57
- if (override) {
58
- return {
59
- path: expandHome(override),
60
- envOverride: true,
61
- };
62
- }
63
- return {
64
- path: path.join(os.homedir(), DEFAULT_PLUGIN_CONFIG_RELATIVE),
65
- envOverride: false,
66
- };
67
- }
68
- function createEmptySection() {
69
- return {};
70
- }
71
- function normalizePluginConfigSection(raw) {
72
- if (!isRecord(raw))
73
- return createEmptySection();
74
- const section = {
75
- ...pickAccountConfig(raw),
76
- };
77
- const defaultAccountId = trimOrUndefined(raw.defaultAccountId);
78
- if (defaultAccountId)
79
- section.defaultAccountId = defaultAccountId;
80
- if (isRecord(raw.accounts)) {
81
- const accounts = {};
82
- for (const [accountId, accountRaw] of Object.entries(raw.accounts)) {
83
- if (!accountId.trim())
84
- continue;
85
- if (!isRecord(accountRaw))
86
- continue;
87
- accounts[accountId] = pickAccountConfig(accountRaw);
88
- }
89
- if (Object.keys(accounts).length > 0) {
90
- section.accounts = accounts;
91
- }
92
- }
93
- return section;
94
- }
95
- function parsePluginConfigFile() {
96
- const pathMeta = resolvePluginConfigPath();
97
- const fallbackStatus = {
98
- path: pathMeta.path,
99
- envOverride: pathMeta.envOverride,
100
- loaded: false,
101
- exists: false,
102
- defaultAccountId: DEFAULT_ACCOUNT_ID,
103
- };
104
- if (!existsSync(pathMeta.path)) {
105
- return {
106
- section: createEmptySection(),
107
- fileStatus: fallbackStatus,
108
- };
109
- }
110
- let stat;
111
- try {
112
- stat = statSync(pathMeta.path);
113
- }
114
- catch (err) {
115
- const msg = err instanceof Error ? err.message : String(err);
116
- return {
117
- section: createEmptySection(),
118
- fileStatus: {
119
- ...fallbackStatus,
120
- exists: true,
121
- error: `stat_failed: ${msg}`,
122
- },
123
- };
124
- }
125
- const cacheKey = `${pathMeta.path}|${pathMeta.envOverride ? "env" : "default"}`;
126
- if (pluginConfigCache && pluginConfigCache.cacheKey === cacheKey && pluginConfigCache.mtimeMs === stat.mtimeMs) {
127
- return pluginConfigCache.parsed;
128
- }
129
- try {
130
- const raw = readFileSync(pathMeta.path, "utf8");
131
- const parsed = normalizePluginConfigSection(JSON.parse(raw));
132
- const defaultAccountId = trimOrUndefined(parsed.defaultAccountId) ?? DEFAULT_ACCOUNT_ID;
133
- const result = {
134
- section: parsed,
135
- fileStatus: {
136
- ...fallbackStatus,
137
- loaded: true,
138
- exists: true,
139
- defaultAccountId,
140
- },
141
- };
142
- pluginConfigCache = {
143
- cacheKey,
144
- mtimeMs: stat.mtimeMs,
145
- parsed: result,
146
- };
147
- return result;
148
- }
149
- catch (err) {
150
- const msg = err instanceof Error ? err.message : String(err);
151
- const result = {
152
- section: createEmptySection(),
153
- fileStatus: {
154
- ...fallbackStatus,
155
- exists: true,
156
- error: `parse_failed: ${msg}`,
157
- },
158
- };
159
- pluginConfigCache = {
160
- cacheKey,
161
- mtimeMs: stat.mtimeMs,
162
- parsed: result,
163
- };
164
- return result;
165
- }
166
- }
167
- function extractAccountMap(section) {
168
- const accountsFromConfig = section?.accounts ?? {};
169
- const ids = Object.keys(accountsFromConfig);
170
- if (ids.length > 0) {
171
- return {
172
- accounts: { ...accountsFromConfig },
173
- sourceById: Object.fromEntries(ids.map((id) => [id, `accounts.${id}`])),
174
- };
175
- }
176
- const { accounts: _accounts, defaultAccountId: _defaultAccountId, ...flat } = section ?? {};
177
- if (hasMeaningfulAccountConfig(flat)) {
178
- return {
179
- accounts: {
180
- [DEFAULT_ACCOUNT_ID]: flat,
181
- },
182
- sourceById: {
183
- [DEFAULT_ACCOUNT_ID]: "flat",
184
- },
185
- };
186
- }
187
- return { accounts: {}, sourceById: {} };
188
- }
189
- function mergeAccount(base, overlay) {
190
- return {
191
- ...(base ?? {}),
192
- ...(overlay ?? {}),
193
- };
194
- }
195
- function resolveFieldSources(base, overlay) {
196
- const sources = {};
197
- for (const field of WTT_ACCOUNT_FIELD_NAMES) {
198
- if (overlay && Object.prototype.hasOwnProperty.call(overlay, field)) {
199
- sources[field] = "file";
200
- continue;
201
- }
202
- if (base && Object.prototype.hasOwnProperty.call(base, field)) {
203
- sources[field] = "openclaw";
204
- }
205
- }
206
- return sources;
207
- }
208
- function toSourceLabel(prefix, source, accountId) {
209
- if (source === "flat") {
210
- return prefix === "openclaw" ? "channels.wtt" : `wtt-plugin.json(${accountId})`;
211
- }
212
- if (source.startsWith("accounts.")) {
213
- const suffix = source.slice("accounts.".length);
214
- return prefix === "openclaw"
215
- ? `channels.wtt.accounts.${suffix}`
216
- : `wtt-plugin.json.accounts.${suffix}`;
217
- }
218
- return prefix;
219
- }
220
- function combineSourceLabel(baseLabel, fileLabel) {
221
- if (baseLabel && fileLabel)
222
- return `${baseLabel} + ${fileLabel}`;
223
- return fileLabel ?? baseLabel ?? "runtime";
224
- }
225
- export function resolveEffectiveWTTConfig(cfg) {
226
- const openclawSection = cfg?.channels?.wtt;
227
- const { section: pluginSection, fileStatus } = parsePluginConfigFile();
228
- const openclaw = extractAccountMap(openclawSection);
229
- const plugin = extractAccountMap(pluginSection);
230
- const defaultAccountId = trimOrUndefined(pluginSection.defaultAccountId) ?? DEFAULT_ACCOUNT_ID;
231
- const mergedIds = new Set([
232
- ...Object.keys(openclaw.accounts),
233
- ...Object.keys(plugin.accounts),
234
- ]);
235
- const accounts = {};
236
- const accountSources = {};
237
- const accountFieldSources = {};
238
- for (const accountId of mergedIds) {
239
- const base = openclaw.accounts[accountId];
240
- const overlay = plugin.accounts[accountId];
241
- accounts[accountId] = mergeAccount(base, overlay);
242
- const baseLabel = base ? toSourceLabel("openclaw", openclaw.sourceById[accountId] ?? "", accountId) : undefined;
243
- const fileLabel = overlay ? toSourceLabel("file", plugin.sourceById[accountId] ?? "", accountId) : undefined;
244
- accountSources[accountId] = combineSourceLabel(baseLabel, fileLabel);
245
- accountFieldSources[accountId] = resolveFieldSources(base, overlay);
246
- }
247
- // If file declares a default account via defaultAccountId but omits content,
248
- // keep it discoverable as an account id placeholder for compatibility.
249
- if (!accounts[defaultAccountId] && defaultAccountId === DEFAULT_ACCOUNT_ID && hasMeaningfulAccountConfig(pluginSection)) {
250
- const { accounts: _accounts, defaultAccountId: _defaultAccountId, ...flat } = pluginSection;
251
- accounts[defaultAccountId] = mergeAccount(openclaw.accounts[defaultAccountId], flat);
252
- accountSources[defaultAccountId] = combineSourceLabel(openclaw.accounts[defaultAccountId]
253
- ? toSourceLabel("openclaw", openclaw.sourceById[defaultAccountId] ?? "", defaultAccountId)
254
- : undefined, "wtt-plugin.json(default)");
255
- accountFieldSources[defaultAccountId] = resolveFieldSources(openclaw.accounts[defaultAccountId], flat);
256
- }
257
- return {
258
- defaultAccountId,
259
- accounts,
260
- accountSources,
261
- accountFieldSources,
262
- fileStatus,
263
- };
264
- }
265
- export function resetPluginConfigCacheForTests() {
266
- pluginConfigCache = undefined;
267
- }
268
- //# sourceMappingURL=plugin-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../src/plugin-config.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export { createSessionBindingPlaceholder, describeSessionBindingNextAction, } from "./session-binding.js";
2
- export { buildProgressHeartbeat, createProgressHeartbeatScheduler, } from "./progress-ticker.js";
3
- export { validateTaskTransition, } from "./status-transition.js";
4
- export { createTaskRunExecutorLoop, getSharedTaskRunExecutor, } from "./task-executor.js";
5
- export { resolveTaskRunExecutorPersistenceOptions, TaskRunExecutorQueueStore, } from "./task-executor-persistence.js";
6
- export { createTaskStatusEventHandler, } from "./task-status-handler.js";
7
- export type { SessionBindingPlaceholder, } from "./session-binding.js";
8
- export type { ProgressHeartbeatPayload, ProgressHeartbeatScheduler, } from "./progress-ticker.js";
9
- export type { RuntimeReviewAction, RuntimeTransitionIntent, RuntimeTransitionResult, } from "./status-transition.js";
10
- export type { RuntimeApiRequest, TaskRuntimeMetadata, TaskRunDedupResult, TaskRunDetailPayload, TaskRunEnqueueResult, TaskRunExecutionResult, TaskRunExecutorLoop, TaskRunExecutorLoopOptions, TaskRunExecutorRequest, TaskRunExecutorSnapshot, TaskRunIdempotencyDecision, TaskRunInferenceRequest, TaskRunInferenceResult, TaskRunPersistenceAck, TaskRunSummaryPayload, } from "./task-executor.js";
11
- export type { PersistedTaskRunQueueItem, PersistedTaskRunQueueState, ResolvedTaskRunExecutorPersistenceOptions, TaskRunApiContext, TaskRunExecutorIntent, TaskRunExecutorPersistenceOptions, TaskRunIntentMetadata, TaskRunRecoveryMetadata, } from "./task-executor-persistence.js";
12
- export type { TaskStatusConsumeResult, TaskStatusEventHandler, TaskStatusEventHandlerOptions, TaskStatusRunDispatchRequest, TaskStatusRunDispatchResult, } from "./task-status-handler.js";
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,wCAAwC,EACxC,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,yCAAyC,EACzC,iBAAiB,EACjB,qBAAqB,EACrB,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC"}
@@ -1,7 +0,0 @@
1
- export { createSessionBindingPlaceholder, describeSessionBindingNextAction, } from "./session-binding.js";
2
- export { buildProgressHeartbeat, createProgressHeartbeatScheduler, } from "./progress-ticker.js";
3
- export { validateTaskTransition, } from "./status-transition.js";
4
- export { createTaskRunExecutorLoop, getSharedTaskRunExecutor, } from "./task-executor.js";
5
- export { resolveTaskRunExecutorPersistenceOptions, TaskRunExecutorQueueStore, } from "./task-executor-persistence.js";
6
- export { createTaskStatusEventHandler, } from "./task-status-handler.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,wCAAwC,EACxC,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC"}
@@ -1,65 +0,0 @@
1
- export interface ProgressHeartbeatPayload {
2
- kind: "task_progress_heartbeat";
3
- taskId: string;
4
- heartbeatSeconds: number;
5
- at: string;
6
- status: string;
7
- action: string;
8
- elapsedSeconds?: number;
9
- queueDepth?: number;
10
- queueMode?: string;
11
- source?: string;
12
- sessionKey?: string;
13
- inflight?: boolean;
14
- text: string;
15
- }
16
- export interface ProgressHeartbeatScheduler {
17
- start: () => void;
18
- stop: () => void;
19
- emitNow: (overrides?: {
20
- status?: string;
21
- action?: string;
22
- now?: Date;
23
- }) => Promise<ProgressHeartbeatPayload>;
24
- getGeneratedPayloads: () => ProgressHeartbeatPayload[];
25
- getHeartbeatSeconds: () => number;
26
- }
27
- export declare function buildProgressHeartbeat(params: {
28
- taskId: string;
29
- status: string;
30
- action: string;
31
- heartbeatSeconds?: number;
32
- now?: Date;
33
- elapsedSeconds?: number;
34
- queueDepth?: number;
35
- queueMode?: string;
36
- source?: string;
37
- sessionKey?: string;
38
- inflight?: boolean;
39
- }): ProgressHeartbeatPayload;
40
- export declare function createProgressHeartbeatScheduler(params: {
41
- taskId: string;
42
- status: string;
43
- action: string;
44
- heartbeatSeconds?: number;
45
- now?: () => Date;
46
- getMetrics?: () => ({
47
- elapsedSeconds?: number;
48
- queueDepth?: number;
49
- queueMode?: string;
50
- source?: string;
51
- sessionKey?: string;
52
- inflight?: boolean;
53
- } | Promise<{
54
- elapsedSeconds?: number;
55
- queueDepth?: number;
56
- queueMode?: string;
57
- source?: string;
58
- sessionKey?: string;
59
- inflight?: boolean;
60
- }>);
61
- publish?: (payload: ProgressHeartbeatPayload) => void | Promise<void>;
62
- setIntervalFn?: (handler: () => void, timeoutMs: number) => ReturnType<typeof setInterval>;
63
- clearIntervalFn?: (id: ReturnType<typeof setInterval>) => void;
64
- }): ProgressHeartbeatScheduler;
65
- //# sourceMappingURL=progress-ticker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-ticker.d.ts","sourceRoot":"","sources":["../../src/runtime/progress-ticker.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC7G,oBAAoB,EAAE,MAAM,wBAAwB,EAAE,CAAC;IACvD,mBAAmB,EAAE,MAAM,MAAM,CAAC;CACnC;AAaD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,wBAAwB,CA2C3B;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CACjB;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5H,OAAO,CAAC;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAC1I,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAC3F,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,IAAI,CAAC;CAChE,GAAG,0BAA0B,CAiE7B"}
@@ -1,116 +0,0 @@
1
- const DEFAULT_HEARTBEAT_SECONDS = 60;
2
- function normalizeHeartbeatSeconds(raw) {
3
- return Number.isFinite(raw)
4
- ? Math.max(1, Math.floor(raw))
5
- : DEFAULT_HEARTBEAT_SECONDS;
6
- }
7
- function normalizeText(raw, fallback) {
8
- const value = raw.trim();
9
- return value || fallback;
10
- }
11
- export function buildProgressHeartbeat(params) {
12
- const heartbeatSeconds = normalizeHeartbeatSeconds(params.heartbeatSeconds);
13
- const at = (params.now ?? new Date()).toISOString();
14
- const status = normalizeText(params.status, "unknown");
15
- const action = normalizeText(params.action, "(未提供动作描述)");
16
- const elapsedSeconds = Number.isFinite(params.elapsedSeconds)
17
- ? Math.max(0, Math.floor(params.elapsedSeconds))
18
- : undefined;
19
- const queueDepth = Number.isFinite(params.queueDepth)
20
- ? Math.max(0, Math.floor(params.queueDepth))
21
- : undefined;
22
- const queueMode = typeof params.queueMode === "string" ? params.queueMode.trim() : "";
23
- const source = typeof params.source === "string" ? params.source.trim() : "";
24
- const sessionKey = typeof params.sessionKey === "string" ? params.sessionKey.trim() : "";
25
- const inflight = typeof params.inflight === "boolean" ? params.inflight : undefined;
26
- const parts = [`[${at}]`, `状态=${status}`, `动作=${action}`];
27
- if (typeof elapsedSeconds === "number")
28
- parts.push(`elapsed=${elapsedSeconds}s`);
29
- if (typeof queueDepth === "number")
30
- parts.push(`queue_depth=${queueDepth}`);
31
- if (queueMode)
32
- parts.push(`queue_mode=${queueMode}`);
33
- if (source)
34
- parts.push(`source=${source}`);
35
- if (sessionKey)
36
- parts.push(`session=${sessionKey}`);
37
- if (typeof inflight === "boolean")
38
- parts.push(`inflight=${inflight ? 1 : 0}`);
39
- parts.push(`心跳=${heartbeatSeconds}s`);
40
- const text = parts.join(" | ");
41
- return {
42
- kind: "task_progress_heartbeat",
43
- taskId: params.taskId,
44
- heartbeatSeconds,
45
- at,
46
- status,
47
- action,
48
- elapsedSeconds,
49
- queueDepth,
50
- queueMode: queueMode || undefined,
51
- source: source || undefined,
52
- sessionKey: sessionKey || undefined,
53
- inflight,
54
- text,
55
- };
56
- }
57
- export function createProgressHeartbeatScheduler(params) {
58
- const heartbeatSeconds = normalizeHeartbeatSeconds(params.heartbeatSeconds);
59
- const nowFn = params.now ?? (() => new Date());
60
- const setIntervalFn = params.setIntervalFn ?? setInterval;
61
- const clearIntervalFn = params.clearIntervalFn ?? clearInterval;
62
- let latestStatus = normalizeText(params.status, "unknown");
63
- let latestAction = normalizeText(params.action, "(未提供动作描述)");
64
- let timer = null;
65
- const generated = [];
66
- const emitNow = async (overrides) => {
67
- if (typeof overrides?.status === "string") {
68
- latestStatus = normalizeText(overrides.status, latestStatus);
69
- }
70
- if (typeof overrides?.action === "string") {
71
- latestAction = normalizeText(overrides.action, latestAction);
72
- }
73
- const metrics = params.getMetrics ? await params.getMetrics() : undefined;
74
- const payload = buildProgressHeartbeat({
75
- taskId: params.taskId,
76
- status: latestStatus,
77
- action: latestAction,
78
- heartbeatSeconds,
79
- now: overrides?.now ?? nowFn(),
80
- elapsedSeconds: metrics?.elapsedSeconds,
81
- queueDepth: metrics?.queueDepth,
82
- queueMode: metrics?.queueMode,
83
- source: metrics?.source,
84
- sessionKey: metrics?.sessionKey,
85
- inflight: metrics?.inflight,
86
- });
87
- generated.push(payload);
88
- if (params.publish) {
89
- await params.publish(payload);
90
- }
91
- return payload;
92
- };
93
- const start = () => {
94
- if (timer)
95
- return;
96
- timer = setIntervalFn(() => {
97
- void emitNow().catch(() => {
98
- // 由调用方(执行器)记录 publish 错误;定时触发不应中断执行队列
99
- });
100
- }, heartbeatSeconds * 1000);
101
- };
102
- const stop = () => {
103
- if (!timer)
104
- return;
105
- clearIntervalFn(timer);
106
- timer = null;
107
- };
108
- return {
109
- start,
110
- stop,
111
- emitNow,
112
- getGeneratedPayloads: () => [...generated],
113
- getHeartbeatSeconds: () => heartbeatSeconds,
114
- };
115
- }
116
- //# sourceMappingURL=progress-ticker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-ticker.js","sourceRoot":"","sources":["../../src/runtime/progress-ticker.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export interface SessionBindingPlaceholder {
2
- kind: "placeholder";
3
- taskId: string;
4
- accountId: string;
5
- createdAt: string;
6
- sessionsSpawnReady: false;
7
- sessionsSendReady: false;
8
- note: string;
9
- }
10
- export declare function createSessionBindingPlaceholder(params: {
11
- taskId: string;
12
- accountId: string;
13
- now?: Date;
14
- }): SessionBindingPlaceholder;
15
- export declare function describeSessionBindingNextAction(binding: SessionBindingPlaceholder): string;
16
- //# sourceMappingURL=session-binding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-binding.d.ts","sourceRoot":"","sources":["../../src/runtime/session-binding.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,KAAK,CAAC;IAC1B,iBAAiB,EAAE,KAAK,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,yBAAyB,CAU5B;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAO3F"}
@@ -1,20 +0,0 @@
1
- export function createSessionBindingPlaceholder(params) {
2
- return {
3
- kind: "placeholder",
4
- taskId: params.taskId,
5
- accountId: params.accountId,
6
- createdAt: (params.now ?? new Date()).toISOString(),
7
- sessionsSpawnReady: false,
8
- sessionsSendReady: false,
9
- note: "legacy sessions_* 依赖已移除;当前由插件内部执行器队列驱动。",
10
- };
11
- }
12
- export function describeSessionBindingNextAction(binding) {
13
- return [
14
- `会话绑定: ${binding.kind}`,
15
- `spawn: ${binding.sessionsSpawnReady ? "ready" : "n/a"}`,
16
- `send: ${binding.sessionsSendReady ? "ready" : "n/a"}`,
17
- "后续动作: 在内部执行器中接入真实执行体(保持 queue/heartbeat/summary 语义)。",
18
- ].join(" | ");
19
- }
20
- //# sourceMappingURL=session-binding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-binding.js","sourceRoot":"","sources":["../../src/runtime/session-binding.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,+BAA+B,CAAC,MAI/C;IACC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACnD,kBAAkB,EAAE,KAAK;QACzB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE,yCAAyC;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAAkC;IACjF,OAAO;QACL,SAAS,OAAO,CAAC,IAAI,EAAE;QACvB,UAAU,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;QACxD,SAAS,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;QACtD,sDAAsD;KACvD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC"}
@@ -1,19 +0,0 @@
1
- export type RuntimeReviewAction = "approve" | "reject" | "block";
2
- export type RuntimeTransitionIntent = {
3
- kind: "run";
4
- } | {
5
- kind: "review";
6
- action: RuntimeReviewAction;
7
- };
8
- export interface RuntimeTransitionResult {
9
- allowed: boolean;
10
- fromStatus: string;
11
- toStatus: string;
12
- reason: string;
13
- nextAction: string;
14
- }
15
- export declare function validateTaskTransition(params: {
16
- currentStatus?: string;
17
- intent: RuntimeTransitionIntent;
18
- }): RuntimeTransitionResult;
19
- //# sourceMappingURL=status-transition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status-transition.d.ts","sourceRoot":"","sources":["../../src/runtime/status-transition.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAsCD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,uBAAuB,CAAC;CACjC,GAAG,uBAAuB,CAgE1B"}