@dotsetlabs/dotclaw 1.1.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 (170) hide show
  1. package/.env.example +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +111 -0
  4. package/config-examples/groups/global/CLAUDE.md +21 -0
  5. package/config-examples/groups/main/CLAUDE.md +47 -0
  6. package/config-examples/mount-allowlist.json +25 -0
  7. package/config-examples/plugin-http.json +18 -0
  8. package/config-examples/runtime.json +30 -0
  9. package/config-examples/tool-budgets.json +24 -0
  10. package/config-examples/tool-policy.json +51 -0
  11. package/container/.dockerignore +6 -0
  12. package/container/Dockerfile +74 -0
  13. package/container/agent-runner/package-lock.json +92 -0
  14. package/container/agent-runner/package.json +20 -0
  15. package/container/agent-runner/src/agent-config.ts +295 -0
  16. package/container/agent-runner/src/container-protocol.ts +73 -0
  17. package/container/agent-runner/src/daemon.ts +91 -0
  18. package/container/agent-runner/src/index.ts +1428 -0
  19. package/container/agent-runner/src/ipc.ts +321 -0
  20. package/container/agent-runner/src/memory.ts +336 -0
  21. package/container/agent-runner/src/prompt-packs.ts +341 -0
  22. package/container/agent-runner/src/tools.ts +1720 -0
  23. package/container/agent-runner/tsconfig.json +19 -0
  24. package/container/build.sh +23 -0
  25. package/container/skills/agent-browser.md +159 -0
  26. package/dist/admin-commands.d.ts +7 -0
  27. package/dist/admin-commands.d.ts.map +1 -0
  28. package/dist/admin-commands.js +87 -0
  29. package/dist/admin-commands.js.map +1 -0
  30. package/dist/agent-context.d.ts +42 -0
  31. package/dist/agent-context.d.ts.map +1 -0
  32. package/dist/agent-context.js +92 -0
  33. package/dist/agent-context.js.map +1 -0
  34. package/dist/agent-execution.d.ts +68 -0
  35. package/dist/agent-execution.d.ts.map +1 -0
  36. package/dist/agent-execution.js +169 -0
  37. package/dist/agent-execution.js.map +1 -0
  38. package/dist/agent-semaphore.d.ts +2 -0
  39. package/dist/agent-semaphore.d.ts.map +1 -0
  40. package/dist/agent-semaphore.js +52 -0
  41. package/dist/agent-semaphore.js.map +1 -0
  42. package/dist/behavior-config.d.ts +14 -0
  43. package/dist/behavior-config.d.ts.map +1 -0
  44. package/dist/behavior-config.js +52 -0
  45. package/dist/behavior-config.js.map +1 -0
  46. package/dist/cli.d.ts +3 -0
  47. package/dist/cli.d.ts.map +1 -0
  48. package/dist/cli.js +626 -0
  49. package/dist/cli.js.map +1 -0
  50. package/dist/config.d.ts +31 -0
  51. package/dist/config.d.ts.map +1 -0
  52. package/dist/config.js +38 -0
  53. package/dist/config.js.map +1 -0
  54. package/dist/container-protocol.d.ts +72 -0
  55. package/dist/container-protocol.d.ts.map +1 -0
  56. package/dist/container-protocol.js +3 -0
  57. package/dist/container-protocol.js.map +1 -0
  58. package/dist/container-runner.d.ts +59 -0
  59. package/dist/container-runner.d.ts.map +1 -0
  60. package/dist/container-runner.js +813 -0
  61. package/dist/container-runner.js.map +1 -0
  62. package/dist/cost.d.ts +9 -0
  63. package/dist/cost.d.ts.map +1 -0
  64. package/dist/cost.js +11 -0
  65. package/dist/cost.js.map +1 -0
  66. package/dist/dashboard.d.ts +58 -0
  67. package/dist/dashboard.d.ts.map +1 -0
  68. package/dist/dashboard.js +471 -0
  69. package/dist/dashboard.js.map +1 -0
  70. package/dist/db.d.ts +99 -0
  71. package/dist/db.d.ts.map +1 -0
  72. package/dist/db.js +423 -0
  73. package/dist/db.js.map +1 -0
  74. package/dist/error-messages.d.ts +17 -0
  75. package/dist/error-messages.d.ts.map +1 -0
  76. package/dist/error-messages.js +109 -0
  77. package/dist/error-messages.js.map +1 -0
  78. package/dist/index.d.ts +2 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +2072 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/locks.d.ts +2 -0
  83. package/dist/locks.d.ts.map +1 -0
  84. package/dist/locks.js +26 -0
  85. package/dist/locks.js.map +1 -0
  86. package/dist/logger.d.ts +4 -0
  87. package/dist/logger.d.ts.map +1 -0
  88. package/dist/logger.js +15 -0
  89. package/dist/logger.js.map +1 -0
  90. package/dist/maintenance.d.ts +13 -0
  91. package/dist/maintenance.d.ts.map +1 -0
  92. package/dist/maintenance.js +151 -0
  93. package/dist/maintenance.js.map +1 -0
  94. package/dist/memory-embeddings.d.ts +13 -0
  95. package/dist/memory-embeddings.d.ts.map +1 -0
  96. package/dist/memory-embeddings.js +126 -0
  97. package/dist/memory-embeddings.js.map +1 -0
  98. package/dist/memory-recall.d.ts +8 -0
  99. package/dist/memory-recall.d.ts.map +1 -0
  100. package/dist/memory-recall.js +127 -0
  101. package/dist/memory-recall.js.map +1 -0
  102. package/dist/memory-store.d.ts +149 -0
  103. package/dist/memory-store.d.ts.map +1 -0
  104. package/dist/memory-store.js +787 -0
  105. package/dist/memory-store.js.map +1 -0
  106. package/dist/metrics.d.ts +12 -0
  107. package/dist/metrics.d.ts.map +1 -0
  108. package/dist/metrics.js +134 -0
  109. package/dist/metrics.js.map +1 -0
  110. package/dist/model-registry.d.ts +67 -0
  111. package/dist/model-registry.d.ts.map +1 -0
  112. package/dist/model-registry.js +230 -0
  113. package/dist/model-registry.js.map +1 -0
  114. package/dist/mount-security.d.ts +37 -0
  115. package/dist/mount-security.d.ts.map +1 -0
  116. package/dist/mount-security.js +284 -0
  117. package/dist/mount-security.js.map +1 -0
  118. package/dist/paths.d.ts +80 -0
  119. package/dist/paths.d.ts.map +1 -0
  120. package/dist/paths.js +149 -0
  121. package/dist/paths.js.map +1 -0
  122. package/dist/personalization.d.ts +6 -0
  123. package/dist/personalization.d.ts.map +1 -0
  124. package/dist/personalization.js +180 -0
  125. package/dist/personalization.js.map +1 -0
  126. package/dist/progress.d.ts +15 -0
  127. package/dist/progress.d.ts.map +1 -0
  128. package/dist/progress.js +92 -0
  129. package/dist/progress.js.map +1 -0
  130. package/dist/runtime-config.d.ts +227 -0
  131. package/dist/runtime-config.d.ts.map +1 -0
  132. package/dist/runtime-config.js +297 -0
  133. package/dist/runtime-config.js.map +1 -0
  134. package/dist/task-scheduler.d.ts +9 -0
  135. package/dist/task-scheduler.d.ts.map +1 -0
  136. package/dist/task-scheduler.js +195 -0
  137. package/dist/task-scheduler.js.map +1 -0
  138. package/dist/telegram-format.d.ts +3 -0
  139. package/dist/telegram-format.d.ts.map +1 -0
  140. package/dist/telegram-format.js +200 -0
  141. package/dist/telegram-format.js.map +1 -0
  142. package/dist/tool-budgets.d.ts +16 -0
  143. package/dist/tool-budgets.d.ts.map +1 -0
  144. package/dist/tool-budgets.js +83 -0
  145. package/dist/tool-budgets.js.map +1 -0
  146. package/dist/tool-policy.d.ts +18 -0
  147. package/dist/tool-policy.d.ts.map +1 -0
  148. package/dist/tool-policy.js +84 -0
  149. package/dist/tool-policy.js.map +1 -0
  150. package/dist/trace-writer.d.ts +39 -0
  151. package/dist/trace-writer.d.ts.map +1 -0
  152. package/dist/trace-writer.js +27 -0
  153. package/dist/trace-writer.js.map +1 -0
  154. package/dist/types.d.ts +81 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/types.js +2 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/utils.d.ts +4 -0
  159. package/dist/utils.d.ts.map +1 -0
  160. package/dist/utils.js +30 -0
  161. package/dist/utils.js.map +1 -0
  162. package/launchd/com.dotclaw.plist +32 -0
  163. package/package.json +89 -0
  164. package/scripts/autotune.js +53 -0
  165. package/scripts/bootstrap.js +348 -0
  166. package/scripts/configure.js +200 -0
  167. package/scripts/doctor.js +164 -0
  168. package/scripts/init.js +209 -0
  169. package/scripts/install.sh +219 -0
  170. package/systemd/dotclaw.service +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,QAAQ,EAGR,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACT,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,QAAQ,GACT,CAAC;AAGF,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,eAAO,MAAM,cAAc,QAA8B,CAAC;AAC1D,eAAO,MAAM,uBAAuB,QAAwC,CAAC;AAE7E,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,wBAAwB,QAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAC3E,eAAO,MAAM,SAAS,QAAuC,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D,eAAO,MAAM,eAAe,QAA+B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,QAAmC,CAAC;AAClE,eAAO,MAAM,yBAAyB,QAAwC,CAAC;AAC/E,eAAO,MAAM,iBAAiB,QAAkC,CAAC;AACjE,eAAO,MAAM,cAAc,wBAA8B,CAAC;AAC1D,eAAO,MAAM,wBAAwB,QAAsC,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAAmC,CAAC;AACrE,eAAO,MAAM,gBAAgB,QAAgC,CAAC;AAC9D,eAAO,MAAM,cAAc,QAA8B,CAAC;AAC1D,eAAO,MAAM,uBAAuB,SAAsC,CAAC;AAC3E,eAAO,MAAM,oBAAoB,QAAmC,CAAC;AAErE,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAI/D,eAAO,MAAM,QAAQ,QAAwB,CAAC;AAE9C,eAAO,MAAM,qBAAqB,QAAqC,CAAC;AACxE,eAAO,MAAM,sBAAsB,QAA0C,CAAC;AAC9E,eAAO,MAAM,kBAAkB,SAAqC,CAAC;AACrE,eAAO,MAAM,oBAAoB,QAAmC,CAAC;AACrE,eAAO,MAAM,uBAAuB,QAAsC,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,38 @@
1
+ import { loadRuntimeConfig } from './runtime-config.js';
2
+ import { CONFIG_DIR, DATA_DIR, GROUPS_DIR, STORE_DIR, LOGS_DIR, TRACES_DIR, PROMPTS_DIR, MODEL_CONFIG_PATH, MOUNT_ALLOWLIST_PATH, ENV_PATH, } from './paths.js';
3
+ const runtime = loadRuntimeConfig();
4
+ // Re-export paths for backwards compatibility
5
+ export { CONFIG_DIR, DATA_DIR, GROUPS_DIR, STORE_DIR, LOGS_DIR, MOUNT_ALLOWLIST_PATH, ENV_PATH, };
6
+ // Legacy alias
7
+ export const RUNTIME_DIR = DATA_DIR;
8
+ export const ASSISTANT_NAME = runtime.agent.assistantName;
9
+ export const SCHEDULER_POLL_INTERVAL = runtime.host.scheduler.pollIntervalMs;
10
+ export const MAIN_GROUP_FOLDER = 'main';
11
+ export const MODEL_CONFIG_PATH_EXPORT = MODEL_CONFIG_PATH;
12
+ export { MODEL_CONFIG_PATH };
13
+ // Use runtime config values with fallback to paths module defaults
14
+ export const PROMPT_PACKS_DIR = runtime.host.promptPacksDir || PROMPTS_DIR;
15
+ export const TRACE_DIR = runtime.host.trace.dir || TRACES_DIR;
16
+ export const TRACE_SAMPLE_RATE = runtime.host.trace.sampleRate;
17
+ export const CONTAINER_IMAGE = runtime.host.container.image;
18
+ export const CONTAINER_TIMEOUT = runtime.host.container.timeoutMs;
19
+ export const CONTAINER_MAX_OUTPUT_SIZE = runtime.host.container.maxOutputBytes;
20
+ export const IPC_POLL_INTERVAL = runtime.host.ipc.pollIntervalMs;
21
+ export const CONTAINER_MODE = runtime.host.container.mode;
22
+ export const CONTAINER_DAEMON_POLL_MS = runtime.host.container.daemonPollMs;
23
+ export const CONTAINER_PIDS_LIMIT = runtime.host.container.pidsLimit;
24
+ export const CONTAINER_MEMORY = runtime.host.container.memory;
25
+ export const CONTAINER_CPUS = runtime.host.container.cpus;
26
+ export const CONTAINER_READONLY_ROOT = runtime.host.container.readOnlyRoot;
27
+ export const CONTAINER_TMPFS_SIZE = runtime.host.container.tmpfsSize;
28
+ export const CONTAINER_RUN_UID = runtime.host.container.runUid;
29
+ export const CONTAINER_RUN_GID = runtime.host.container.runGid;
30
+ // Timezone for scheduled tasks (cron expressions, etc.)
31
+ // Uses system timezone by default
32
+ export const TIMEZONE = runtime.host.timezone;
33
+ export const MAX_CONCURRENT_AGENTS = runtime.host.concurrency.maxAgents;
34
+ export const AGENT_QUEUE_TIMEOUT_MS = runtime.host.concurrency.queueTimeoutMs;
35
+ export const WARM_START_ENABLED = runtime.host.concurrency.warmStart;
36
+ export const TRACE_RETENTION_DAYS = runtime.host.trace.retentionDays;
37
+ export const MAINTENANCE_INTERVAL_MS = runtime.host.maintenance.intervalMs;
38
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ export declare const OUTPUT_START_MARKER = "---DOTCLAW_OUTPUT_START---";
2
+ export declare const OUTPUT_END_MARKER = "---DOTCLAW_OUTPUT_END---";
3
+ export interface ContainerInput {
4
+ prompt: string;
5
+ sessionId?: string;
6
+ groupFolder: string;
7
+ chatJid: string;
8
+ isMain: boolean;
9
+ isScheduledTask?: boolean;
10
+ isBackgroundTask?: boolean;
11
+ taskId?: string;
12
+ userId?: string;
13
+ userName?: string;
14
+ memoryRecall?: string[];
15
+ userProfile?: string | null;
16
+ memoryStats?: {
17
+ total: number;
18
+ user: number;
19
+ group: number;
20
+ global: number;
21
+ };
22
+ tokenEstimate?: {
23
+ tokens_per_char: number;
24
+ tokens_per_message: number;
25
+ tokens_per_request: number;
26
+ };
27
+ toolReliability?: Array<{
28
+ name: string;
29
+ success_rate: number;
30
+ count: number;
31
+ avg_duration_ms: number | null;
32
+ }>;
33
+ behaviorConfig?: Record<string, unknown>;
34
+ toolPolicy?: Record<string, unknown>;
35
+ modelOverride?: string;
36
+ modelContextTokens?: number;
37
+ modelMaxOutputTokens?: number;
38
+ modelTemperature?: number;
39
+ streaming?: {
40
+ enabled?: boolean;
41
+ draftId?: number;
42
+ minIntervalMs?: number;
43
+ minChars?: number;
44
+ };
45
+ }
46
+ export interface ContainerOutput {
47
+ status: 'success' | 'error';
48
+ result: string | null;
49
+ newSessionId?: string;
50
+ error?: string;
51
+ model?: string;
52
+ prompt_pack_versions?: Record<string, string>;
53
+ memory_summary?: string;
54
+ memory_facts?: string[];
55
+ tokens_prompt?: number;
56
+ tokens_completion?: number;
57
+ memory_recall_count?: number;
58
+ session_recall_count?: number;
59
+ memory_items_upserted?: number;
60
+ memory_items_extracted?: number;
61
+ tool_calls?: Array<{
62
+ name: string;
63
+ args?: unknown;
64
+ ok: boolean;
65
+ duration_ms?: number;
66
+ error?: string;
67
+ output_bytes?: number;
68
+ output_truncated?: boolean;
69
+ }>;
70
+ latency_ms?: number;
71
+ }
72
+ //# sourceMappingURL=container-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-protocol.d.ts","sourceRoot":"","sources":["../src/container-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAChE,eAAO,MAAM,iBAAiB,6BAA6B,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,EAAE,EAAE,OAAO,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ export const OUTPUT_START_MARKER = '---DOTCLAW_OUTPUT_START---';
2
+ export const OUTPUT_END_MARKER = '---DOTCLAW_OUTPUT_END---';
3
+ //# sourceMappingURL=container-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-protocol.js","sourceRoot":"","sources":["../src/container-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Container Runner for DotClaw
3
+ * Spawns agent execution in Docker container and handles IPC
4
+ */
5
+ import { RegisteredGroup } from './types.js';
6
+ import type { ContainerInput, ContainerOutput } from './container-protocol.js';
7
+ /**
8
+ * Check if a daemon container is healthy by reading its heartbeat file
9
+ */
10
+ export declare function checkDaemonHealth(groupFolder: string): {
11
+ healthy: boolean;
12
+ lastHeartbeat?: number;
13
+ ageMs?: number;
14
+ };
15
+ /**
16
+ * Restart a daemon container if unhealthy
17
+ */
18
+ export declare function restartDaemonContainer(group: RegisteredGroup, isMain: boolean): void;
19
+ /**
20
+ * Perform health check on all daemon containers and restart if needed
21
+ */
22
+ export declare function performDaemonHealthChecks(getRegisteredGroups: () => Record<string, RegisteredGroup>, mainGroupFolder: string): void;
23
+ /**
24
+ * Start the daemon health check loop
25
+ */
26
+ export declare function startDaemonHealthCheckLoop(getRegisteredGroups: () => Record<string, RegisteredGroup>, mainGroupFolder: string): void;
27
+ /**
28
+ * Stop the daemon health check loop
29
+ */
30
+ export declare function stopDaemonHealthCheckLoop(): void;
31
+ export declare function warmGroupContainer(group: RegisteredGroup, isMain: boolean): void;
32
+ export declare function runContainerAgent(group: RegisteredGroup, input: ContainerInput, options?: {
33
+ abortSignal?: AbortSignal;
34
+ }): Promise<ContainerOutput>;
35
+ export declare function writeTasksSnapshot(groupFolder: string, isMain: boolean, tasks: Array<{
36
+ id: string;
37
+ groupFolder: string;
38
+ prompt: string;
39
+ schedule_type: string;
40
+ schedule_value: string;
41
+ status: string;
42
+ next_run: string | null;
43
+ state_json?: string | null;
44
+ retry_count?: number | null;
45
+ last_error?: string | null;
46
+ }>): void;
47
+ export interface AvailableGroup {
48
+ jid: string;
49
+ name: string;
50
+ lastActivity: string;
51
+ isRegistered: boolean;
52
+ }
53
+ /**
54
+ * Write available groups snapshot for the container to read.
55
+ * Only main group can see all available groups (for activation).
56
+ * Non-main groups only see their own registration status.
57
+ */
58
+ export declare function writeGroupsSnapshot(groupFolder: string, isMain: boolean, groups: AvailableGroup[]): void;
59
+ //# sourceMappingURL=container-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-runner.d.ts","sourceRoot":"","sources":["../src/container-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAmV/E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBnH;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAcpF;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1D,eAAe,EAAE,MAAM,GACtB,IAAI,CAoCN;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1D,eAAe,EAAE,MAAM,GACtB,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD;AAoBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAIhF;AAuDD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,GACtC,OAAO,CAAC,eAAe,CAAC,CA8Q1B;AAwED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC,GACD,IAAI,CAYN;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EAAE,GACvB,IAAI,CAYN"}