@moxxy/sdk 0.1.2 → 0.2.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.
Files changed (114) hide show
  1. package/README.md +73 -73
  2. package/dist/client-session.d.ts +10 -0
  3. package/dist/client-session.d.ts.map +1 -1
  4. package/dist/compactor-helpers.d.ts +4 -1
  5. package/dist/compactor-helpers.d.ts.map +1 -1
  6. package/dist/compactor-helpers.js +50 -21
  7. package/dist/compactor-helpers.js.map +1 -1
  8. package/dist/define.d.ts +6 -0
  9. package/dist/define.d.ts.map +1 -1
  10. package/dist/define.js +9 -0
  11. package/dist/define.js.map +1 -1
  12. package/dist/embedding.d.ts +17 -0
  13. package/dist/embedding.d.ts.map +1 -1
  14. package/dist/errors.d.ts +1 -1
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js.map +1 -1
  17. package/dist/fs-utils.d.ts +27 -0
  18. package/dist/fs-utils.d.ts.map +1 -0
  19. package/dist/fs-utils.js +44 -0
  20. package/dist/fs-utils.js.map +1 -0
  21. package/dist/http-utils.d.ts +16 -0
  22. package/dist/http-utils.d.ts.map +1 -0
  23. package/dist/http-utils.js +40 -0
  24. package/dist/http-utils.js.map +1 -0
  25. package/dist/index.d.ts +15 -8
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +9 -4
  28. package/dist/index.js.map +1 -1
  29. package/dist/mode-helpers.d.ts +58 -0
  30. package/dist/mode-helpers.d.ts.map +1 -1
  31. package/dist/mode-helpers.js +119 -0
  32. package/dist/mode-helpers.js.map +1 -1
  33. package/dist/mode.d.ts +34 -0
  34. package/dist/mode.d.ts.map +1 -1
  35. package/dist/mutex.d.ts +15 -0
  36. package/dist/mutex.d.ts.map +1 -0
  37. package/dist/mutex.js +15 -0
  38. package/dist/mutex.js.map +1 -0
  39. package/dist/plugin.d.ts +36 -1
  40. package/dist/plugin.d.ts.map +1 -1
  41. package/dist/provider-utils.d.ts +6 -0
  42. package/dist/provider-utils.d.ts.map +1 -1
  43. package/dist/provider-utils.js +8 -0
  44. package/dist/provider-utils.js.map +1 -1
  45. package/dist/requirements.d.ts +1 -1
  46. package/dist/requirements.d.ts.map +1 -1
  47. package/dist/resolvers.d.ts +52 -0
  48. package/dist/resolvers.d.ts.map +1 -0
  49. package/dist/resolvers.js +123 -0
  50. package/dist/resolvers.js.map +1 -0
  51. package/dist/schemas.d.ts +28 -28
  52. package/dist/schemas.d.ts.map +1 -1
  53. package/dist/schemas.js +2 -0
  54. package/dist/schemas.js.map +1 -1
  55. package/dist/session-like.d.ts +98 -2
  56. package/dist/session-like.d.ts.map +1 -1
  57. package/dist/synthesizer.d.ts +63 -0
  58. package/dist/synthesizer.d.ts.map +1 -0
  59. package/dist/synthesizer.js +21 -0
  60. package/dist/synthesizer.js.map +1 -0
  61. package/dist/tool.d.ts +13 -0
  62. package/dist/tool.d.ts.map +1 -1
  63. package/dist/voice.d.ts +36 -0
  64. package/dist/voice.d.ts.map +1 -0
  65. package/dist/voice.js +82 -0
  66. package/dist/voice.js.map +1 -0
  67. package/dist/workflow.d.ts +144 -0
  68. package/dist/workflow.d.ts.map +1 -0
  69. package/dist/workflow.js +14 -0
  70. package/dist/workflow.js.map +1 -0
  71. package/package.json +14 -14
  72. package/src/client-session.ts +11 -0
  73. package/src/compactor-helpers.test.ts +41 -0
  74. package/src/compactor-helpers.ts +53 -19
  75. package/src/define.ts +15 -0
  76. package/src/embedding.ts +18 -0
  77. package/src/errors.ts +3 -0
  78. package/src/fs-utils.test.ts +61 -0
  79. package/src/fs-utils.ts +55 -0
  80. package/src/http-utils.test.ts +36 -0
  81. package/src/http-utils.ts +40 -0
  82. package/src/index.ts +69 -3
  83. package/src/mode-helpers.ts +169 -0
  84. package/src/mode.ts +35 -0
  85. package/src/mutex.test.ts +36 -0
  86. package/src/mutex.ts +31 -0
  87. package/src/plugin.ts +36 -1
  88. package/src/provider-utils.ts +9 -0
  89. package/src/requirements.ts +1 -0
  90. package/src/resolvers.test.ts +45 -0
  91. package/src/resolvers.ts +164 -0
  92. package/src/schemas.ts +2 -0
  93. package/src/session-like.ts +100 -2
  94. package/src/stuck-loop.test.ts +42 -0
  95. package/src/synthesizer.ts +67 -0
  96. package/src/tool.ts +13 -0
  97. package/src/voice.ts +103 -0
  98. package/src/workflow.ts +165 -0
  99. package/dist/command-sync.d.ts +0 -23
  100. package/dist/command-sync.d.ts.map +0 -1
  101. package/dist/command-sync.js +0 -36
  102. package/dist/command-sync.js.map +0 -1
  103. package/dist/loop-helpers.d.ts +0 -68
  104. package/dist/loop-helpers.d.ts.map +0 -1
  105. package/dist/loop-helpers.js +0 -283
  106. package/dist/loop-helpers.js.map +0 -1
  107. package/dist/loop.d.ts +0 -106
  108. package/dist/loop.d.ts.map +0 -1
  109. package/dist/loop.js +0 -2
  110. package/dist/loop.js.map +0 -1
  111. package/dist/plugin-kind.d.ts +0 -10
  112. package/dist/plugin-kind.d.ts.map +0 -1
  113. package/dist/plugin-kind.js +0 -31
  114. package/dist/plugin-kind.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ export interface WriteFileAtomicOptions {
2
+ /** Mode for the final file, e.g. `0o600` for secrets. Enforced past umask. */
3
+ readonly mode?: number;
4
+ /** Encoding when `data` is a string. Defaults to `'utf8'`. Ignored for bytes. */
5
+ readonly encoding?: BufferEncoding;
6
+ }
7
+ /**
8
+ * Crash-atomic file write: write a unique sibling temp file, then `rename` it
9
+ * over the target. POSIX `rename` is atomic on the same filesystem, so a crash
10
+ * (or full disk) mid-write leaves the previous file intact rather than a
11
+ * truncated one. The temp name carries pid + a random UUID so concurrent
12
+ * writers to the same target never collide on the temp path.
13
+ *
14
+ * This is the single home for the framework's "persist atomically" invariant —
15
+ * every file-state writer (vault, memory, permissions, sessions, the Write/Edit
16
+ * tools) should call this instead of hand-rolling tmp+rename or writing in place.
17
+ */
18
+ export declare function writeFileAtomic(target: string, data: string | Uint8Array, opts?: WriteFileAtomicOptions): Promise<void>;
19
+ /**
20
+ * The moxxy home directory: `$MOXXY_HOME` when set, else `~/.moxxy`. Single
21
+ * source of truth so the env override is honored uniformly — previously half
22
+ * the plugins inlined `~/.moxxy` and ignored `MOXXY_HOME`.
23
+ */
24
+ export declare function moxxyHome(): string;
25
+ /** Join path segments under {@link moxxyHome}. */
26
+ export declare function moxxyPath(...segments: string[]): string;
27
+ //# sourceMappingURL=fs-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,44 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { chmod, mkdir, rename, rm, writeFile } from 'node:fs/promises';
3
+ import { homedir } from 'node:os';
4
+ import { dirname, join } from 'node:path';
5
+ /**
6
+ * Crash-atomic file write: write a unique sibling temp file, then `rename` it
7
+ * over the target. POSIX `rename` is atomic on the same filesystem, so a crash
8
+ * (or full disk) mid-write leaves the previous file intact rather than a
9
+ * truncated one. The temp name carries pid + a random UUID so concurrent
10
+ * writers to the same target never collide on the temp path.
11
+ *
12
+ * This is the single home for the framework's "persist atomically" invariant —
13
+ * every file-state writer (vault, memory, permissions, sessions, the Write/Edit
14
+ * tools) should call this instead of hand-rolling tmp+rename or writing in place.
15
+ */
16
+ export async function writeFileAtomic(target, data, opts = {}) {
17
+ await mkdir(dirname(target), { recursive: true });
18
+ const tmp = `${target}.${process.pid}.${randomUUID()}.tmp`;
19
+ try {
20
+ await writeFile(tmp, data, { encoding: opts.encoding ?? 'utf8' });
21
+ // chmod explicitly: writeFile's mode option is masked by umask, but a
22
+ // 0o600 secret file must be exactly 0o600 regardless of the host umask.
23
+ if (opts.mode != null)
24
+ await chmod(tmp, opts.mode);
25
+ await rename(tmp, target);
26
+ }
27
+ catch (err) {
28
+ await rm(tmp, { force: true }).catch(() => { });
29
+ throw err;
30
+ }
31
+ }
32
+ /**
33
+ * The moxxy home directory: `$MOXXY_HOME` when set, else `~/.moxxy`. Single
34
+ * source of truth so the env override is honored uniformly — previously half
35
+ * the plugins inlined `~/.moxxy` and ignored `MOXXY_HOME`.
36
+ */
37
+ export function moxxyHome() {
38
+ return process.env.MOXXY_HOME ?? join(homedir(), '.moxxy');
39
+ }
40
+ /** Join path segments under {@link moxxyHome}. */
41
+ export function moxxyPath(...segments) {
42
+ return join(moxxyHome(), ...segments);
43
+ }
44
+ //# sourceMappingURL=fs-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAS1C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,IAAyB,EACzB,OAA+B,EAAE;IAEjC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QAClE,sEAAsE;QACtE,wEAAwE;QACxE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,SAAS,CAAC,GAAG,QAAkB;IAC7C,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ /**
3
+ * Read a request body into a Buffer, rejecting (and destroying the socket) once
4
+ * `maxBytes` is exceeded. Bounds in-memory buffering so a malicious or runaway
5
+ * client can't exhaust the host's memory. Shared by every HTTP channel/listener.
6
+ */
7
+ export declare function readRequestBody(req: IncomingMessage, maxBytes: number): Promise<Buffer>;
8
+ /**
9
+ * Constant-time comparison of a presented bearer token against the expected
10
+ * value. A length mismatch returns false WITHOUT calling `timingSafeEqual`
11
+ * (which throws on unequal lengths and would leak the length); equal-length
12
+ * inputs are compared in constant time so an attacker can't recover the token
13
+ * byte-by-byte via response timing.
14
+ */
15
+ export declare function bearerTokenMatches(presented: string | undefined | null, expected: string): boolean;
16
+ //# sourceMappingURL=http-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-utils.d.ts","sourceRoot":"","sources":["../src/http-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB7F;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMlG"}
@@ -0,0 +1,40 @@
1
+ import { timingSafeEqual } from 'node:crypto';
2
+ /**
3
+ * Read a request body into a Buffer, rejecting (and destroying the socket) once
4
+ * `maxBytes` is exceeded. Bounds in-memory buffering so a malicious or runaway
5
+ * client can't exhaust the host's memory. Shared by every HTTP channel/listener.
6
+ */
7
+ export async function readRequestBody(req, maxBytes) {
8
+ return new Promise((resolve, reject) => {
9
+ const chunks = [];
10
+ let size = 0;
11
+ req.on('data', (chunk) => {
12
+ size += chunk.length;
13
+ if (size > maxBytes) {
14
+ reject(new Error(`request body exceeds ${maxBytes} bytes`));
15
+ req.destroy();
16
+ return;
17
+ }
18
+ chunks.push(chunk);
19
+ });
20
+ req.on('end', () => resolve(Buffer.concat(chunks)));
21
+ req.on('error', reject);
22
+ });
23
+ }
24
+ /**
25
+ * Constant-time comparison of a presented bearer token against the expected
26
+ * value. A length mismatch returns false WITHOUT calling `timingSafeEqual`
27
+ * (which throws on unequal lengths and would leak the length); equal-length
28
+ * inputs are compared in constant time so an attacker can't recover the token
29
+ * byte-by-byte via response timing.
30
+ */
31
+ export function bearerTokenMatches(presented, expected) {
32
+ if (!presented)
33
+ return false;
34
+ const a = Buffer.from(presented);
35
+ const b = Buffer.from(expected);
36
+ if (a.length !== b.length)
37
+ return false;
38
+ return timingSafeEqual(a, b);
39
+ }
40
+ //# sourceMappingURL=http-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-utils.js","sourceRoot":"","sources":["../src/http-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAoB,EAAE,QAAgB;IAC1E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,QAAQ,QAAQ,CAAC,CAAC,CAAC;gBAC5D,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoC,EAAE,QAAgB;IACvF,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ export type { EventId, TurnId, ToolCallId, SessionId, PluginId, SkillId, } from
2
2
  export { asEventId, asTurnId, asToolCallId, asSessionId, asPluginId, asSkillId } from './ids.js';
3
3
  export type { EventBase, EventSource, MoxxyEvent, MoxxyEventType, MoxxyEventOfType, EmittedEvent, UserPromptEvent, UserPromptAttachment, AssistantChunkEvent, AssistantMessageEvent, ToolCallRequestedEvent, ToolCallApprovedEvent, ToolCallDeniedEvent, ToolResultEvent, SkillInvokedEvent, SkillCreatedEvent, PluginRegisteredEvent, PluginUnregisteredEvent, ModeIterationEvent, CompactionEvent, ProviderRequestEvent, ProviderResponseEvent, ErrorEvent, AbortEvent, PluginEvent, } from './events.js';
4
4
  export type { EventLogReader } from './log.js';
5
- export type { RunTurnOptions, SessionLogReader, SessionLike, SessionInfo, ProviderInfo, ToolInfo, SkillInfo, CommandInfo, } from './session-like.js';
6
- export type { ClientSession, ProvidersClientView, ModesClientView, ToolsClientView, CommandsClientView, SkillsClientView, AgentsClientView, TranscribersClientView, RequirementsClientView, PermissionsClientView, } from './client-session.js';
5
+ export type { RunTurnOptions, SessionLogReader, SessionLike, SessionInfo, ProviderInfo, ToolInfo, SkillInfo, CommandInfo, CredentialResolver, McpAdminView, McpServerStatusView, WorkflowsView, WorkflowSummaryView, WorkflowRunView, } from './session-like.js';
6
+ export type { ClientSession, ProvidersClientView, ModesClientView, ToolsClientView, CommandsClientView, SkillsClientView, AgentsClientView, TranscribersClientView, SynthesizersClientView, RequirementsClientView, PermissionsClientView, } from './client-session.js';
7
7
  export type { PermissionMode, PermissionDecision, PermissionRule, PendingToolCall, PermissionContext, PermissionResolver, } from './permission.js';
8
8
  export type { ToolContext, ToolDef, ToolCompactPresentation, BrokeredFs, BrokeredStat, BrokeredFetch, BrokeredFetchInit, BrokeredFetchResponse, BrokeredExec, BrokeredExecOpts, BrokeredExecResult, } from './tool.js';
9
9
  export type { FsCapability, NetCapability, CapabilitySpec, IsolationStrength, ToolIsolationSpec, IsolatedToolCall, Isolator, HandlerModuleRef, } from './isolation.js';
@@ -14,32 +14,39 @@ export type { CacheStrategyDef, CacheStrategyContext } from './cache-strategy.js
14
14
  export type { ViewNode, ViewAction, ViewDoc, ViewParseError, ViewParseResult, AttrType, AttrSpec, ViewTagSpec, ViewRendererDef, } from './view-renderer.js';
15
15
  export { VIEW_PRIMITIVES, VIEW_COMPONENTS, DEFAULT_VIEW_TAGS } from './view-renderer.js';
16
16
  export type { TunnelProviderDef, TunnelHandle, TunnelOpenOptions } from './tunnel.js';
17
- export { isRetryableError, toFriendlyError, zodToJsonSchema, type StopReason } from './provider-utils.js';
17
+ export { isRetryableError, toFriendlyError, zodToJsonSchema, estimateTextTokens, type StopReason } from './provider-utils.js';
18
+ export { writeFileAtomic, moxxyHome, moxxyPath, type WriteFileAtomicOptions } from './fs-utils.js';
19
+ export { createMutex, type Mutex } from './mutex.js';
20
+ export { readRequestBody, bearerTokenMatches } from './http-utils.js';
21
+ export { autoAllowResolver, denyByDefaultResolver, createCallbackResolver, createAllowListResolver, createDeferredPermissionResolver, evaluateToolRule, type CallbackResolverOptions, type PermissionPromptHandler, type DeferredPermissionResolver, type DeferredPermissionResolverOptions, } from './resolvers.js';
18
22
  export { MoxxyError, classifyHttpStatus, classifyNetworkError, type MoxxyErrorCode, type MoxxyErrorInit, } from './errors.js';
19
- export { collectProviderStream, projectMessagesFromLog, projectMessages, buildSystemPromptWithSkills, type CollectedToolUse, type StreamResult, type ProjectMessagesOptions, type ProjectedMessages, } from './mode-helpers.js';
23
+ export { collectProviderStream, runSingleShotTurn, projectMessagesFromLog, projectMessages, buildSystemPromptWithSkills, createStuckLoopDetector, stableHash, type CollectedToolUse, type StreamResult, type ProjectMessagesOptions, type ProjectedMessages, type StuckLoopDetector, type StuckSignal, } from './mode-helpers.js';
20
24
  export { dispatchToolCall } from './tool-dispatch.js';
21
25
  export type { TokenBudget, CompactContext, CompactorDef } from './compactor.js';
22
- export { estimateContextTokens, runCompactionIfNeeded } from './compactor-helpers.js';
26
+ export { estimateContextTokens, runCompactionIfNeeded, isContextOverflowError, } from './compactor-helpers.js';
23
27
  export { runElisionIfNeeded, resolveElisionSettings, type ResolvedElisionSettings, } from './elision-helpers.js';
24
28
  export { computeElisionState, toolResultStub, conversationalStub, toolResultBytes, toolResultStubbed, conversationalStubbed, TINY_TURN_CHARS, type ElisionState, } from './elision-state.js';
25
29
  export { applyLazyTools, buildToolIndex, loadedToolNames, ALWAYS_ON_TOOLS, type GatedTools, } from './tool-gating.js';
26
30
  export { summarizeSessionTokens, summarizeSessionTokensFromEvents, summarizeTokensByModel, addModelTotals, usageEventFields, type SessionTokenSummary, type ModelUsageTotals, } from './token-accounting.js';
27
31
  export type { Skill, SkillDef, SkillFrontmatter, SkillScope, SkillSchedule } from './skill.js';
32
+ export type { Workflow, WorkflowStep, WorkflowTrigger, WorkflowStepErrorMode, WorkflowInputSpec, WorkflowDelivery, WorkflowToolRunner, WorkflowLookup, WorkflowEventSubtype, WorkflowRunDeps, WorkflowStepStatus, WorkflowStepResult, WorkflowRunResult, WorkflowExecutorDef, } from './workflow.js';
28
33
  export type { AgentDef } from './agent.js';
29
34
  export type { CommandDef, CommandContext, CommandOutput, CommandHandlerResult, } from './command.js';
30
- export type { ToolRegistry, SkillRegistry, PluginHostHandle, ModeContext, ModeDef, ElisionSettings, ApprovalResolver, ApprovalRequest, ApprovalDecision, ApprovalOption, } from './mode.js';
35
+ export type { ToolRegistry, SkillRegistry, PluginHostHandle, ModeContext, ModeDef, ModeBadge, ElisionSettings, ApprovalResolver, ApprovalRequest, ApprovalDecision, ApprovalOption, } from './mode.js';
31
36
  export type { AppContext, TurnContext, ToolCallContext, ToolResultContext, ToolCallVerdict, ToolCallRequest, LifecycleHooks, HookDispatcher, } from './hooks.js';
32
37
  export type { PluginKind, PluginSpec, Plugin, PluginManifest, ResolvedPluginManifest, } from './plugin.js';
33
38
  export type { Channel, ChannelHandle, ChannelStartOptsBase, ChannelFactoryDeps, ChannelDef, ChannelAvailability, ChannelRegistry, ChannelSubcommand, ChannelSubcommandContext, ChannelCommandArgs, } from './channel.js';
34
- export type { EmbeddingProvider } from './embedding.js';
39
+ export type { EmbeddingProvider, EmbedderDef } from './embedding.js';
35
40
  export { CachedEmbeddingProvider } from './embedding-cache.js';
36
41
  export type { RequirementKind, RequirementState, MoxxyRequirement, RequirementIssue, RequirementCheck, } from './requirements.js';
37
42
  export type { Transcriber, TranscriberDef, TranscriptionResult, TranscriptionSegment, TranscribeOptions, } from './transcriber.js';
43
+ export type { Synthesizer, SynthesizerDef, SynthesizerCreateContext, SynthesisResult, SynthesizeOptions, } from './synthesizer.js';
38
44
  export interface PluginLoader {
39
45
  load(manifest: import('./plugin.js').ResolvedPluginManifest): Promise<import('./plugin.js').Plugin>;
40
46
  }
41
- export { definePlugin, defineTool, defineProvider, defineMode, defineCompactor, defineCacheStrategy, defineViewRenderer, defineTunnelProvider, defineChannel, definePermission, defineSkill, defineTranscriber, defineCommand, defineAgent, } from './define.js';
47
+ export { definePlugin, defineTool, defineProvider, defineMode, defineCompactor, defineCacheStrategy, defineViewRenderer, defineTunnelProvider, defineChannel, definePermission, defineSkill, defineTranscriber, defineSynthesizer, defineEmbedder, defineCommand, defineAgent, defineWorkflowExecutor, } from './define.js';
42
48
  export { skillFrontmatterSchema, pluginManifestSchema, moxxyPackageSchema, requirementSchema, type SkillFrontmatterInput, type PluginManifestInput, type MoxxyPackageInput, } from './schemas.js';
43
49
  export { getInstallHint, type InstallHint, type InstallTarget, } from './install-hints.js';
50
+ export { checkTranscriberReady, pickFirstAvailableTranscriber, resolveTranscriber, } from './voice.js';
44
51
  export { z } from 'zod';
45
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,18 +1,23 @@
1
1
  export { asEventId, asTurnId, asToolCallId, asSessionId, asPluginId, asSkillId } from './ids.js';
2
2
  export { ISOLATION_RANK } from './isolation.js';
3
3
  export { VIEW_PRIMITIVES, VIEW_COMPONENTS, DEFAULT_VIEW_TAGS } from './view-renderer.js';
4
- export { isRetryableError, toFriendlyError, zodToJsonSchema } from './provider-utils.js';
4
+ export { isRetryableError, toFriendlyError, zodToJsonSchema, estimateTextTokens } from './provider-utils.js';
5
+ export { writeFileAtomic, moxxyHome, moxxyPath } from './fs-utils.js';
6
+ export { createMutex } from './mutex.js';
7
+ export { readRequestBody, bearerTokenMatches } from './http-utils.js';
8
+ export { autoAllowResolver, denyByDefaultResolver, createCallbackResolver, createAllowListResolver, createDeferredPermissionResolver, evaluateToolRule, } from './resolvers.js';
5
9
  export { MoxxyError, classifyHttpStatus, classifyNetworkError, } from './errors.js';
6
- export { collectProviderStream, projectMessagesFromLog, projectMessages, buildSystemPromptWithSkills, } from './mode-helpers.js';
10
+ export { collectProviderStream, runSingleShotTurn, projectMessagesFromLog, projectMessages, buildSystemPromptWithSkills, createStuckLoopDetector, stableHash, } from './mode-helpers.js';
7
11
  export { dispatchToolCall } from './tool-dispatch.js';
8
- export { estimateContextTokens, runCompactionIfNeeded } from './compactor-helpers.js';
12
+ export { estimateContextTokens, runCompactionIfNeeded, isContextOverflowError, } from './compactor-helpers.js';
9
13
  export { runElisionIfNeeded, resolveElisionSettings, } from './elision-helpers.js';
10
14
  export { computeElisionState, toolResultStub, conversationalStub, toolResultBytes, toolResultStubbed, conversationalStubbed, TINY_TURN_CHARS, } from './elision-state.js';
11
15
  export { applyLazyTools, buildToolIndex, loadedToolNames, ALWAYS_ON_TOOLS, } from './tool-gating.js';
12
16
  export { summarizeSessionTokens, summarizeSessionTokensFromEvents, summarizeTokensByModel, addModelTotals, usageEventFields, } from './token-accounting.js';
13
17
  export { CachedEmbeddingProvider } from './embedding-cache.js';
14
- export { definePlugin, defineTool, defineProvider, defineMode, defineCompactor, defineCacheStrategy, defineViewRenderer, defineTunnelProvider, defineChannel, definePermission, defineSkill, defineTranscriber, defineCommand, defineAgent, } from './define.js';
18
+ export { definePlugin, defineTool, defineProvider, defineMode, defineCompactor, defineCacheStrategy, defineViewRenderer, defineTunnelProvider, defineChannel, definePermission, defineSkill, defineTranscriber, defineSynthesizer, defineEmbedder, defineCommand, defineAgent, defineWorkflowExecutor, } from './define.js';
15
19
  export { skillFrontmatterSchema, pluginManifestSchema, moxxyPackageSchema, requirementSchema, } from './schemas.js';
16
20
  export { getInstallHint, } from './install-hints.js';
21
+ export { checkTranscriberReady, pickFirstAvailableTranscriber, resolveTranscriber, } from './voice.js';
17
22
  export { z } from 'zod';
18
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAyFjG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAsChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,2BAA2B,GAK5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACtB,cAAc,EACd,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AA0D/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAsB/D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgGjG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAsChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAmB,MAAM,qBAAqB,CAAC;AAC9H,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAA+B,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,GAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,UAAU,GAOX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACtB,cAAc,EACd,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AA4E/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AA8B/D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC"}
@@ -96,4 +96,62 @@ export declare function collectProviderStream(ctx: ModeContext, messages: Readon
96
96
  */
97
97
  stablePrefixIndex?: number;
98
98
  }): Promise<StreamResult>;
99
+ /**
100
+ * Run a single-shot (no-tools) provider turn — the shape every planner /
101
+ * synthesis phase shares. Runs context management (compaction + elision),
102
+ * emits the `provider_request` bookend, streams the response with tools
103
+ * disabled, then emits either an `error` event (returning `null`) or the
104
+ * `provider_response` bookend (returning the collected text).
105
+ *
106
+ * Replaces the ~40-line block each mode phase used to inline; centralizing it
107
+ * keeps event emission uniform and means a fix here (e.g. always running
108
+ * elision) lands for every loop strategy at once.
109
+ */
110
+ export declare function runSingleShotTurn(ctx: ModeContext, messages: ReadonlyArray<ProviderMessage>, opts?: {
111
+ maxTokens?: number;
112
+ }): Promise<string | null>;
113
+ /**
114
+ * Sliding-window detector for "model keeps making the same tool call".
115
+ *
116
+ * When the same `(toolName, input)` pair appears `repeatThreshold` times in
117
+ * the last `windowSize` calls, the model is almost certainly stuck — polling a
118
+ * tool that returns the same thing, mis-handling an error, etc. Bail early
119
+ * instead of burning through the iteration cap.
120
+ *
121
+ * Shared across every loop strategy so detection is uniform — previously each
122
+ * mode re-rolled this, and one copy used a non-canonical `JSON.stringify`
123
+ * signature that silently missed key-reordered repeats.
124
+ */
125
+ export interface StuckSignal {
126
+ /** True when the loop guard should trip. */
127
+ readonly stuck: boolean;
128
+ /** Repeat count behind the trip — for the error message. */
129
+ readonly count: number;
130
+ /**
131
+ * `exact` = the same (tool, full-input) repeated `repeatThreshold` times.
132
+ * `near` = the same (tool, identity arg — url / file_path / command / …)
133
+ * repeated `nearThreshold` times while only volatile args (maxBytes,
134
+ * timeoutMs) varied. Catches the "refetch the same URL with a bigger
135
+ * maxBytes over and over" loop the exact check sails past.
136
+ */
137
+ readonly kind: 'exact' | 'near';
138
+ }
139
+ export interface StuckLoopDetector {
140
+ readonly windowSize: number;
141
+ readonly repeatThreshold: number;
142
+ /** Record the call and report whether the loop guard should trip. */
143
+ record(toolName: string, input: unknown): StuckSignal;
144
+ }
145
+ export declare function createStuckLoopDetector(opts?: {
146
+ windowSize?: number;
147
+ repeatThreshold?: number;
148
+ nearWindowSize?: number;
149
+ nearThreshold?: number;
150
+ }): StuckLoopDetector;
151
+ /**
152
+ * Stable, key-order-canonical hash of a tool call's input, so `{a:1,b:2}` and
153
+ * `{b:2,a:1}` produce the same key. Use for any "have I seen this call before"
154
+ * comparison — a raw `JSON.stringify` is NOT order-stable.
155
+ */
156
+ export declare function stableHash(input: unknown): string;
99
157
  //# sourceMappingURL=mode-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-helpers.d.ts","sourceRoot":"","sources":["../src/mode-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYxC;;;;;;;;GAQG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAKb,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAC3B,MAAM,GAAG,SAAS,CAoBpB;AAED,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAiCD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAC7B,IAAI,GAAE,sBAA2B,GAChC,eAAe,EAAE,CAEnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAC7B,IAAI,GAAE,sBAA2B,GAChC,iBAAiB,CAqLnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACvB,GACL,OAAO,CAAC,YAAY,CAAC,CAoHvB"}
1
+ {"version":3,"file":"mode-helpers.d.ts","sourceRoot":"","sources":["../src/mode-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { computeElisionState, conversationalStub, conversationalStubbed, toolResultBytes, toolResultStub, toolResultStubbed, } from './elision-state.js';
2
2
  import { applyLazyTools } from './tool-gating.js';
3
+ import { runCompactionIfNeeded } from './compactor-helpers.js';
4
+ import { runElisionIfNeeded } from './elision-helpers.js';
5
+ import { usageEventFields } from './token-accounting.js';
3
6
  /** Appended to the system prompt while elision is active (see projection). */
4
7
  export const ELISION_SYSTEM_NOTE = 'Context note: to stay within budget, older turns may appear as stubs like ' +
5
8
  '`[output elided — recall("id") to view]` or `[elided user turn · recall({ seq: N })]`. ' +
@@ -365,4 +368,120 @@ export async function collectProviderStream(ctx, messages, opts = {}) {
365
368
  }
366
369
  return { text, toolUses: finalToolUses, stopReason, error, ...(usage ? { usage } : {}) };
367
370
  }
371
+ /**
372
+ * Run a single-shot (no-tools) provider turn — the shape every planner /
373
+ * synthesis phase shares. Runs context management (compaction + elision),
374
+ * emits the `provider_request` bookend, streams the response with tools
375
+ * disabled, then emits either an `error` event (returning `null`) or the
376
+ * `provider_response` bookend (returning the collected text).
377
+ *
378
+ * Replaces the ~40-line block each mode phase used to inline; centralizing it
379
+ * keeps event emission uniform and means a fix here (e.g. always running
380
+ * elision) lands for every loop strategy at once.
381
+ */
382
+ export async function runSingleShotTurn(ctx, messages, opts = {}) {
383
+ await runCompactionIfNeeded(ctx);
384
+ await runElisionIfNeeded(ctx);
385
+ await ctx.emit({
386
+ type: 'provider_request',
387
+ sessionId: ctx.sessionId,
388
+ turnId: ctx.turnId,
389
+ source: 'system',
390
+ provider: ctx.provider.name,
391
+ model: ctx.model,
392
+ });
393
+ const { text, usage, error } = await collectProviderStream(ctx, messages, {
394
+ includeTools: false,
395
+ ...(opts.maxTokens !== undefined ? { maxTokens: opts.maxTokens } : {}),
396
+ });
397
+ if (error) {
398
+ await ctx.emit({
399
+ type: 'error',
400
+ sessionId: ctx.sessionId,
401
+ turnId: ctx.turnId,
402
+ source: 'system',
403
+ kind: error.retryable ? 'retryable' : 'fatal',
404
+ message: error.message,
405
+ });
406
+ return null;
407
+ }
408
+ await ctx.emit({
409
+ type: 'provider_response',
410
+ sessionId: ctx.sessionId,
411
+ turnId: ctx.turnId,
412
+ source: 'system',
413
+ provider: ctx.provider.name,
414
+ model: ctx.model,
415
+ ...usageEventFields(usage),
416
+ });
417
+ return text;
418
+ }
419
+ /** Identity arguments that pin "the same target" across volatile-arg variation,
420
+ * best-first. The first present string field wins. */
421
+ const IDENTITY_ARG_KEYS = ['url', 'file_path', 'path', 'command', 'cmd', 'query', 'pattern'];
422
+ function identityArg(input) {
423
+ if (!input || typeof input !== 'object' || Array.isArray(input))
424
+ return null;
425
+ const o = input;
426
+ for (const k of IDENTITY_ARG_KEYS) {
427
+ const v = o[k];
428
+ if (typeof v === 'string' && v.trim().length > 0)
429
+ return `${k}=${v}`;
430
+ }
431
+ return null;
432
+ }
433
+ export function createStuckLoopDetector(opts = {}) {
434
+ const windowSize = opts.windowSize ?? 8;
435
+ const repeatThreshold = opts.repeatThreshold ?? 3;
436
+ // Near-dups need a higher count + a wider window (they're spread out across a
437
+ // burst of other calls), and tolerate a couple of legit "bigger refetch" tries.
438
+ const nearWindowSize = opts.nearWindowSize ?? Math.max(windowSize * 2, 16);
439
+ const nearThreshold = opts.nearThreshold ?? Math.max(repeatThreshold + 2, 5);
440
+ const recent = [];
441
+ const recentNear = [];
442
+ return {
443
+ windowSize,
444
+ repeatThreshold,
445
+ record(toolName, input) {
446
+ const key = `${toolName}|${stableHash(input)}`;
447
+ recent.push(key);
448
+ if (recent.length > windowSize)
449
+ recent.shift();
450
+ const exactCount = recent.filter((k) => k === key).length;
451
+ if (exactCount >= repeatThreshold)
452
+ return { stuck: true, count: exactCount, kind: 'exact' };
453
+ let nearCount = 0;
454
+ const id = identityArg(input);
455
+ if (id !== null) {
456
+ const nearKey = `${toolName}|${id}`;
457
+ recentNear.push(nearKey);
458
+ if (recentNear.length > nearWindowSize)
459
+ recentNear.shift();
460
+ nearCount = recentNear.filter((k) => k === nearKey).length;
461
+ if (nearCount >= nearThreshold)
462
+ return { stuck: true, count: nearCount, kind: 'near' };
463
+ }
464
+ return { stuck: false, count: Math.max(exactCount, nearCount), kind: 'exact' };
465
+ },
466
+ };
467
+ }
468
+ /**
469
+ * Stable, key-order-canonical hash of a tool call's input, so `{a:1,b:2}` and
470
+ * `{b:2,a:1}` produce the same key. Use for any "have I seen this call before"
471
+ * comparison — a raw `JSON.stringify` is NOT order-stable.
472
+ */
473
+ export function stableHash(input) {
474
+ return canonicalize(input);
475
+ }
476
+ function canonicalize(value) {
477
+ if (value === null || value === undefined)
478
+ return 'null';
479
+ if (typeof value !== 'object')
480
+ return JSON.stringify(value);
481
+ if (Array.isArray(value)) {
482
+ return '[' + value.map(canonicalize).join(',') + ']';
483
+ }
484
+ const entries = Object.entries(value).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
485
+ return '{' + entries.map(([k, v]) => JSON.stringify(k) + ':' + canonicalize(v)).join(',') + '}';
486
+ }
368
487
  //# sourceMappingURL=mode-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-helpers.js","sourceRoot":"","sources":["../src/mode-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mode-helpers.js","sourceRoot":"","sources":["../src/mode-helpers.ts"],"names":[],"mappings":"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"}
package/dist/mode.d.ts CHANGED
@@ -86,6 +86,14 @@ export interface ModeContext {
86
86
  * Absent in synthetic test contexts that don't model a full Session.
87
87
  */
88
88
  readonly subagents?: SubagentSpawner;
89
+ /**
90
+ * Request the session switch its active mode AFTER this turn fully drains.
91
+ * Used by terminal workflow modes (BMAD finishing its last phase) to hand
92
+ * control back to a normal mode so the next message isn't trapped in the
93
+ * workflow. The switch is applied post-turn by the runner; an unknown /
94
+ * unregistered mode name is ignored. Absent in synthetic test contexts.
95
+ */
96
+ readonly requestModeSwitch?: (modeName: string) => void;
89
97
  emit(event: EmittedEvent): Promise<MoxxyEvent>;
90
98
  }
91
99
  /**
@@ -120,6 +128,27 @@ export interface ApprovalResolver {
120
128
  readonly name: string;
121
129
  confirm(req: ApprovalRequest): Promise<ApprovalDecision>;
122
130
  }
131
+ /**
132
+ * Optional presentation hint a mode can advertise so channels render a
133
+ * persistent, accent-coloured badge while it is active — even mid-run,
134
+ * when the usual mode footer is hidden behind a "Thinking" marker. This
135
+ * lets a high-autonomy mode (e.g. goal mode, which auto-approves tools and
136
+ * keeps working unattended) always be obvious to the user. Modes that omit
137
+ * it get the plain `mode: <name>` footer treatment.
138
+ *
139
+ * Carried on {@link SessionInfo.activeModeBadge} so thin clients (desktop
140
+ * over RPC) see it too — keep it plain data (it crosses the wire).
141
+ */
142
+ export interface ModeBadge {
143
+ /** Short, uppercase label for the badge (e.g. "GOAL"). Keep it tiny. */
144
+ readonly label: string;
145
+ /**
146
+ * Accent tone each channel maps to its palette. `attention` for
147
+ * elevated / autonomous modes the user must always notice; `info` for a
148
+ * quieter highlight. Defaults to `info` when omitted.
149
+ */
150
+ readonly tone?: 'attention' | 'info';
151
+ }
123
152
  export interface ModeDef {
124
153
  readonly name: string;
125
154
  /**
@@ -128,6 +157,11 @@ export interface ModeDef {
128
157
  * memorising plugin internals. Keep short — the picker truncates.
129
158
  */
130
159
  readonly description?: string;
160
+ /**
161
+ * Optional presentation hint. When set, channels surface a persistent
162
+ * accent badge while this mode is active. See {@link ModeBadge}.
163
+ */
164
+ readonly badge?: ModeBadge;
131
165
  run(ctx: ModeContext): AsyncIterable<MoxxyEvent>;
132
166
  }
133
167
  //# sourceMappingURL=mode.d.ts.map