@jungjaehoon/mama-os 0.30.0 → 0.31.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 (63) hide show
  1. package/dist/agent/gateway-tool-executor.d.ts +2 -1
  2. package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
  3. package/dist/agent/gateway-tool-executor.js +86 -7
  4. package/dist/agent/gateway-tool-executor.js.map +1 -1
  5. package/dist/agent/gateway-tools.md +1 -1
  6. package/dist/agent/tool-registry.js +1 -1
  7. package/dist/agent/tool-registry.js.map +1 -1
  8. package/dist/api/operator-tasks-handler.d.ts.map +1 -1
  9. package/dist/api/operator-tasks-handler.js +2 -1
  10. package/dist/api/operator-tasks-handler.js.map +1 -1
  11. package/dist/cli/commands/start.d.ts +0 -13
  12. package/dist/cli/commands/start.d.ts.map +1 -1
  13. package/dist/cli/commands/start.js +88 -27
  14. package/dist/cli/commands/start.js.map +1 -1
  15. package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
  16. package/dist/cli/runtime/api-routes-init.js +19 -3
  17. package/dist/cli/runtime/api-routes-init.js.map +1 -1
  18. package/dist/cli/runtime/gateway-wiring.d.ts.map +1 -1
  19. package/dist/cli/runtime/gateway-wiring.js +17 -0
  20. package/dist/cli/runtime/gateway-wiring.js.map +1 -1
  21. package/dist/db/migrations/operator-task-temporal.d.ts.map +1 -1
  22. package/dist/db/migrations/operator-task-temporal.js +5 -0
  23. package/dist/db/migrations/operator-task-temporal.js.map +1 -1
  24. package/dist/evidence/effects.d.ts +18 -2
  25. package/dist/evidence/effects.d.ts.map +1 -1
  26. package/dist/evidence/effects.js +76 -7
  27. package/dist/evidence/effects.js.map +1 -1
  28. package/dist/operator/changes-projection.d.ts +2 -0
  29. package/dist/operator/changes-projection.d.ts.map +1 -1
  30. package/dist/operator/changes-projection.js +1 -0
  31. package/dist/operator/changes-projection.js.map +1 -1
  32. package/dist/operator/conductor.d.ts +1 -0
  33. package/dist/operator/conductor.d.ts.map +1 -1
  34. package/dist/operator/conductor.js +6 -0
  35. package/dist/operator/conductor.js.map +1 -1
  36. package/dist/operator/leg-cadence.d.ts +72 -0
  37. package/dist/operator/leg-cadence.d.ts.map +1 -0
  38. package/dist/operator/leg-cadence.js +122 -0
  39. package/dist/operator/leg-cadence.js.map +1 -0
  40. package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
  41. package/dist/operator/operator-trigger-loop.js +2 -0
  42. package/dist/operator/operator-trigger-loop.js.map +1 -1
  43. package/dist/operator/task-ledger.d.ts +7 -0
  44. package/dist/operator/task-ledger.d.ts.map +1 -1
  45. package/dist/operator/task-ledger.js +16 -8
  46. package/dist/operator/task-ledger.js.map +1 -1
  47. package/dist/operator/temporal-effect.d.ts +3 -0
  48. package/dist/operator/temporal-effect.d.ts.map +1 -1
  49. package/dist/operator/temporal-effect.js.map +1 -1
  50. package/dist/operator/workorder-consumer.d.ts +2 -0
  51. package/dist/operator/workorder-consumer.d.ts.map +1 -1
  52. package/dist/operator/workorder-consumer.js +6 -3
  53. package/dist/operator/workorder-consumer.js.map +1 -1
  54. package/dist/operator/workorder-publishers.d.ts +7 -0
  55. package/dist/operator/workorder-publishers.d.ts.map +1 -1
  56. package/dist/operator/workorder-publishers.js +15 -0
  57. package/dist/operator/workorder-publishers.js.map +1 -1
  58. package/dist/scheduler/heartbeat.d.ts +8 -0
  59. package/dist/scheduler/heartbeat.d.ts.map +1 -1
  60. package/dist/scheduler/heartbeat.js +12 -0
  61. package/dist/scheduler/heartbeat.js.map +1 -1
  62. package/package.json +2 -2
  63. package/scripts/crack-failure-digests.ts +55 -0
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/scheduler/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAwD;gBAG/E,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAO1E;;OAEG;IACH,KAAK,IAAI,IAAI;IAmBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAaZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;YACW,IAAI;IAoElB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAUjD;;OAEG;IACH,SAAS,IAAI,eAAe;CAG7B"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/scheduler/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIxD,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAwD;gBAG/E,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAO1E;;OAEG;IACH;;;;;;OAMG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,KAAK,IAAI,IAAI;IAmBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAaZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;YACW,IAAI;IAqElB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAUjD;;OAEG;IACH,SAAS,IAAI,eAAe;CAG7B"}
@@ -9,6 +9,7 @@ exports.HeartbeatScheduler = void 0;
9
9
  const fs_1 = require("fs");
10
10
  const path_1 = require("path");
11
11
  const memory_logger_js_1 = require("../memory/memory-logger.js");
12
+ const leg_cadence_js_1 = require("../operator/leg-cadence.js");
12
13
  const DEFAULT_CONFIG = {
13
14
  interval: 30 * 60 * 1000, // 30 minutes
14
15
  quietStart: 23,
@@ -29,6 +30,16 @@ class HeartbeatScheduler {
29
30
  /**
30
31
  * Start the heartbeat scheduler
31
32
  */
33
+ /**
34
+ * The cadence the watchdog should hold this leg to, or null when the
35
+ * heartbeat is off. Boot declares the leg AFTER initLegCadence runs -
36
+ * declaring from start() hit a null singleton and was silently unwatched
37
+ * (review: a watchdog believed to be watching but isn't is the failure
38
+ * mode this feature exists to prevent).
39
+ */
40
+ declaredCadence() {
41
+ return this.running ? this.config.interval : null;
42
+ }
32
43
  start() {
33
44
  if (this.running) {
34
45
  console.log('[Heartbeat] Already running');
@@ -76,6 +87,7 @@ class HeartbeatScheduler {
76
87
  * Execute a heartbeat tick
77
88
  */
78
89
  async tick() {
90
+ (0, leg_cadence_js_1.getLegCadence)()?.beat('heartbeat');
79
91
  // Skip during quiet hours
80
92
  if (this.isQuietHours()) {
81
93
  console.log('[Heartbeat] Quiet hours - skipping');
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/scheduler/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/scheduler/heartbeat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jungjaehoon/mama-os",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "MAMA OS - Local AI Runtime. Your scattered knowledge, organized by AI agents that never sleep.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -63,7 +63,7 @@
63
63
  },
64
64
  "dependencies": {
65
65
  "@anthropic-ai/sdk": "^0.71.2",
66
- "@jungjaehoon/mama-core": "^2.0.0",
66
+ "@jungjaehoon/mama-core": "^2.1.0",
67
67
  "@slack/socket-mode": "^2.0.5",
68
68
  "@slack/web-api": "^7.13.0",
69
69
  "better-sqlite3": "^12.8.0",
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Name the hashed failure digests (S2 Task 0, report-only — no writes).
3
+ *
4
+ * Sanitized traces read `gateway_tool_failed;sha256=<digest>;length=N`. The
5
+ * ORIGINAL messages still exist in agent_activity rows written by unsanitized
6
+ * surfaces — hashing every distinct error_message against the top digests
7
+ * names them. 2026-07-31 run named all three dominant digests:
8
+ * e4f04370 = [memory_scope_out_of_scope] Envelope policy denied this tool call
9
+ * fb98ff8e = context_compile failed: Context ref kind must be a string
10
+ * f9242e19 = [connector_out_of_scope] Envelope policy denied this tool call
11
+ * Forward-looking data no longer needs this: tool_traces.failure_code carries
12
+ * the thrower's code from v0.31.0 on.
13
+ *
14
+ * Run: npx tsx scripts/crack-failure-digests.ts [~/.mama/mama-sessions.db]
15
+ */
16
+ import { createHash } from 'node:crypto';
17
+ import { homedir } from 'node:os';
18
+ import { join } from 'node:path';
19
+ import Database from 'better-sqlite3';
20
+
21
+ const dbPath = process.argv[2] ?? join(homedir(), '.mama', 'mama-sessions.db');
22
+ const db = new Database(dbPath, { readonly: true });
23
+
24
+ const digestRows = db
25
+ .prepare(
26
+ `SELECT substr(COALESCE(error_message, output_summary, ''),
27
+ instr(COALESCE(error_message, output_summary, ''), 'sha256=') + 7, 64) AS digest,
28
+ COUNT(*) AS n
29
+ FROM agent_activity
30
+ WHERE COALESCE(error_message, output_summary, '') LIKE '%sha256=%'
31
+ GROUP BY digest ORDER BY n DESC LIMIT 10`
32
+ )
33
+ .all() as Array<{ digest: string; n: number }>;
34
+
35
+ const candidates = db
36
+ .prepare(
37
+ `SELECT DISTINCT error_message FROM agent_activity
38
+ WHERE error_message IS NOT NULL AND length(error_message) BETWEEN 10 AND 300`
39
+ )
40
+ .all() as Array<{ error_message: string }>;
41
+
42
+ const byHash = new Map<string, string>();
43
+ for (const { error_message } of candidates) {
44
+ byHash.set(createHash('sha256').update(error_message).digest('hex'), error_message);
45
+ }
46
+
47
+ for (const { digest, n } of digestRows) {
48
+ const named = byHash.get(digest);
49
+ console.log(
50
+ named
51
+ ? `${digest.slice(0, 8)} x${n} = ${JSON.stringify(named)}`
52
+ : `${digest.slice(0, 8)} x${n} = (unnamed - widen the candidate window or check daemon logs)`
53
+ );
54
+ }
55
+ db.close();