aura-code 0.5.0 → 0.6.3

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 (79) hide show
  1. package/README.md +3 -3
  2. package/dist/agent/context.d.ts +4 -0
  3. package/dist/agent/context.js +38 -0
  4. package/dist/agent/context.js.map +1 -1
  5. package/dist/agent/loop.js +16 -0
  6. package/dist/agent/loop.js.map +1 -1
  7. package/dist/agent/system-prompt.js +9 -1
  8. package/dist/agent/system-prompt.js.map +1 -1
  9. package/dist/cli/display.js +6 -1
  10. package/dist/cli/display.js.map +1 -1
  11. package/dist/cli/index.js +71 -8
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/config/defaults.js +8 -1
  14. package/dist/config/defaults.js.map +1 -1
  15. package/dist/dream/dream.d.ts +25 -2
  16. package/dist/dream/dream.js +36 -6
  17. package/dist/dream/dream.js.map +1 -1
  18. package/dist/dream/okf.d.ts +10 -0
  19. package/dist/dream/okf.js +280 -0
  20. package/dist/dream/okf.js.map +1 -0
  21. package/dist/dream/parser.d.ts +60 -0
  22. package/dist/dream/parser.js +176 -0
  23. package/dist/dream/parser.js.map +1 -0
  24. package/dist/dream/reconcile.d.ts +69 -0
  25. package/dist/dream/reconcile.js +303 -0
  26. package/dist/dream/reconcile.js.map +1 -0
  27. package/dist/machina/index.d.ts +16 -0
  28. package/dist/machina/index.js +61 -0
  29. package/dist/machina/index.js.map +1 -0
  30. package/dist/machina/render-html.d.ts +2 -0
  31. package/dist/machina/render-html.js +189 -0
  32. package/dist/machina/render-html.js.map +1 -0
  33. package/dist/machina/render-terminal.d.ts +2 -0
  34. package/dist/machina/render-terminal.js +92 -0
  35. package/dist/machina/render-terminal.js.map +1 -0
  36. package/dist/machina/spec.d.ts +61 -0
  37. package/dist/machina/spec.js +124 -0
  38. package/dist/machina/spec.js.map +1 -0
  39. package/dist/machina/verify.d.ts +27 -0
  40. package/dist/machina/verify.js +85 -0
  41. package/dist/machina/verify.js.map +1 -0
  42. package/dist/providers/anthropic.js +1 -1
  43. package/dist/providers/anthropic.js.map +1 -1
  44. package/dist/providers/factory.d.ts +33 -0
  45. package/dist/providers/factory.js +27 -0
  46. package/dist/providers/factory.js.map +1 -1
  47. package/dist/providers/google.js +1 -1
  48. package/dist/providers/google.js.map +1 -1
  49. package/dist/providers/openai-compatible.js +1 -1
  50. package/dist/providers/openai-compatible.js.map +1 -1
  51. package/dist/rem/graph.d.ts +72 -0
  52. package/dist/rem/graph.js +139 -0
  53. package/dist/rem/graph.js.map +1 -0
  54. package/dist/rem/index.d.ts +16 -0
  55. package/dist/rem/index.js +60 -0
  56. package/dist/rem/index.js.map +1 -0
  57. package/dist/rem/render-html.d.ts +2 -0
  58. package/dist/rem/render-html.js +189 -0
  59. package/dist/rem/render-html.js.map +1 -0
  60. package/dist/rem/render-terminal.d.ts +4 -0
  61. package/dist/rem/render-terminal.js +94 -0
  62. package/dist/rem/render-terminal.js.map +1 -0
  63. package/dist/research/council.d.ts +3 -2
  64. package/dist/research/council.js +47 -9
  65. package/dist/research/council.js.map +1 -1
  66. package/dist/tools/browser.js +8 -10
  67. package/dist/tools/browser.js.map +1 -1
  68. package/dist/tools/gmail-tool.d.ts +5 -1
  69. package/dist/tools/gmail-tool.js +151 -11
  70. package/dist/tools/gmail-tool.js.map +1 -1
  71. package/dist/tools/telegram-bot.js +6 -8
  72. package/dist/tools/telegram-bot.js.map +1 -1
  73. package/dist/tools/web-search.d.ts +20 -0
  74. package/dist/tools/web-search.js +134 -38
  75. package/dist/tools/web-search.js.map +1 -1
  76. package/dist/viz/reader.d.ts +33 -0
  77. package/dist/viz/reader.js +343 -0
  78. package/dist/viz/reader.js.map +1 -0
  79. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/dream/dream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/dream/dream.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,gDAQC;AA+DD,4BA2HC;AA/PD,uCAAyB;AACzB,2CAA6B;AAC7B,mEAA0D;AAG1D,wDAA4E;AAC5E,2CAAiD;AACjD,iDAAiD;AACjD,qCAA0C;AA6C1C,MAAM,cAAc,GAAG,QAAQ,CAAC;AAChC,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,SAAS,SAAS,CAAC,WAAmB;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,wEAAwE;AACxE,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAC;QAC3D,OAAO,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,WAAmB,EAAE,WAAmB;IAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,6EAA6E;AAC7E,SAAS,aAAa,CAAC,EAAW;IAChC,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACpG,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmB;IACnD,MAAM,MAAM,GACV,uFAAuF;QACvF,yFAAyF;QACzF,0FAA0F;QAC1F,gCAAgC;QAChC,yGAAyG;QACzG,kEAAkE;QAClE,gGAAgG;QAChG,kFAAkF;QAClF,iEAAiE;QACjE,iFAAiF,CAAC;IAEpF,MAAM,IAAI,GACR,qBAAqB,QAAQ,CAAC,MAAM,QAAQ;QAC5C,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,QAAmB,EAAE,KAAa;IAC9D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IACzE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAC/E,OAAO,CACL,aAAa,IAAI,MAAM;QACvB,KAAK,QAAQ,CAAC,MAAM,4BAA4B,QAAQ,KAAK;QAC7D,GAAG,SAAS,eAAe,QAAQ,cAAc;QACjD,iBAAiB,IAAI,IAAI,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,QAAQ,CAAC,IAY9B;IACC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,mBAAmB,GACvB,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACjF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9E,MAAM,GAAG,GAAG,MAAM,IAAA,iCAAY,EAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAEtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;IAC9H,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,IAAwB,CAAC;IAC7B,IAAI,aAAiC,CAAC;IAEtC,MAAM,WAAW,GAAG,KAAK,EAAE,CAAc,EAAmB,EAAE;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,kBAAkB;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEzF,yEAAyE;QACzE,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,2BAA2B,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,IAAA,8BAAiB,EAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3F,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,cAAc,GAAG,IAAA,2BAAc,EAAC;wBACpC,KAAK,EAAE,UAAU,mBAAmB,EAAE;wBACtC,OAAO,EAAE,aAAa;wBACtB,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBACH,IAAI,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;oBACzC,aAAa,GAAG,SAAS,CAAC;gBAC5B,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,MAAM,SAAS,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrF,aAAa,GAAG,YAAY,UAAU,sBAAsB,SAAS,EAAE,CAAC;gBAC1E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,GAAG,UAAU,6BAA6B,aAAa,GAAG,CAAC;YAC7E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,UAAU,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,EAAE;YACR,IAAI;YACJ,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,yDAAyD;YACjE,aAAa;SACd,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,IAAK,IAAI,CAAC;IAC1D,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE9B,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhC,6EAA6E;IAC7E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,aAAiC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,8BAAkB,EAAC,WAAW,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAe,EAAC;YACnC,WAAW;YACX,QAAQ;YACR,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,oEAAoE;YACpE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9C,UAAU,GAAG,IAAI,CAAC;YAElB,uEAAuE;YACvE,qEAAqE;YACrE,IAAI,CAAC;gBACH,aAAa,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACjI,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ReconciledBullet } from './reconcile.js';
2
+ /**
3
+ * Write an OKF v0.1 knowledge bundle from reconciled bullets.
4
+ *
5
+ * Called after reconciliation succeeds. Best-effort — if this fails,
6
+ * .reconciled.md is already written and the dream is safe.
7
+ *
8
+ * The bundle directory is wiped and rebuilt each time (it's a projection).
9
+ */
10
+ export declare function writeOkfBundle(bullets: ReconciledBullet[], totalDreams: number, projectRoot: string): string;
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.writeOkfBundle = writeOkfBundle;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ /**
40
+ * OKF (Open Knowledge Format) v0.1 bundle writer.
41
+ *
42
+ * Takes the reconciled bullets from Aura's dream system and writes them
43
+ * as a portable OKF knowledge bundle under `<projectRoot>/knowledge/`.
44
+ *
45
+ * OKF spec: https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md
46
+ *
47
+ * Why both .reconciled.md AND an OKF bundle?
48
+ * - `.reconciled.md` is Aura's internal format — compact, fast, injected
49
+ * into the system prompt for Aura's own use.
50
+ * - `knowledge/` is the portable output — any other agent, tool, or human
51
+ * can read it. Cursor, Claude Code, LangChain agents, Obsidian, MkDocs,
52
+ * or any OKF consumer can consume Aura's accumulated knowledge without
53
+ * understanding Aura's dream format.
54
+ *
55
+ * The bundle is regenerated on every reconciliation pass. It's a projection,
56
+ * just like .reconciled.md — delete it and the next :dream rebuilds it.
57
+ *
58
+ * Concept types used:
59
+ * - "lesson" — from ## Lessons
60
+ * - "pattern" — from ## Patterns
61
+ * - "open-thread" — from ## Open threads
62
+ * - "conflict" — CONFLICT verdicts get their own concepts
63
+ *
64
+ * Directory structure:
65
+ * knowledge/
66
+ * index.md — bundle root index (okf_version: "0.1")
67
+ * log.md — reconciliation changelog
68
+ * lessons/
69
+ * index.md
70
+ * <slug>.md
71
+ * patterns/
72
+ * index.md
73
+ * <slug>.md
74
+ * open-threads/
75
+ * index.md
76
+ * <slug>.md
77
+ */
78
+ const KNOWLEDGE_DIR = 'knowledge';
79
+ const OKF_VERSION = '0.1';
80
+ const SECTION_DIR = {
81
+ lessons: 'lessons',
82
+ patterns: 'patterns',
83
+ openThreads: 'open-threads',
84
+ };
85
+ const SECTION_TYPE = {
86
+ lessons: 'lesson',
87
+ patterns: 'pattern',
88
+ openThreads: 'open-thread',
89
+ };
90
+ const SECTION_LABEL = {
91
+ lessons: 'Lessons',
92
+ patterns: 'Patterns',
93
+ openThreads: 'Open Threads',
94
+ };
95
+ function slugify(text, tag) {
96
+ const base = tag ? `${tag}-${text}` : text;
97
+ return base
98
+ .toLowerCase()
99
+ .replace(/[^a-z0-9]+/g, '-')
100
+ .replace(/^-+|-+$/g, '')
101
+ .slice(0, 60) || 'concept';
102
+ }
103
+ function deduplicateSlug(slug, existing) {
104
+ if (!existing.has(slug)) {
105
+ existing.add(slug);
106
+ return slug;
107
+ }
108
+ let i = 2;
109
+ while (existing.has(`${slug}-${i}`))
110
+ i++;
111
+ const unique = `${slug}-${i}`;
112
+ existing.add(unique);
113
+ return unique;
114
+ }
115
+ function buildFrontmatter(fields) {
116
+ const lines = ['---'];
117
+ for (const [key, val] of Object.entries(fields)) {
118
+ if (val === undefined)
119
+ continue;
120
+ if (Array.isArray(val)) {
121
+ if (val.length > 0)
122
+ lines.push(`${key}: [${val.map(v => `"${v}"`).join(', ')}]`);
123
+ }
124
+ else {
125
+ // Quote strings that contain colons or special chars
126
+ const needsQuote = /[:#\[\]{}"']/.test(val) || val.includes('\n');
127
+ lines.push(`${key}: ${needsQuote ? `"${val.replace(/"/g, '\\"')}"` : val}`);
128
+ }
129
+ }
130
+ lines.push('---');
131
+ return lines.join('\n');
132
+ }
133
+ function buildConceptFile(bullet, totalDreams) {
134
+ const type = bullet.action === 'CONFLICT' ? 'conflict' : SECTION_TYPE[bullet.section];
135
+ const title = bullet.text.slice(0, 120);
136
+ const tags = bullet.tag ? [bullet.tag] : [];
137
+ if (bullet.action !== 'KEEP')
138
+ tags.push(bullet.action.toLowerCase());
139
+ const latestDate = bullet.sourceDates.length > 0
140
+ ? bullet.sourceDates[bullet.sourceDates.length - 1]
141
+ : new Date().toISOString().slice(0, 10);
142
+ const timestamp = `${latestDate}T00:00:00Z`;
143
+ const frontmatter = buildFrontmatter({
144
+ type,
145
+ title,
146
+ description: bullet.text,
147
+ tags,
148
+ timestamp,
149
+ });
150
+ const bodyLines = [];
151
+ bodyLines.push(`# ${title}`);
152
+ bodyLines.push('');
153
+ bodyLines.push(bullet.text);
154
+ bodyLines.push('');
155
+ bodyLines.push(`*${bullet.annotation}* · confidence: ${bullet.confidence}`);
156
+ if (bullet.action === 'CONFLICT' && bullet.conflictsWith) {
157
+ bodyLines.push('');
158
+ bodyLines.push('## Opposing claim');
159
+ bodyLines.push('');
160
+ bodyLines.push(`> ${bullet.conflictsWith.text}`);
161
+ bodyLines.push(`> — *${bullet.conflictsWith.date}*`);
162
+ }
163
+ bodyLines.push('');
164
+ bodyLines.push(`Source dreams: ${bullet.sourceDates.join(', ')}`);
165
+ return `${frontmatter}\n\n${bodyLines.join('\n')}\n`;
166
+ }
167
+ function buildSectionIndex(sectionLabel, concepts) {
168
+ const lines = [`# ${sectionLabel}`];
169
+ lines.push('');
170
+ if (concepts.length === 0) {
171
+ lines.push('*No concepts in this section yet.*');
172
+ }
173
+ else {
174
+ for (const c of concepts) {
175
+ lines.push(`* [${c.title}](${c.slug}.md)`);
176
+ }
177
+ }
178
+ lines.push('');
179
+ return lines.join('\n');
180
+ }
181
+ function buildRootIndex(sections, totalDreams, totalConcepts) {
182
+ const frontmatter = buildFrontmatter({ okf_version: OKF_VERSION });
183
+ const lines = [frontmatter, ''];
184
+ lines.push('# Aura Code — Knowledge Bundle');
185
+ lines.push('');
186
+ lines.push(`> OKF v${OKF_VERSION} · ${totalConcepts} concepts from ${totalDreams} dream(s)`);
187
+ lines.push('');
188
+ lines.push('This bundle is generated by [Aura Code](https://github.com/milodule3-debug/aura-code)\'s');
189
+ lines.push('dream reconciliation system. It contains the agent\'s accumulated knowledge about');
190
+ lines.push('this project — lessons learned, patterns observed, and open threads — in the');
191
+ lines.push('[Open Knowledge Format](https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md).');
192
+ lines.push('');
193
+ lines.push('Any OKF-compatible agent, tool, or viewer can consume this bundle.');
194
+ lines.push('');
195
+ for (const [dirName, concepts] of Object.entries(sections)) {
196
+ const label = dirName.charAt(0).toUpperCase() + dirName.slice(1).replace(/-/g, ' ');
197
+ lines.push(`# ${label}`);
198
+ lines.push('');
199
+ if (concepts.length === 0) {
200
+ lines.push('*None yet.*');
201
+ }
202
+ else {
203
+ for (const c of concepts) {
204
+ lines.push(`* [${c.title}](${dirName}/${c.slug}.md)`);
205
+ }
206
+ }
207
+ lines.push('');
208
+ }
209
+ return lines.join('\n');
210
+ }
211
+ function buildLog(totalDreams, totalConcepts, actionCounts) {
212
+ const now = new Date().toISOString().slice(0, 10);
213
+ const stats = Object.entries(actionCounts)
214
+ .map(([k, v]) => `${v} ${k}`)
215
+ .join(', ');
216
+ return [
217
+ '# Change Log',
218
+ '',
219
+ `## ${now}`,
220
+ '',
221
+ `Reconciled ${totalDreams} dream(s) into ${totalConcepts} concepts: ${stats}.`,
222
+ '',
223
+ 'Generated by Aura Code · dream reconciliation · OKF v0.1.',
224
+ '',
225
+ ].join('\n');
226
+ }
227
+ /**
228
+ * Write an OKF v0.1 knowledge bundle from reconciled bullets.
229
+ *
230
+ * Called after reconciliation succeeds. Best-effort — if this fails,
231
+ * .reconciled.md is already written and the dream is safe.
232
+ *
233
+ * The bundle directory is wiped and rebuilt each time (it's a projection).
234
+ */
235
+ function writeOkfBundle(bullets, totalDreams, projectRoot) {
236
+ const bundleRoot = path.join(projectRoot, KNOWLEDGE_DIR);
237
+ // Clean and recreate
238
+ if (fs.existsSync(bundleRoot)) {
239
+ fs.rmSync(bundleRoot, { recursive: true, force: true });
240
+ }
241
+ const sections = ['lessons', 'patterns', 'openThreads'];
242
+ const sectionConcepts = {};
243
+ const slugSets = {};
244
+ const actionCounts = {};
245
+ for (const section of sections) {
246
+ const dirName = SECTION_DIR[section];
247
+ const dirPath = path.join(bundleRoot, dirName);
248
+ fs.mkdirSync(dirPath, { recursive: true });
249
+ sectionConcepts[dirName] = [];
250
+ slugSets[dirName] = new Set();
251
+ }
252
+ // Write concept files
253
+ for (const bullet of bullets) {
254
+ const dirName = SECTION_DIR[bullet.section];
255
+ const dirPath = path.join(bundleRoot, dirName);
256
+ const rawSlug = slugify(bullet.text, bullet.tag);
257
+ const slug = deduplicateSlug(rawSlug, slugSets[dirName]);
258
+ const title = bullet.text.slice(0, 120);
259
+ const content = buildConceptFile(bullet, totalDreams);
260
+ fs.writeFileSync(path.join(dirPath, `${slug}.md`), content);
261
+ sectionConcepts[dirName].push({ slug, title });
262
+ actionCounts[bullet.action] = (actionCounts[bullet.action] ?? 0) + 1;
263
+ }
264
+ // Write section index files
265
+ for (const section of sections) {
266
+ const dirName = SECTION_DIR[section];
267
+ const dirPath = path.join(bundleRoot, dirName);
268
+ const indexContent = buildSectionIndex(SECTION_LABEL[section], sectionConcepts[dirName]);
269
+ fs.writeFileSync(path.join(dirPath, 'index.md'), indexContent);
270
+ }
271
+ // Write root index
272
+ const totalConcepts = bullets.length;
273
+ const rootIndex = buildRootIndex(sectionConcepts, totalDreams, totalConcepts);
274
+ fs.writeFileSync(path.join(bundleRoot, 'index.md'), rootIndex);
275
+ // Write log.md
276
+ const log = buildLog(totalDreams, totalConcepts, actionCounts);
277
+ fs.writeFileSync(path.join(bundleRoot, 'log.md'), log);
278
+ return bundleRoot;
279
+ }
280
+ //# sourceMappingURL=okf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"okf.js","sourceRoot":"","sources":["../../src/dream/okf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Dream parser — turns a dream markdown file back into a structured
3
+ * `ParsedDream` so reconciliation can dedupe, conflict-check, and project
4
+ * bullets across multiple days.
5
+ *
6
+ * Round-trips files written by `runDream()` in dream.ts. The contract with
7
+ * the writer is fixed: four sections in a fixed order, each containing
8
+ * bullets that may or may not start with a `[tag]` prefix. Bullets may be
9
+ * separated by blank lines, may have trailing whitespace, and may use
10
+ * either `-` or `*` markers — all real artifacts seen in production dreams.
11
+ *
12
+ * This is the FOUNDATION for memory reconciliation (CONFLICT/STRENGTHEN/
13
+ * SUPERSEDE/MERGE/KEEP/DROP). The reconciler reads many ParsedDreams,
14
+ * groups bullets by section, then asks the LLM to reconcile. The parser
15
+ * must be permissive on input (real dream files vary) and lossless on
16
+ * structure (every bullet kept, with its source date attached).
17
+ *
18
+ * What the parser does NOT do:
19
+ * - Validate tag values. `[foo]` is fine even if it's not a known category.
20
+ * - Drop empty sections — they round-trip as empty arrays.
21
+ * - Interpret bullet semantics. That's the reconciler's job.
22
+ */
23
+ /** A single bullet from a dream section, with its source for annotation. */
24
+ export interface DreamBullet {
25
+ /** Optional `[tag]` prefix at the start of the bullet (e.g. "tooling"). */
26
+ tag?: string;
27
+ /** Bullet text with tag prefix and bullet marker stripped, whitespace trimmed. */
28
+ text: string;
29
+ /** Source dream date (YYYY-MM-DD), set by `parseDreamFile` from the filename. */
30
+ sourceDate: string;
31
+ }
32
+ /** A dream file parsed into its four canonical sections. */
33
+ export interface ParsedDream {
34
+ /** YYYY-MM-DD from the filename (e.g. "2026-06-26"). */
35
+ date: string;
36
+ /** Absolute path the dream was read from. */
37
+ path: string;
38
+ lessons: DreamBullet[];
39
+ patterns: DreamBullet[];
40
+ openThreads: DreamBullet[];
41
+ /** "Tomorrow brief" — free prose, not bullets. Stored as one string or empty. */
42
+ tomorrowBrief: string;
43
+ }
44
+ /**
45
+ * Parse dream markdown content. Caller supplies the source date (preferred
46
+ * from filename for cross-OS consistency); falls back to the title line if
47
+ * the filename doesn't encode it.
48
+ */
49
+ export declare function parseDreamMarkdown(md: string, sourceDate: string): Omit<ParsedDream, 'path'>;
50
+ /** Read and parse a single dream file from disk. */
51
+ export declare function parseDreamFile(filePath: string): ParsedDream;
52
+ /**
53
+ * Load and parse every `YYYY-MM-DD.md` dream file in `<projectRoot>/dreams/`.
54
+ * Returned oldest-first (chronological), so reconciliation can iterate
55
+ * forward in time when reasoning about strengthening / conflicts.
56
+ *
57
+ * Ignores `.last.json` and `.reconciled.md` (handled separately).
58
+ * Returns `[]` if the dreams directory doesn't exist yet.
59
+ */
60
+ export declare function loadExistingDreams(projectRoot: string): ParsedDream[];
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parseDreamMarkdown = parseDreamMarkdown;
37
+ exports.parseDreamFile = parseDreamFile;
38
+ exports.loadExistingDreams = loadExistingDreams;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const SECTION_HEADERS = {
42
+ lessons: /^##\s+Lessons\s*$/i,
43
+ patterns: /^##\s+Patterns\s*$/i,
44
+ openThreads: /^##\s+Open\s+threads\s*$/i,
45
+ tomorrowBrief: /^##\s+Tomorrow\s+brief\s*$/i,
46
+ };
47
+ /** Match a bullet line: `- text`, `* text`, optionally indented. */
48
+ const BULLET_RE = /^\s*[-*]\s+(.*)$/;
49
+ /** Match a `[tag]` prefix at the very start of bullet text. */
50
+ const TAG_RE = /^\[([^\]]+)\]\s*(.*)$/;
51
+ /** Match the "# Dream — DATE" title line (em dash or plain hyphen). */
52
+ const TITLE_RE = /^#\s+Dream\s*[—–-]\s*(\d{4}-\d{2}-\d{2})/;
53
+ function extractDateFromFilename(filePath) {
54
+ const base = path.basename(filePath, '.md');
55
+ const m = base.match(/^(\d{4}-\d{2}-\d{2})$/);
56
+ return m ? m[1] : '';
57
+ }
58
+ function extractDateFromContent(md) {
59
+ for (const line of md.split(/\r?\n/)) {
60
+ const m = line.match(TITLE_RE);
61
+ if (m)
62
+ return m[1];
63
+ }
64
+ return '';
65
+ }
66
+ function parseBullet(line, sourceDate) {
67
+ const m = line.match(BULLET_RE);
68
+ if (!m)
69
+ return null;
70
+ const body = m[1].trim();
71
+ if (!body)
72
+ return null;
73
+ const tagMatch = body.match(TAG_RE);
74
+ if (tagMatch) {
75
+ const tag = tagMatch[1].trim();
76
+ const text = tagMatch[2].trim();
77
+ if (!text) {
78
+ // `- [tag]` with no actual content — treat as untagged with the tag as text
79
+ return { text: `[${tag}]`, sourceDate };
80
+ }
81
+ return { tag, text, sourceDate };
82
+ }
83
+ return { text: body, sourceDate };
84
+ }
85
+ /**
86
+ * Parse dream markdown content. Caller supplies the source date (preferred
87
+ * from filename for cross-OS consistency); falls back to the title line if
88
+ * the filename doesn't encode it.
89
+ */
90
+ function parseDreamMarkdown(md, sourceDate) {
91
+ const date = sourceDate || extractDateFromContent(md);
92
+ const lines = md.split(/\r?\n/);
93
+ const sections = {
94
+ lessons: [],
95
+ patterns: [],
96
+ openThreads: [],
97
+ tomorrowBrief: [],
98
+ };
99
+ let current = null;
100
+ for (const line of lines) {
101
+ // Detect section transitions.
102
+ let matched = null;
103
+ for (const [key, re] of Object.entries(SECTION_HEADERS)) {
104
+ if (re.test(line)) {
105
+ matched = key;
106
+ break;
107
+ }
108
+ }
109
+ if (matched) {
110
+ current = matched;
111
+ continue;
112
+ }
113
+ // Any other `##` heading ends the current section.
114
+ if (/^##\s+/.test(line)) {
115
+ current = null;
116
+ continue;
117
+ }
118
+ if (current)
119
+ sections[current].push(line);
120
+ }
121
+ const lessons = [];
122
+ const patterns = [];
123
+ const openThreads = [];
124
+ for (const line of sections.lessons) {
125
+ const b = parseBullet(line, date);
126
+ if (b)
127
+ lessons.push(b);
128
+ }
129
+ for (const line of sections.patterns) {
130
+ const b = parseBullet(line, date);
131
+ if (b)
132
+ patterns.push(b);
133
+ }
134
+ for (const line of sections.openThreads) {
135
+ const b = parseBullet(line, date);
136
+ if (b)
137
+ openThreads.push(b);
138
+ }
139
+ // Tomorrow brief is free prose — join non-empty lines.
140
+ const tomorrowBrief = sections.tomorrowBrief
141
+ .map(l => l.trim())
142
+ .filter(Boolean)
143
+ .join(' ')
144
+ .trim();
145
+ return { date, lessons, patterns, openThreads, tomorrowBrief };
146
+ }
147
+ /** Read and parse a single dream file from disk. */
148
+ function parseDreamFile(filePath) {
149
+ const md = fs.readFileSync(filePath, 'utf8');
150
+ const sourceDate = extractDateFromFilename(filePath) || extractDateFromContent(md);
151
+ const parsed = parseDreamMarkdown(md, sourceDate);
152
+ return { ...parsed, path: filePath };
153
+ }
154
+ /**
155
+ * Load and parse every `YYYY-MM-DD.md` dream file in `<projectRoot>/dreams/`.
156
+ * Returned oldest-first (chronological), so reconciliation can iterate
157
+ * forward in time when reasoning about strengthening / conflicts.
158
+ *
159
+ * Ignores `.last.json` and `.reconciled.md` (handled separately).
160
+ * Returns `[]` if the dreams directory doesn't exist yet.
161
+ */
162
+ function loadExistingDreams(projectRoot) {
163
+ const dir = path.join(projectRoot, 'dreams');
164
+ let entries;
165
+ try {
166
+ entries = fs.readdirSync(dir);
167
+ }
168
+ catch {
169
+ return [];
170
+ }
171
+ const dreamFiles = entries
172
+ .filter(name => /^\d{4}-\d{2}-\d{2}\.md$/.test(name))
173
+ .sort(); // lexical sort works for ISO dates
174
+ return dreamFiles.map(name => parseDreamFile(path.join(dir, name)));
175
+ }
176
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/dream/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import type { LLMProvider } from '../providers/types.js';
2
+ import type { ParsedDream } from './parser.js';
3
+ /**
4
+ * Dream reconciliation — the "sleep-time compute" layer.
5
+ *
6
+ * Takes all parsed dreams (from parser.ts's `loadExistingDreams`) and
7
+ * produces a RECONCILED VIEW: a single `.reconciled.md` file containing
8
+ * the agent's current best understanding, with annotations showing where
9
+ * each belief came from and how it evolved.
10
+ *
11
+ * Six verdicts:
12
+ * KEEP — unique claim, no conflict, retained as-is.
13
+ * STRENGTHEN — same claim appeared across multiple dreams. Confidence up.
14
+ * MERGE — two related-but-distinct claims combined into one.
15
+ * SUPERSEDE — newer claim replaces an older one.
16
+ * CONFLICT — two claims contradict each other. Both surfaced, not resolved.
17
+ * DROP — exact duplicate or obsolete. Removed from the projection.
18
+ *
19
+ * Confidence is MECHANICAL, not model-generated:
20
+ * confidence = (number of source dreams contributing to this bullet) / totalDreams
21
+ * This makes the number defensible. A model-generated "0.72" is theater;
22
+ * "appears in 8 of 14 dreams → 0.57" is data.
23
+ *
24
+ * Output: `dreams/.reconciled.md` — a projection, not a replacement.
25
+ * Old dream files stay untouched (append-only audit trail).
26
+ *
27
+ * The reconciliation log is also appended to today's dream file as a
28
+ * `## Reconciliation` section for traceability.
29
+ */
30
+ export type VerdictAction = 'KEEP' | 'STRENGTHEN' | 'MERGE' | 'SUPERSEDE' | 'CONFLICT' | 'DROP';
31
+ export interface ReconciledBullet {
32
+ section: 'lessons' | 'patterns' | 'openThreads';
33
+ tag?: string;
34
+ text: string;
35
+ action: VerdictAction;
36
+ /** Human-readable lineage, e.g. "from 2026-06-24, strengthened 2026-06-26" */
37
+ annotation: string;
38
+ sourceDates: string[];
39
+ /** Mechanical: sourceDates.length / totalDreams. */
40
+ confidence: number;
41
+ /** For CONFLICT: the opposing claim and its date. */
42
+ conflictsWith?: {
43
+ text: string;
44
+ date: string;
45
+ };
46
+ }
47
+ export interface ReconciliationResult {
48
+ bullets: ReconciledBullet[];
49
+ totalDreams: number;
50
+ /** Markdown string written to .reconciled.md (also returned for appending to dream file). */
51
+ reconciledMd: string;
52
+ /** Compact log appended to today's dream file. */
53
+ logSection: string;
54
+ }
55
+ /**
56
+ * Run memory reconciliation across all existing dreams.
57
+ *
58
+ * Called by `runDream()` after the new dream is written, gated at ≥3 dreams.
59
+ * If this fails, the dream file is still intact — reconciliation is
60
+ * enhancement, not critical path.
61
+ *
62
+ * @returns The result, or null if reconciliation was skipped or failed.
63
+ */
64
+ export declare function reconcileDreams(opts: {
65
+ projectRoot: string;
66
+ provider: LLMProvider;
67
+ /** Pre-loaded dreams (avoids re-reading disk). */
68
+ dreams: ParsedDream[];
69
+ }): Promise<ReconciliationResult | null>;