@jungjaehoon/mama-os 0.20.1 → 0.22.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 (264) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +12 -4
  3. package/dist/agent/agent-loop.d.ts.map +1 -1
  4. package/dist/agent/agent-loop.js +76 -11
  5. package/dist/agent/agent-loop.js.map +1 -1
  6. package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
  7. package/dist/agent/code-act/host-bridge.js +88 -3
  8. package/dist/agent/code-act/host-bridge.js.map +1 -1
  9. package/dist/agent/codex-mcp-process.d.ts +1 -0
  10. package/dist/agent/codex-mcp-process.d.ts.map +1 -1
  11. package/dist/agent/codex-mcp-process.js +3 -2
  12. package/dist/agent/codex-mcp-process.js.map +1 -1
  13. package/dist/agent/gateway-tool-executor.d.ts +24 -11
  14. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  15. package/dist/agent/gateway-tool-executor.js +349 -30
  16. package/dist/agent/gateway-tool-executor.js.map +1 -1
  17. package/dist/agent/gateway-tools.md +7 -2
  18. package/dist/agent/model-runner.d.ts +8 -0
  19. package/dist/agent/model-runner.d.ts.map +1 -1
  20. package/dist/agent/model-runner.js.map +1 -1
  21. package/dist/agent/os-agent-capabilities.md +13 -12
  22. package/dist/agent/persistent-cli-adapter.d.ts +6 -0
  23. package/dist/agent/persistent-cli-adapter.d.ts.map +1 -1
  24. package/dist/agent/persistent-cli-adapter.js +21 -10
  25. package/dist/agent/persistent-cli-adapter.js.map +1 -1
  26. package/dist/agent/tool-registry.d.ts.map +1 -1
  27. package/dist/agent/tool-registry.js +33 -2
  28. package/dist/agent/tool-registry.js.map +1 -1
  29. package/dist/agent/types.d.ts +30 -2
  30. package/dist/agent/types.d.ts.map +1 -1
  31. package/dist/agent/types.js.map +1 -1
  32. package/dist/api/graph-api.d.ts.map +1 -1
  33. package/dist/api/graph-api.js +78 -5
  34. package/dist/api/graph-api.js.map +1 -1
  35. package/dist/api/index.d.ts +8 -1
  36. package/dist/api/index.d.ts.map +1 -1
  37. package/dist/api/index.js +18 -12
  38. package/dist/api/index.js.map +1 -1
  39. package/dist/api/operator-handler.d.ts +19 -0
  40. package/dist/api/operator-handler.d.ts.map +1 -0
  41. package/dist/api/operator-handler.js +106 -0
  42. package/dist/api/operator-handler.js.map +1 -0
  43. package/dist/api/operator-summary.d.ts +3 -0
  44. package/dist/api/operator-summary.d.ts.map +1 -0
  45. package/dist/api/operator-summary.js +72 -0
  46. package/dist/api/operator-summary.js.map +1 -0
  47. package/dist/api/operator-tasks-handler.d.ts +7 -0
  48. package/dist/api/operator-tasks-handler.d.ts.map +1 -0
  49. package/dist/api/operator-tasks-handler.js +165 -0
  50. package/dist/api/operator-tasks-handler.js.map +1 -0
  51. package/dist/api/report-handler.d.ts +7 -0
  52. package/dist/api/report-handler.d.ts.map +1 -1
  53. package/dist/api/report-handler.js +30 -0
  54. package/dist/api/report-handler.js.map +1 -1
  55. package/dist/api/report-persistence.d.ts +17 -0
  56. package/dist/api/report-persistence.d.ts.map +1 -0
  57. package/dist/api/report-persistence.js +91 -0
  58. package/dist/api/report-persistence.js.map +1 -0
  59. package/dist/cli/commands/start.d.ts.map +1 -1
  60. package/dist/cli/commands/start.js +402 -250
  61. package/dist/cli/commands/start.js.map +1 -1
  62. package/dist/cli/config/config-manager.d.ts.map +1 -1
  63. package/dist/cli/config/config-manager.js +93 -55
  64. package/dist/cli/config/config-manager.js.map +1 -1
  65. package/dist/cli/config/types.d.ts +17 -2
  66. package/dist/cli/config/types.d.ts.map +1 -1
  67. package/dist/cli/config/types.js +4 -0
  68. package/dist/cli/config/types.js.map +1 -1
  69. package/dist/cli/runtime/agent-loop-init.d.ts +3 -1
  70. package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
  71. package/dist/cli/runtime/agent-loop-init.js +16 -7
  72. package/dist/cli/runtime/agent-loop-init.js.map +1 -1
  73. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  74. package/dist/cli/runtime/api-routes-init.js +503 -259
  75. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  76. package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
  77. package/dist/cli/runtime/api-server-init.js +12 -7
  78. package/dist/cli/runtime/api-server-init.js.map +1 -1
  79. package/dist/cli/runtime/connector-init.d.ts +19 -1
  80. package/dist/cli/runtime/connector-init.d.ts.map +1 -1
  81. package/dist/cli/runtime/connector-init.js +32 -2
  82. package/dist/cli/runtime/connector-init.js.map +1 -1
  83. package/dist/cli/runtime/gateway-init.d.ts.map +1 -1
  84. package/dist/cli/runtime/gateway-init.js +3 -1
  85. package/dist/cli/runtime/gateway-init.js.map +1 -1
  86. package/dist/cli/runtime/memory-agent-init.d.ts +2 -1
  87. package/dist/cli/runtime/memory-agent-init.d.ts.map +1 -1
  88. package/dist/cli/runtime/memory-agent-init.js +15 -3
  89. package/dist/cli/runtime/memory-agent-init.js.map +1 -1
  90. package/dist/cli/runtime/message-router-config.d.ts +4 -0
  91. package/dist/cli/runtime/message-router-config.d.ts.map +1 -0
  92. package/dist/cli/runtime/message-router-config.js +11 -0
  93. package/dist/cli/runtime/message-router-config.js.map +1 -0
  94. package/dist/cli/runtime/scheduler-init.d.ts.map +1 -1
  95. package/dist/cli/runtime/scheduler-init.js +12 -12
  96. package/dist/cli/runtime/scheduler-init.js.map +1 -1
  97. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  98. package/dist/connectors/framework/polling-scheduler.js +53 -2
  99. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  100. package/dist/connectors/framework/types.d.ts +8 -0
  101. package/dist/connectors/framework/types.d.ts.map +1 -1
  102. package/dist/connectors/kagemusha/query-tools.d.ts.map +1 -1
  103. package/dist/connectors/kagemusha/query-tools.js +14 -3
  104. package/dist/connectors/kagemusha/query-tools.js.map +1 -1
  105. package/dist/connectors/slack/index.d.ts.map +1 -1
  106. package/dist/connectors/slack/index.js +3 -1
  107. package/dist/connectors/slack/index.js.map +1 -1
  108. package/dist/connectors/trello/index.d.ts.map +1 -1
  109. package/dist/connectors/trello/index.js +6 -2
  110. package/dist/connectors/trello/index.js.map +1 -1
  111. package/dist/db/agent-store.d.ts +5 -0
  112. package/dist/db/agent-store.d.ts.map +1 -1
  113. package/dist/db/agent-store.js +6 -3
  114. package/dist/db/agent-store.js.map +1 -1
  115. package/dist/db/migrations/agent-activity-tool-name.d.ts +8 -0
  116. package/dist/db/migrations/agent-activity-tool-name.d.ts.map +1 -0
  117. package/dist/db/migrations/agent-activity-tool-name.js +24 -0
  118. package/dist/db/migrations/agent-activity-tool-name.js.map +1 -0
  119. package/dist/db/migrations/wiki-artifacts.d.ts +3 -0
  120. package/dist/db/migrations/wiki-artifacts.d.ts.map +1 -0
  121. package/dist/db/migrations/wiki-artifacts.js +24 -0
  122. package/dist/db/migrations/wiki-artifacts.js.map +1 -0
  123. package/dist/envelope/run-guard.d.ts +10 -0
  124. package/dist/envelope/run-guard.d.ts.map +1 -0
  125. package/dist/envelope/run-guard.js +19 -0
  126. package/dist/envelope/run-guard.js.map +1 -0
  127. package/dist/gateways/message-router.d.ts.map +1 -1
  128. package/dist/gateways/message-router.js +15 -3
  129. package/dist/gateways/message-router.js.map +1 -1
  130. package/dist/gateways/types.d.ts +4 -0
  131. package/dist/gateways/types.d.ts.map +1 -1
  132. package/dist/multi-agent/agent-event-bus.d.ts +14 -0
  133. package/dist/multi-agent/agent-event-bus.d.ts.map +1 -1
  134. package/dist/multi-agent/agent-event-bus.js +34 -0
  135. package/dist/multi-agent/agent-event-bus.js.map +1 -1
  136. package/dist/multi-agent/conductor-persona.js +2 -2
  137. package/dist/multi-agent/dashboard-agent-persona.d.ts +6 -2
  138. package/dist/multi-agent/dashboard-agent-persona.d.ts.map +1 -1
  139. package/dist/multi-agent/dashboard-agent-persona.js +65 -32
  140. package/dist/multi-agent/dashboard-agent-persona.js.map +1 -1
  141. package/dist/multi-agent/memory-agent-persona.d.ts +1 -1
  142. package/dist/multi-agent/memory-agent-persona.d.ts.map +1 -1
  143. package/dist/multi-agent/memory-agent-persona.js +25 -4
  144. package/dist/multi-agent/memory-agent-persona.js.map +1 -1
  145. package/dist/multi-agent/runtime-process.d.ts +4 -2
  146. package/dist/multi-agent/runtime-process.d.ts.map +1 -1
  147. package/dist/multi-agent/runtime-process.js +7 -4
  148. package/dist/multi-agent/runtime-process.js.map +1 -1
  149. package/dist/multi-agent/types.d.ts +1 -1
  150. package/dist/multi-agent/wiki-agent-persona.d.ts +7 -1
  151. package/dist/multi-agent/wiki-agent-persona.d.ts.map +1 -1
  152. package/dist/multi-agent/wiki-agent-persona.js +82 -68
  153. package/dist/multi-agent/wiki-agent-persona.js.map +1 -1
  154. package/dist/operator/action-verifier.d.ts +50 -0
  155. package/dist/operator/action-verifier.d.ts.map +1 -0
  156. package/dist/operator/action-verifier.js +68 -0
  157. package/dist/operator/action-verifier.js.map +1 -0
  158. package/dist/operator/board-reconcile.d.ts +62 -0
  159. package/dist/operator/board-reconcile.d.ts.map +1 -0
  160. package/dist/operator/board-reconcile.js +160 -0
  161. package/dist/operator/board-reconcile.js.map +1 -0
  162. package/dist/operator/board-slot-instructions.d.ts +26 -0
  163. package/dist/operator/board-slot-instructions.d.ts.map +1 -0
  164. package/dist/operator/board-slot-instructions.js +76 -0
  165. package/dist/operator/board-slot-instructions.js.map +1 -0
  166. package/dist/operator/connector-delta-repo.d.ts +33 -0
  167. package/dist/operator/connector-delta-repo.d.ts.map +1 -0
  168. package/dist/operator/connector-delta-repo.js +0 -0
  169. package/dist/operator/connector-delta-repo.js.map +1 -0
  170. package/dist/operator/mama-memory-port.d.ts +13 -0
  171. package/dist/operator/mama-memory-port.d.ts.map +1 -0
  172. package/dist/operator/mama-memory-port.js +35 -0
  173. package/dist/operator/mama-memory-port.js.map +1 -0
  174. package/dist/operator/operator-interfaces.d.ts +136 -0
  175. package/dist/operator/operator-interfaces.d.ts.map +1 -0
  176. package/dist/operator/operator-interfaces.js +15 -0
  177. package/dist/operator/operator-interfaces.js.map +1 -0
  178. package/dist/operator/operator-trigger-loop.d.ts +119 -0
  179. package/dist/operator/operator-trigger-loop.d.ts.map +1 -0
  180. package/dist/operator/operator-trigger-loop.js +267 -0
  181. package/dist/operator/operator-trigger-loop.js.map +1 -0
  182. package/dist/operator/report-run.d.ts +78 -0
  183. package/dist/operator/report-run.d.ts.map +1 -0
  184. package/dist/operator/report-run.js +141 -0
  185. package/dist/operator/report-run.js.map +1 -0
  186. package/dist/operator/report-scheduler.d.ts +66 -0
  187. package/dist/operator/report-scheduler.d.ts.map +1 -0
  188. package/dist/operator/report-scheduler.js +135 -0
  189. package/dist/operator/report-scheduler.js.map +1 -0
  190. package/dist/operator/situation-report.d.ts +90 -0
  191. package/dist/operator/situation-report.d.ts.map +1 -0
  192. package/dist/operator/situation-report.js +221 -0
  193. package/dist/operator/situation-report.js.map +1 -0
  194. package/dist/operator/task-ledger.d.ts +96 -0
  195. package/dist/operator/task-ledger.d.ts.map +1 -0
  196. package/dist/operator/task-ledger.js +277 -0
  197. package/dist/operator/task-ledger.js.map +1 -0
  198. package/dist/operator/trigger-author.d.ts +45 -0
  199. package/dist/operator/trigger-author.d.ts.map +1 -0
  200. package/dist/operator/trigger-author.js +217 -0
  201. package/dist/operator/trigger-author.js.map +1 -0
  202. package/dist/operator/trigger-evolve.d.ts +31 -0
  203. package/dist/operator/trigger-evolve.d.ts.map +1 -0
  204. package/dist/operator/trigger-evolve.js +51 -0
  205. package/dist/operator/trigger-evolve.js.map +1 -0
  206. package/dist/operator/trigger-fire.d.ts +29 -0
  207. package/dist/operator/trigger-fire.d.ts.map +1 -0
  208. package/dist/operator/trigger-fire.js +41 -0
  209. package/dist/operator/trigger-fire.js.map +1 -0
  210. package/dist/operator/trigger-matcher.d.ts +19 -0
  211. package/dist/operator/trigger-matcher.d.ts.map +1 -0
  212. package/dist/operator/trigger-matcher.js +61 -0
  213. package/dist/operator/trigger-matcher.js.map +1 -0
  214. package/dist/operator/trigger-registry.d.ts +36 -0
  215. package/dist/operator/trigger-registry.d.ts.map +1 -0
  216. package/dist/operator/trigger-registry.js +135 -0
  217. package/dist/operator/trigger-registry.js.map +1 -0
  218. package/dist/operator/trigger-review.d.ts +23 -0
  219. package/dist/operator/trigger-review.d.ts.map +1 -0
  220. package/dist/operator/trigger-review.js +127 -0
  221. package/dist/operator/trigger-review.js.map +1 -0
  222. package/dist/operator/trigger-types.d.ts +84 -0
  223. package/dist/operator/trigger-types.d.ts.map +1 -0
  224. package/dist/operator/trigger-types.js +14 -0
  225. package/dist/operator/trigger-types.js.map +1 -0
  226. package/dist/scheduler/cron-worker.d.ts.map +1 -1
  227. package/dist/scheduler/cron-worker.js +3 -1
  228. package/dist/scheduler/cron-worker.js.map +1 -1
  229. package/dist/security/security-monitor.d.ts.map +1 -1
  230. package/dist/security/security-monitor.js +1 -0
  231. package/dist/security/security-monitor.js.map +1 -1
  232. package/dist/wiki/obsidian-writer.d.ts +1 -1
  233. package/dist/wiki/obsidian-writer.d.ts.map +1 -1
  234. package/dist/wiki/obsidian-writer.js +67 -27
  235. package/dist/wiki/obsidian-writer.js.map +1 -1
  236. package/dist/wiki/path-safety.d.ts +2 -0
  237. package/dist/wiki/path-safety.d.ts.map +1 -0
  238. package/dist/wiki/path-safety.js +40 -0
  239. package/dist/wiki/path-safety.js.map +1 -0
  240. package/dist/wiki/types.d.ts +4 -2
  241. package/dist/wiki/types.d.ts.map +1 -1
  242. package/dist/wiki/types.js +1 -1
  243. package/dist/wiki/types.js.map +1 -1
  244. package/dist/wiki-artifacts/normalization.d.ts +8 -0
  245. package/dist/wiki-artifacts/normalization.d.ts.map +1 -0
  246. package/dist/wiki-artifacts/normalization.js +41 -0
  247. package/dist/wiki-artifacts/normalization.js.map +1 -0
  248. package/dist/wiki-artifacts/types.d.ts +52 -0
  249. package/dist/wiki-artifacts/types.d.ts.map +1 -0
  250. package/dist/wiki-artifacts/types.js +3 -0
  251. package/dist/wiki-artifacts/types.js.map +1 -0
  252. package/dist/wiki-artifacts/wiki-publish-adapter.d.ts +14 -0
  253. package/dist/wiki-artifacts/wiki-publish-adapter.d.ts.map +1 -0
  254. package/dist/wiki-artifacts/wiki-publish-adapter.js +71 -0
  255. package/dist/wiki-artifacts/wiki-publish-adapter.js.map +1 -0
  256. package/package.json +5 -3
  257. package/public/ui/assets/index-CKOJQYXA.css +1 -0
  258. package/public/ui/assets/index-OSgiwL24.js +62 -0
  259. package/public/ui/index.html +14 -0
  260. package/public/ui/theme-init.js +20 -0
  261. package/public/viewer/js/utils/api.js +2 -2
  262. package/public/viewer/src/utils/api.ts +9 -2
  263. package/public/viewer/sw.js +1 -1
  264. package/public/viewer/viewer.html +17 -27
@@ -12,6 +12,7 @@ import { type HeartbeatTracker } from './heartbeat-handler.js';
12
12
  import { CronScheduler } from '../scheduler/index.js';
13
13
  import { SkillRegistry } from '../skills/skill-registry.js';
14
14
  import type { SystemHealthReport } from '../observability/health-check.js';
15
+ import { type ReportStore } from './report-handler.js';
15
16
  import { type AgentRawRouterOptions } from './agent-raw-handler.js';
16
17
  import { type AgentSituationRouterOptions } from './agent-situation-handler.js';
17
18
  import { type AgentContextRouterOptions } from './agent-context-handler.js';
@@ -43,9 +44,15 @@ export interface ApiServerOptions {
43
44
  }>;
44
45
  /** Enable automatic process killing on port conflicts (default: false) */
45
46
  enableAutoKillPort?: boolean;
47
+ /**
48
+ * Report slot store (default: in-memory). The daemon runtime injects the
49
+ * persistent store; the in-memory default keeps every test call site free
50
+ * of real ~/.mama file writes.
51
+ */
52
+ reportStore?: ReportStore;
46
53
  /** Sessions database instance (for token tracking) */
47
54
  db?: SQLiteDatabase;
48
- /** Memory database instance (for intelligence queries mama-memory.db) */
55
+ /** Memory database instance (for intelligence queries -- mama-memory.db) */
49
56
  memoryDb?: SQLiteDatabase;
50
57
  /** Transaction-capable mama-core adapter for worker situation packets */
51
58
  memoryAdapter?: AgentSituationRouterOptions['memoryAdapter'] & AgentGraphRouterOptions['memoryAdapter'] & AgentContextRouterOptions['memoryAdapter'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
package/dist/api/index.js CHANGED
@@ -37,6 +37,7 @@ const error_handler_js_1 = require("./error-handler.js");
37
37
  const auth_middleware_js_1 = require("./auth-middleware.js");
38
38
  const security_monitor_js_1 = require("../security/security-monitor.js");
39
39
  const report_handler_js_1 = require("./report-handler.js");
40
+ const operator_handler_js_1 = require("./operator-handler.js");
40
41
  const wiki_handler_js_1 = require("./wiki-handler.js");
41
42
  const intelligence_handler_js_1 = require("./intelligence-handler.js");
42
43
  const connector_feed_handler_js_1 = require("./connector-feed-handler.js");
@@ -92,7 +93,7 @@ function createApiServer(options) {
92
93
  const origin = req.headers.origin;
93
94
  if (origin && /^https?:\/\/(localhost|127\.0\.0\.1)(:\d+)?$/.test(origin)) {
94
95
  res.setHeader('Access-Control-Allow-Origin', origin);
95
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
96
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
96
97
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, x-mama-envelope-hash, x-mama-model-run-id');
97
98
  }
98
99
  if (req.method === 'OPTIONS') {
@@ -123,8 +124,16 @@ function createApiServer(options) {
123
124
  tracker: heartbeatTracker,
124
125
  onHeartbeat,
125
126
  });
127
+ const reportSseClients = new Set();
128
+ const reportStore = options.reportStore ?? (0, report_handler_js_1.createReportStore)();
126
129
  app.use('/api/cron', cronRouter);
127
130
  app.use('/api/heartbeat', heartbeatRouter);
131
+ // Lazy-opening router: touches ~/.mama/operator/triggers.db only on first
132
+ // /api/operator request, so createApiServer stays side-effect-free for tests.
133
+ app.use('/api/operator', (0, operator_handler_js_1.createOperatorRouter)({
134
+ dbPath: (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'operator', 'triggers.db'),
135
+ reportStore,
136
+ }));
128
137
  if (memoryDb) {
129
138
  app.use('/api/agent/raw', (0, agent_raw_handler_js_1.createAgentRawRouter)({
130
139
  memoryDb,
@@ -149,9 +158,6 @@ function createApiServer(options) {
149
158
  envelopeAuthority,
150
159
  }));
151
160
  }
152
- // Mount report store (created early so intelligence router can reference it)
153
- const reportSseClients = new Set();
154
- const reportStore = (0, report_handler_js_1.createReportStore)();
155
161
  // Mount token router if database is available
156
162
  if (db) {
157
163
  (0, token_handler_js_1.initTokenUsageTable)(db);
@@ -181,7 +187,7 @@ function createApiServer(options) {
181
187
  const wikiRouter = (0, wiki_handler_js_1.createWikiRouter)(wikiPath);
182
188
  app.use('/api/wiki', wikiRouter);
183
189
  }
184
- // Connector status endpoint reads connectors.json + runtime state
190
+ // Connector status endpoint -- reads connectors.json + runtime state
185
191
  app.get('/api/connectors/status', auth_middleware_js_1.requireAuth, (_req, res) => {
186
192
  const configPath = (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'connectors.json');
187
193
  let config = {};
@@ -306,7 +312,7 @@ function createApiServer(options) {
306
312
  cleanup();
307
313
  reject(err);
308
314
  });
309
- // exclusive: false SO_REUSEADDR, allows binding over TIME_WAIT sockets
315
+ // exclusive: false -> SO_REUSEADDR, allows binding over TIME_WAIT sockets
310
316
  candidate.listen({ port: attemptPort, host, exclusive: false }, () => {
311
317
  if (settled)
312
318
  return;
@@ -317,7 +323,7 @@ function createApiServer(options) {
317
323
  actualPort = addr.port;
318
324
  console.log(`API server listening on http://${host}:${actualPort}`);
319
325
  if (host === '0.0.0.0') {
320
- console.warn('⚠️ WARNING: API server exposed to all interfaces!');
326
+ console.warn('WARNING: API server exposed to all interfaces!');
321
327
  console.warn(' Set MAMA_API_HOST=127.0.0.1 for local-only access');
322
328
  }
323
329
  resolve();
@@ -351,7 +357,7 @@ function createApiServer(options) {
351
357
  console.warn(`Port ${attemptPort} in use (attempt ${attempt + 1}/${MAX_RETRIES + 1}), retrying in ${RETRY_DELAY_MS}ms...`);
352
358
  if (attempt === 0) {
353
359
  // First retry: show what's using the port
354
- console.error(`\n❌ Port ${attemptPort} is already in use.\n\n` +
360
+ console.error(`\nPort ${attemptPort} is already in use.\n\n` +
355
361
  `Options:\n` +
356
362
  `1. Stop the process using port ${attemptPort}\n` +
357
363
  `2. Use a different port: MAMA_API_PORT=<port> mama start\n` +
@@ -378,17 +384,17 @@ function createApiServer(options) {
378
384
  if (!Number.isInteger(attemptPort)) {
379
385
  throw new Error(`Invalid port number: ${attemptPort}`);
380
386
  }
381
- console.warn(`⚠️ AUTO-KILL ENABLED: Attempting to kill process on port ${attemptPort}`);
387
+ console.warn(`AUTO-KILL ENABLED: Attempting to kill process on port ${attemptPort}`);
382
388
  try {
383
389
  // eslint-disable-next-line @typescript-eslint/no-require-imports
384
390
  const { execSync } = require('child_process');
385
391
  execSync(`kill -9 $(lsof -ti:${attemptPort})`, { timeout: 3000 });
386
- console.log(`✅ Process on port ${attemptPort} killed successfully`);
392
+ console.log(`Process on port ${attemptPort} killed successfully`);
387
393
  // Continue with current attempt instead of waiting
388
394
  continue;
389
395
  }
390
396
  catch (killError) {
391
- console.error(`❌ Failed to kill process on port ${attemptPort}:`, killError);
397
+ console.error(`Failed to kill process on port ${attemptPort}:`, killError);
392
398
  // Fall through to normal retry logic
393
399
  }
394
400
  }
@@ -403,7 +409,7 @@ function createApiServer(options) {
403
409
  throw new Error(`Failed to find an available port after trying ${MAX_PORT_FALLBACK} fallback ports from ${port}.`);
404
410
  }
405
411
  const fallbackPort = attemptPort + 1;
406
- console.log(`\n🔄 Port ${attemptPort} unavailable after ${MAX_RETRIES + 1} attempts. ` +
412
+ console.log(`\nPort ${attemptPort} unavailable after ${MAX_RETRIES + 1} attempts. ` +
407
413
  `Trying fallback port ${fallbackPort}... (${fallbackCount}/${MAX_PORT_FALLBACK})`);
408
414
  attemptPort = fallbackPort;
409
415
  actualPort = fallbackPort;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;AA2IH,0CAkcC;AAMD,4CAoBC;AArmBD,sDAA6D;AAC7D,yCAAoE;AAGpE,uDAA+F;AAC/F,iEAIgC;AAChC,yDAA4E;AAC5E,yDAA6E;AAC7E,gGAAqG;AACrG,2DAAyD;AACzD,yDAAmE;AACnE,6DAAqE;AAIrE,yEAA2E;AAC3E,2DAA4E;AAC5E,uDAAqD;AACrD,uEAAqE;AACrE,2EAAwE;AACxE,iFAA8E;AAC9E,iEAA0F;AAC1F,6EAGsC;AACtC,yEAGoC;AACpC,qEAAgG;AAChG,qCAAmD;AACnD,yCAAiC;AACjC,qCAAkC;AAClC,qDAA8D;AAE9D,kBAAkB;AAClB,6CAA2B;AAE3B,qDAA2E;AAAlE,mHAAA,gBAAgB,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAE/C,+DAA4F;AAAnF,gIAAA,wBAAwB,OAAA;AAAE,gIAAA,wBAAwB,OAAA;AAC3D,uDAA8E;AAArE,gHAAA,YAAY,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AAAE,4GAAA,QAAQ,OAAA;AACjD,uDAA8F;AAArF,qHAAA,iBAAiB,OAAA;AAAE,uHAAA,mBAAmB,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AAuFjE;;GAEG;AACH,SAAgB,eAAe,CAAC,OAAyB;IACvD,MAAM,EACJ,SAAS,EACT,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,IAAI,kCAAgB,EAAE,EACjC,gBAAgB,GAAG,IAAI,+CAAwB,EAAE,EACjD,WAAW,EACX,kBAAkB,GAAG,KAAK,EAC1B,EAAE,EACF,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC9B,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,GACtB,GAAG,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,mBAAmB;IACnB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,6DAA6D;QAC7D,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,GAAG,CAAC,IAAA,8CAAwB,GAAE,CAAC,CAAC;IAEpC,+CAA+C;IAC/C,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM,IAAI,8CAA8C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;YACrD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAC;YACjF,GAAG,CAAC,SAAS,CACX,8BAA8B,EAC9B,wEAAwE,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,qCAAgB,EAAE,IAAA,2DAA4B,GAAE,CAAC,CAAC;IAEpF,yCAAyC;IACzC,mFAAmF;IACnF,sFAAsF;IACtF,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAW,CAAC,CAAC;IAE7B,2EAA2E;IAC3E,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAA,kCAAgB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,IAAA,4CAAqB,EAAC;QAC5C,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,gBAAgB;QACzB,WAAW;KACZ,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAE3C,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,GAAG,CACL,gBAAgB,EAChB,IAAA,2CAAoB,EAAC;YACnB,QAAQ;YACR,iBAAiB;YACjB,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,GAAG,CAAC,GAAG,CACL,sBAAsB,EACtB,IAAA,uDAA0B,EAAC;YACzB,aAAa;YACb,iBAAiB;YACjB,WAAW,EAAE,gBAAgB;YAC7B,GAAG,EAAE,YAAY;SAClB,CAAC,CACH,CAAC;QACF,GAAG,CAAC,GAAG,CACL,oBAAoB,EACpB,IAAA,mDAAwB,EAAC;YACvB,aAAa;YACb,iBAAiB;YACjB,qBAAqB;SACtB,CAAC,CACH,CAAC;QACF,GAAG,CAAC,GAAG,CACL,YAAY,EACZ,IAAA,+CAAsB,EAAC;YACrB,aAAa;YACb,iBAAiB;SAClB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,MAAM,WAAW,GAAG,IAAA,qCAAiB,GAAE,CAAC;IAExC,8CAA8C;IAC9C,IAAI,EAAE,EAAE,CAAC;QACP,IAAA,sCAAmB,EAAC,EAAE,CAAC,CAAC;QACxB,IAAA,mEAAoC,EAAC,EAAE,CAAC,CAAC;QACzC,IAAA,gCAAe,EAAC,EAAE,CAAC,CAAC;QACpB,MAAM,WAAW,GAAG,IAAA,oCAAiB,EAAC,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEpC,MAAM,cAAc,GAAG,QAAQ,IAAI,EAAE,CAAC;QACtC,MAAM,kBAAkB,GAAG,IAAA,kDAAwB,EAAC,cAAc,EAAE;YAClE,WAAW;YACX,QAAQ;YACR,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED,+CAA+C;IAC/C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,IAAA,sCAAkB,EAAC,aAAa,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAA,sCAAkB,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAErC,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAA,kCAAgB,EAAC,QAAQ,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,gCAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3D,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC/D,IAAI,MAAM,GAQN,EAAE,CAAC;QACP,IAAI,CAAC;YACH,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;QACD,MAAM,UAAU,GAAG,+BAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,KAAK;gBAC9B,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,KAAK;gBAC9B,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,IAAI,EAAE;aACpD,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,IAAI,QAAQ,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,mBAAmB,GAAG,IAAA,qDAAyB,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAClD,CAAC;IAED,mCAAmC;IACnC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,yCAAyC;aACnD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;aAClD,WAAW,EAAE;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrB,MAAM,mBAAmB,GAAG,IAAA,qCAAoB,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,GAAG,CAAC,IAAI,CAAC;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,yBAAyB,EAAE,mBAAmB;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,gCAAW,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC9D,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAChD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;gBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;gBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAElF,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,oBAAoB,GAAG,KAAK,CAAC;IAEjC,OAAO;QACL,GAAG;QACH,WAAW;QACX,gBAAgB;QAChB,IAAI,MAAM;YACR,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,IAAI;YACN,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,6CAA6C;YAC7C,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,GAAG,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC;gBACzB,GAAG,CAAC,GAAG,CAAC,+BAAY,CAAC,CAAC;gBACtB,oBAAoB,GAAG,IAAI,CAAC;YAC9B,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;YACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,CAAC;YACzE,IAAI,WAAW,GAAG,IAAI,CAAC,CAAC,qCAAqC;YAE7D,MAAM,SAAS,GAAG,GAAkB,EAAE,CACpC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,GAAG,CAAC,CAAC;gBAEpC,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,SAAS,CAAC,kBAAkB,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACP,oBAAoB;oBACtB,CAAC;gBACH,CAAC,CAAC;gBAEF,IAAI,CAAC;oBACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;wBACnD,IAAI,OAAO;4BAAE,OAAO;wBACpB,OAAO,GAAG,IAAI,CAAC;wBACf,OAAO,EAAE,CAAC;wBACV,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;oBACH,yEAAyE;oBACzE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;wBACnE,IAAI,OAAO;4BAAE,OAAO;wBACpB,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;wBACjC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACrC,MAAM,GAAG,SAAS,CAAC,CAAC,yBAAyB;4BAC7C,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;4BACvB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;4BACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gCACvB,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gCACnE,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;4BACvE,CAAC;4BACD,OAAO,EAAE,CAAC;wBACZ,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,CAAC;4BACV,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC,CAAC;wBAC7D,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,GAAG,IAAI,CAAC;wBACf,OAAO,EAAE,CAAC;wBACV,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEL,MAAM,WAAW,GAAG,CAAC,CAAC;YACtB,MAAM,cAAc,GAAG,IAAI,CAAC;YAC5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;YAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,SAAS,EAAE,CAAC;oBAClB,MAAM,CAAC,UAAU;oBACjB,8DAA8D;gBAChE,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;wBACvD,OAAO,CAAC,IAAI,CACV,QAAQ,WAAW,oBAAoB,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,kBAAkB,cAAc,OAAO,CAC7G,CAAC;wBACF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;4BAClB,0CAA0C;4BAC1C,OAAO,CAAC,KAAK,CACX,YAAY,WAAW,yBAAyB;gCAC9C,YAAY;gCACZ,kCAAkC,WAAW,IAAI;gCACjD,4DAA4D;gCAC5D,mEAAmE;gCACnE,mEAAmE,CACtE,CAAC;4BAEF,mDAAmD;4BACnD,IAAI,WAAW,GAAG,EAAE,CAAC;4BACrB,IAAI,CAAC;gCACH,iEAAiE;gCACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;gCAC9C,WAAW,GAAG,QAAQ,CACpB,YAAY,WAAW,uCAAuC,EAC9D;oCACE,OAAO,EAAE,IAAI;oCACb,QAAQ,EAAE,MAAM;iCACjB,CACF,CAAC;gCACF,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oCACvB,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,MAAM,WAAW,EAAE,CAAC,CAAC;gCACtE,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,0CAA0C;4BAC5C,CAAC;4BAED,mDAAmD;4BACnD,IAAI,kBAAkB,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gCAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oCACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;gCACzD,CAAC;gCACD,OAAO,CAAC,IAAI,CACV,6DAA6D,WAAW,EAAE,CAC3E,CAAC;gCACF,IAAI,CAAC;oCACH,iEAAiE;oCACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;oCAC9C,QAAQ,CAAC,sBAAsB,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oCAClE,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,sBAAsB,CAAC,CAAC;oCACpE,mDAAmD;oCACnD,SAAS;gCACX,CAAC;gCAAC,OAAO,SAAS,EAAE,CAAC;oCACnB,OAAO,CAAC,KAAK,CAAC,oCAAoC,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;oCAC7E,qCAAqC;gCACvC,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;oBAC1D,CAAC;yBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBACrC,oDAAoD;wBACpD,IAAI,kBAAkB,IAAI,WAAW,GAAG,KAAK,EAAE,CAAC;4BAC9C,aAAa,EAAE,CAAC;4BAChB,IAAI,aAAa,GAAG,iBAAiB,EAAE,CAAC;gCACtC,MAAM,IAAI,KAAK,CACb,iDAAiD,iBAAiB,wBAAwB,IAAI,GAAG,CAClG,CAAC;4BACJ,CAAC;4BACD,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC;4BACrC,OAAO,CAAC,GAAG,CACT,aAAa,WAAW,sBAAsB,WAAW,GAAG,CAAC,aAAa;gCACxE,wBAAwB,YAAY,QAAQ,aAAa,IAAI,iBAAiB,GAAG,CACpF,CAAC;4BACF,WAAW,GAAG,YAAY,CAAC;4BAC3B,UAAU,GAAG,YAAY,CAAC;4BAC1B,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B;wBAC9C,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,UAAU,WAAW,GAAG,CAAC,aAAa;gCACzE,uDAAuD,CAC1D,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI;YACR,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC;YAEd,8CAA8C;YAC9C,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAExB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACX,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAAyB;IAIxD,MAAM,EACJ,SAAS,EACT,QAAQ,GAAG,IAAI,kCAAgB,EAAE,EACjC,gBAAgB,GAAG,IAAI,+CAAwB,EAAE,EACjD,WAAW,GACZ,GAAG,OAAO,CAAC;IAEZ,OAAO;QACL,UAAU,EAAE,IAAA,kCAAgB,EAAC,SAAS,EAAE,QAAQ,CAAC;QACjD,eAAe,EAAE,IAAA,4CAAqB,EAAC;YACrC,SAAS;YACT,QAAQ;YACR,OAAO,EAAE,gBAAgB;YACzB,WAAW;SACZ,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * /api/operator -- read-mostly operator surface for the /ui board.
3
+ *
4
+ * Reads the trigger loop's own store (~/.mama/operator/triggers.db by default)
5
+ * through a second in-process connection. triggers.db uses the default rollback
6
+ * journal (TriggerRegistry sets no WAL pragma), so this connection sets an
7
+ * explicit busy_timeout: reads and the rare owner disable() retry instead of
8
+ * throwing SQLITE_BUSY when the loop holds the file.
9
+ *
10
+ * The dbPath is injection-only: tests pass a temp path; the production path is
11
+ * resolved solely at the mount site in api/index.ts (never inside this module).
12
+ */
13
+ import { Router } from 'express';
14
+ import type { ReportStore } from './report-handler.js';
15
+ export declare function createOperatorRouter(opts: {
16
+ dbPath: string;
17
+ reportStore: ReportStore;
18
+ }): Router;
19
+ //# sourceMappingURL=operator-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-handler.d.ts","sourceRoot":"","sources":["../../src/api/operator-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAOjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwBvD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG,MAAM,CA+D/F"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * /api/operator -- read-mostly operator surface for the /ui board.
4
+ *
5
+ * Reads the trigger loop's own store (~/.mama/operator/triggers.db by default)
6
+ * through a second in-process connection. triggers.db uses the default rollback
7
+ * journal (TriggerRegistry sets no WAL pragma), so this connection sets an
8
+ * explicit busy_timeout: reads and the rare owner disable() retry instead of
9
+ * throwing SQLITE_BUSY when the loop holds the file.
10
+ *
11
+ * The dbPath is injection-only: tests pass a temp path; the production path is
12
+ * resolved solely at the mount site in api/index.ts (never inside this module).
13
+ */
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.createOperatorRouter = createOperatorRouter;
19
+ const express_1 = require("express");
20
+ const node_fs_1 = require("node:fs");
21
+ const node_path_1 = require("node:path");
22
+ const sqlite_js_1 = __importDefault(require("../sqlite.js"));
23
+ const task_ledger_js_1 = require("../operator/task-ledger.js");
24
+ const trigger_registry_js_1 = require("../operator/trigger-registry.js");
25
+ const operator_summary_js_1 = require("./operator-summary.js");
26
+ /** TriggerRecord nests counters (stats.*) -- flatten explicitly, never spread. */
27
+ function toWire(t) {
28
+ return {
29
+ id: t.id,
30
+ kind: t.kind,
31
+ memoryQuery: t.memoryQuery,
32
+ match: t.match,
33
+ procedure: t.procedure,
34
+ requiredEvidence: t.requiredEvidence,
35
+ status: t.status,
36
+ authoredBy: t.authoredBy,
37
+ createdAt: t.createdAt,
38
+ updatedAt: t.updatedAt,
39
+ provenance: t.provenance,
40
+ fired: t.stats.fired,
41
+ succeeded: t.stats.succeeded,
42
+ failed: t.stats.failed,
43
+ disabledReason: t.disabledReason ?? null,
44
+ };
45
+ }
46
+ function createOperatorRouter(opts) {
47
+ // Lazy open on first request: createApiServer mounts this router in ~30
48
+ // existing tests that never call /api/operator -- an eager open would touch
49
+ // the real ~/.mama path from every one of them (the PR #126 pollution class)
50
+ // and crash on fresh installs where the parent directory does not exist yet.
51
+ let lazyState = null;
52
+ const getLazyState = () => {
53
+ if (!lazyState) {
54
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(opts.dbPath), { recursive: true });
55
+ const db = new sqlite_js_1.default(opts.dbPath);
56
+ db.prepare('PRAGMA busy_timeout = 5000').get();
57
+ lazyState = {
58
+ registry: new trigger_registry_js_1.TriggerRegistry(db),
59
+ taskLedger: new task_ledger_js_1.TaskLedger(db),
60
+ };
61
+ }
62
+ return lazyState;
63
+ };
64
+ const getRegistry = () => getLazyState().registry;
65
+ const getTaskLedger = () => getLazyState().taskLedger;
66
+ const router = (0, express_1.Router)();
67
+ router.get('/summary', (_req, res) => {
68
+ const all = getRegistry().listAll();
69
+ const active = all.filter((t) => t.status === 'active');
70
+ const disabled = all.filter((t) => t.status === 'disabled');
71
+ res.json({
72
+ report: {
73
+ actionRequired: (0, operator_summary_js_1.countActionRequiredCards)(opts.reportStore.get('action_required')?.html),
74
+ },
75
+ tasks: {
76
+ unconfirmed: getTaskLedger().countOpenUnconfirmed(),
77
+ },
78
+ triggers: {
79
+ active: active.length,
80
+ disabled: disabled.length,
81
+ fired: all.reduce((n, t) => n + t.stats.fired, 0),
82
+ succeeded: all.reduce((n, t) => n + t.stats.succeeded, 0),
83
+ failed: all.reduce((n, t) => n + t.stats.failed, 0),
84
+ },
85
+ });
86
+ });
87
+ router.get('/triggers', (_req, res) => {
88
+ res.json({ triggers: getRegistry().listAll().map(toWire) });
89
+ });
90
+ router.post('/triggers/:id/disable', (req, res) => {
91
+ const reason = req.body?.reason?.trim();
92
+ if (!reason) {
93
+ return res.status(400).json({ error: 'reason required' });
94
+ }
95
+ const id = req.params.id;
96
+ if (!getRegistry().getById(id)) {
97
+ return res.status(404).json({ error: 'trigger not found' });
98
+ }
99
+ const trigger = getRegistry().disable(id, reason);
100
+ // Owner veto is loud by design (observability over restriction).
101
+ console.log(`[operator-api] trigger ${id} disabled by owner: ${reason}`);
102
+ return res.json({ ok: true, trigger: toWire(trigger) });
103
+ });
104
+ return router;
105
+ }
106
+ //# sourceMappingURL=operator-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-handler.js","sourceRoot":"","sources":["../../src/api/operator-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function countElementsWithClass(html: string | undefined, className: string): number;
2
+ export declare function countActionRequiredCards(html: string | undefined): number;
3
+ //# sourceMappingURL=operator-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-summary.d.ts","sourceRoot":"","sources":["../../src/api/operator-summary.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAqE1F;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.countElementsWithClass = countElementsWithClass;
4
+ exports.countActionRequiredCards = countActionRequiredCards;
5
+ function countElementsWithClass(html, className) {
6
+ if (!html || !className) {
7
+ return 0;
8
+ }
9
+ const uncommentedHtml = html.replace(/<!--[\s\S]*?(?:-->|$)/g, '');
10
+ const elementPattern = /<[A-Za-z][A-Za-z0-9:-]*\b(?:[^>"']|"[^"]*"|'[^']*')*>/g;
11
+ let count = 0;
12
+ for (const match of uncommentedHtml.matchAll(elementPattern)) {
13
+ const openingTag = match[0];
14
+ const tagName = /^<[A-Za-z][A-Za-z0-9:-]*/.exec(openingTag);
15
+ if (!tagName) {
16
+ continue;
17
+ }
18
+ let index = tagName[0].length;
19
+ while (index < openingTag.length) {
20
+ while (/\s/.test(openingTag[index] ?? '')) {
21
+ index += 1;
22
+ }
23
+ if (openingTag[index] === '>' || openingTag[index] === '/') {
24
+ break;
25
+ }
26
+ const nameStart = index;
27
+ while (index < openingTag.length && !/[\s=/>]/.test(openingTag[index] ?? '')) {
28
+ index += 1;
29
+ }
30
+ if (index === nameStart) {
31
+ index += 1;
32
+ continue;
33
+ }
34
+ const attributeName = openingTag.slice(nameStart, index).toLowerCase();
35
+ while (/\s/.test(openingTag[index] ?? '')) {
36
+ index += 1;
37
+ }
38
+ if (openingTag[index] !== '=') {
39
+ continue;
40
+ }
41
+ index += 1;
42
+ while (/\s/.test(openingTag[index] ?? '')) {
43
+ index += 1;
44
+ }
45
+ const quote = openingTag[index];
46
+ if (quote !== '"' && quote !== "'") {
47
+ while (index < openingTag.length && !/[\s>]/.test(openingTag[index] ?? '')) {
48
+ index += 1;
49
+ }
50
+ continue;
51
+ }
52
+ const valueStart = index + 1;
53
+ const valueEnd = openingTag.indexOf(quote, valueStart);
54
+ if (valueEnd === -1) {
55
+ break;
56
+ }
57
+ if (attributeName === 'class') {
58
+ const classTokens = openingTag.slice(valueStart, valueEnd).split(/\s+/).filter(Boolean);
59
+ if (classTokens.includes(className)) {
60
+ count += 1;
61
+ }
62
+ break;
63
+ }
64
+ index = valueEnd + 1;
65
+ }
66
+ }
67
+ return count;
68
+ }
69
+ function countActionRequiredCards(html) {
70
+ return countElementsWithClass(html, 'report-card');
71
+ }
72
+ //# sourceMappingURL=operator-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-summary.js","sourceRoot":"","sources":["../../src/api/operator-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Express } from 'express';
2
+ import { type TaskLedger } from '../operator/task-ledger.js';
3
+ export interface OperatorTaskRouteDeps {
4
+ getTaskLedger: () => TaskLedger | null;
5
+ }
6
+ export declare function registerOperatorTaskRoutes(app: Express, deps: OperatorTaskRouteDeps): void;
7
+ //# sourceMappingURL=operator-tasks-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-tasks-handler.d.ts","sourceRoot":"","sources":["../../src/api/operator-tasks-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAGL,KAAK,UAAU,EAKhB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;CACxC;AAoHD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAsD1F"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerOperatorTaskRoutes = registerOperatorTaskRoutes;
4
+ const auth_middleware_js_1 = require("./auth-middleware.js");
5
+ const task_ledger_js_1 = require("../operator/task-ledger.js");
6
+ const ALLOWED_PATCH_FIELDS = new Set(['status', 'priority', 'assignee', 'due_date', 'confirmed']);
7
+ const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
8
+ function serializeTask(task) {
9
+ return {
10
+ id: task.id,
11
+ title: task.title,
12
+ status: task.status,
13
+ priority: task.priority,
14
+ assignee: task.assignee,
15
+ due_date: task.deadlineIso,
16
+ source_channel: task.sourceChannel,
17
+ latest_event: task.latestEvent,
18
+ auto_created: task.autoCreated,
19
+ confirmed: task.confirmed,
20
+ created_at: task.createdAt,
21
+ updated_at: task.updatedAt,
22
+ };
23
+ }
24
+ function isValidDate(value) {
25
+ if (!ISO_DATE_PATTERN.test(value)) {
26
+ return false;
27
+ }
28
+ const [year, month, day] = value.split('-').map(Number);
29
+ const date = new Date(Date.UTC(year, month - 1, day));
30
+ return (date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day);
31
+ }
32
+ function readStringQuery(value, field) {
33
+ if (value === undefined)
34
+ return undefined;
35
+ if (typeof value !== 'string') {
36
+ throw new Error(`${field} must be a string`);
37
+ }
38
+ return value;
39
+ }
40
+ function readLimit(value) {
41
+ if (value === undefined)
42
+ return 50;
43
+ if (typeof value !== 'string' || !/^\d+$/.test(value)) {
44
+ throw new Error('limit must be an integer from 1 to 200');
45
+ }
46
+ const limit = Number(value);
47
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > 200) {
48
+ throw new Error('limit must be an integer from 1 to 200');
49
+ }
50
+ return limit;
51
+ }
52
+ function validatePatchBody(body) {
53
+ if (body === null || typeof body !== 'object' || Array.isArray(body)) {
54
+ throw new Error('body must be a non-empty object');
55
+ }
56
+ const input = body;
57
+ const keys = Object.keys(input);
58
+ if (keys.length === 0) {
59
+ throw new Error('body must be a non-empty object');
60
+ }
61
+ const unknownFields = keys.filter((key) => !ALLOWED_PATCH_FIELDS.has(key));
62
+ if (unknownFields.length > 0) {
63
+ throw new Error(`unknown fields: ${unknownFields.join(', ')}`);
64
+ }
65
+ const patch = {};
66
+ if ('status' in input) {
67
+ if (typeof input.status !== 'string' || !task_ledger_js_1.TASK_STATUSES.includes(input.status)) {
68
+ throw new Error(`status must be one of ${task_ledger_js_1.TASK_STATUSES.join('|')}`);
69
+ }
70
+ patch.status = input.status;
71
+ }
72
+ if ('priority' in input) {
73
+ if (typeof input.priority !== 'string' ||
74
+ !task_ledger_js_1.TASK_PRIORITIES.includes(input.priority)) {
75
+ throw new Error(`priority must be one of ${task_ledger_js_1.TASK_PRIORITIES.join('|')}`);
76
+ }
77
+ patch.priority = input.priority;
78
+ }
79
+ if ('assignee' in input) {
80
+ if (input.assignee !== null && typeof input.assignee !== 'string') {
81
+ throw new Error('assignee must be a string or null');
82
+ }
83
+ patch.assignee = input.assignee === null ? null : input.assignee.trim();
84
+ }
85
+ if ('due_date' in input) {
86
+ if (input.due_date !== null && typeof input.due_date !== 'string') {
87
+ throw new Error('due_date must be a YYYY-MM-DD date or null');
88
+ }
89
+ if (typeof input.due_date === 'string' && !isValidDate(input.due_date)) {
90
+ throw new Error('due_date must be a real YYYY-MM-DD calendar date or null');
91
+ }
92
+ patch.deadline = input.due_date;
93
+ }
94
+ if ('confirmed' in input) {
95
+ if (typeof input.confirmed !== 'boolean') {
96
+ throw new Error('confirmed must be a boolean');
97
+ }
98
+ patch.confirmed = input.confirmed;
99
+ }
100
+ return patch;
101
+ }
102
+ function getLedgerOr503(deps, res) {
103
+ const ledger = deps.getTaskLedger();
104
+ if (!ledger) {
105
+ res.status(503).json({ error: 'task ledger unavailable' });
106
+ return null;
107
+ }
108
+ return ledger;
109
+ }
110
+ function registerOperatorTaskRoutes(app, deps) {
111
+ app.get('/api/operator/tasks', auth_middleware_js_1.requireAuth, (req, res) => {
112
+ const ledger = getLedgerOr503(deps, res);
113
+ if (!ledger)
114
+ return;
115
+ try {
116
+ const status = readStringQuery(req.query.status, 'status');
117
+ if (status !== undefined && !task_ledger_js_1.TASK_STATUSES.includes(status)) {
118
+ res.status(400).json({
119
+ error: `status must be one of ${task_ledger_js_1.TASK_STATUSES.join('|')}`,
120
+ });
121
+ return;
122
+ }
123
+ const sourceChannel = readStringQuery(req.query.source_channel, 'source_channel');
124
+ const limit = readLimit(req.query.limit);
125
+ const tasks = ledger.list({
126
+ status: status,
127
+ channel: sourceChannel,
128
+ limit,
129
+ order: 'deadline_priority',
130
+ });
131
+ res.json({ tasks: tasks.map(serializeTask) });
132
+ }
133
+ catch (error) {
134
+ res.status(400).json({ error: error instanceof Error ? error.message : String(error) });
135
+ }
136
+ });
137
+ app.patch('/api/operator/tasks/:id', auth_middleware_js_1.requireAuth, (req, res) => {
138
+ const ledger = getLedgerOr503(deps, res);
139
+ if (!ledger)
140
+ return;
141
+ const rawId = req.params.id;
142
+ if (typeof rawId !== 'string' || !/^[1-9]\d*$/.test(rawId)) {
143
+ res.status(400).json({ error: 'id must be a positive base-10 integer' });
144
+ return;
145
+ }
146
+ const id = Number(rawId);
147
+ if (!Number.isSafeInteger(id)) {
148
+ res.status(400).json({ error: 'id must be a positive base-10 integer' });
149
+ return;
150
+ }
151
+ if (!ledger.getById(id)) {
152
+ res.status(404).json({ error: 'task not found' });
153
+ return;
154
+ }
155
+ try {
156
+ const patch = validatePatchBody(req.body);
157
+ const task = ledger.update(id, patch);
158
+ res.json({ ok: true, task: serializeTask(task) });
159
+ }
160
+ catch (error) {
161
+ res.status(400).json({ error: error instanceof Error ? error.message : String(error) });
162
+ }
163
+ });
164
+ }
165
+ //# sourceMappingURL=operator-tasks-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-tasks-handler.js","sourceRoot":"","sources":["../../src/api/operator-tasks-handler.ts"],"names":[],"mappings":"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"}