@rubytech/create-maxy-code 0.1.132 → 0.1.140

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 (161) hide show
  1. package/dist/__tests__/installer-specialist-registration.test.js +5 -40
  2. package/dist/index.js +24 -28
  3. package/dist/specialist-registration.js +0 -15
  4. package/package.json +1 -1
  5. package/payload/platform/config/brand.json +1 -1
  6. package/payload/platform/lib/graph-search/dist/boosts.d.ts +39 -0
  7. package/payload/platform/lib/graph-search/dist/boosts.d.ts.map +1 -0
  8. package/payload/platform/lib/graph-search/dist/boosts.js +57 -0
  9. package/payload/platform/lib/graph-search/dist/boosts.js.map +1 -0
  10. package/payload/platform/lib/graph-search/dist/dedup.d.ts +29 -0
  11. package/payload/platform/lib/graph-search/dist/dedup.d.ts.map +1 -0
  12. package/payload/platform/lib/graph-search/dist/dedup.js +97 -0
  13. package/payload/platform/lib/graph-search/dist/dedup.js.map +1 -0
  14. package/payload/platform/lib/graph-search/dist/index.d.ts +70 -8
  15. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -1
  16. package/payload/platform/lib/graph-search/dist/index.js +323 -62
  17. package/payload/platform/lib/graph-search/dist/index.js.map +1 -1
  18. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts +37 -0
  19. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts.map +1 -0
  20. package/payload/platform/lib/graph-search/dist/query-expansion.js +101 -0
  21. package/payload/platform/lib/graph-search/dist/query-expansion.js.map +1 -0
  22. package/payload/platform/lib/graph-search/dist/route.d.ts +29 -0
  23. package/payload/platform/lib/graph-search/dist/route.d.ts.map +1 -0
  24. package/payload/platform/lib/graph-search/dist/route.js +53 -0
  25. package/payload/platform/lib/graph-search/dist/route.js.map +1 -0
  26. package/payload/platform/lib/graph-search/dist/rrf-fusion.d.ts +31 -0
  27. package/payload/platform/lib/graph-search/dist/rrf-fusion.d.ts.map +1 -0
  28. package/payload/platform/lib/graph-search/dist/rrf-fusion.js +57 -0
  29. package/payload/platform/lib/graph-search/dist/rrf-fusion.js.map +1 -0
  30. package/payload/platform/lib/graph-search/src/__tests__/boosts.test.ts +59 -0
  31. package/payload/platform/lib/graph-search/src/__tests__/dedup.test.ts +83 -0
  32. package/payload/platform/lib/graph-search/src/__tests__/query-expansion.test.ts +96 -0
  33. package/payload/platform/lib/graph-search/src/__tests__/route.test.ts +62 -0
  34. package/payload/platform/lib/graph-search/src/__tests__/rrf-fusion.test.ts +39 -0
  35. package/payload/platform/lib/graph-search/src/boosts.ts +61 -0
  36. package/payload/platform/lib/graph-search/src/dedup.ts +108 -0
  37. package/payload/platform/lib/graph-search/src/index.ts +407 -65
  38. package/payload/platform/lib/graph-search/src/query-expansion.ts +129 -0
  39. package/payload/platform/lib/graph-search/src/route.ts +70 -0
  40. package/payload/platform/lib/graph-search/src/rrf-fusion.ts +62 -0
  41. package/payload/platform/lib/obsidian-parser/dist/index.d.ts +98 -0
  42. package/payload/platform/lib/obsidian-parser/dist/index.d.ts.map +1 -0
  43. package/payload/platform/lib/obsidian-parser/dist/index.js +480 -0
  44. package/payload/platform/lib/obsidian-parser/dist/index.js.map +1 -0
  45. package/payload/platform/lib/obsidian-parser/src/index.ts +572 -0
  46. package/payload/platform/lib/obsidian-parser/tsconfig.json +8 -0
  47. package/payload/platform/neo4j/schema.cypher +86 -1
  48. package/payload/platform/package.json +2 -2
  49. package/payload/platform/plugins/.claude-plugin/marketplace.json +10 -0
  50. package/payload/platform/plugins/admin/hooks/session-end-retrospective.sh +4 -2
  51. package/payload/platform/plugins/admin/mcp/dist/index.js +6 -4
  52. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  53. package/payload/platform/plugins/docs/references/internals.md +36 -10
  54. package/payload/platform/plugins/docs/references/neo4j.md +63 -0
  55. package/payload/platform/plugins/docs/references/plugins-guide.md +2 -0
  56. package/payload/platform/plugins/docs/references/session-retrospective.md +11 -4
  57. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.js +2 -2
  58. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.js.map +1 -1
  59. package/payload/platform/plugins/memory/PLUGIN.md +3 -0
  60. package/payload/platform/plugins/memory/mcp/dist/index.js +203 -7
  61. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  62. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.d.ts +2 -0
  63. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.d.ts.map +1 -0
  64. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.js +25 -0
  65. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.js.map +1 -0
  66. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.d.ts +2 -0
  67. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.d.ts.map +1 -0
  68. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js +70 -0
  69. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js.map +1 -0
  70. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.d.ts +2 -0
  71. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.d.ts.map +1 -0
  72. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js +50 -0
  73. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js.map +1 -0
  74. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +33 -0
  75. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +1 -0
  76. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +99 -0
  77. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +1 -0
  78. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +21 -0
  79. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -1
  80. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +24 -0
  81. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -1
  82. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts +13 -0
  83. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts.map +1 -0
  84. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js +151 -0
  85. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js.map +1 -0
  86. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts +55 -0
  87. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts.map +1 -0
  88. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js +290 -0
  89. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js.map +1 -0
  90. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts +19 -0
  91. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -0
  92. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +102 -0
  93. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -0
  94. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +18 -1
  95. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -1
  96. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +5 -0
  97. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +1 -1
  98. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +2 -0
  99. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +1 -1
  100. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts +64 -1
  101. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
  102. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +258 -0
  103. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
  104. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -1
  105. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +14 -0
  106. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -1
  107. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts +29 -0
  108. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts.map +1 -0
  109. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js +22 -0
  110. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js.map +1 -0
  111. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +31 -1
  112. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
  113. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +182 -50
  114. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
  115. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  116. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +76 -1
  117. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  118. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.d.ts +127 -0
  119. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.d.ts.map +1 -0
  120. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.js +477 -0
  121. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.js.map +1 -0
  122. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts +30 -0
  123. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map +1 -0
  124. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js +129 -0
  125. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js.map +1 -0
  126. package/payload/platform/plugins/memory/mcp/scripts/backfill-typed-edges.ts +72 -0
  127. package/payload/platform/plugins/memory/mcp/scripts/generate-edge-docs.ts +75 -0
  128. package/payload/platform/plugins/memory/mcp/vitest.config.ts +5 -0
  129. package/payload/platform/plugins/memory/references/schema-base.md +44 -0
  130. package/payload/platform/plugins/notion-import/.claude-plugin/plugin.json +8 -0
  131. package/payload/platform/plugins/notion-import/PLUGIN.md +27 -0
  132. package/payload/platform/plugins/notion-import/skills/notion-import/SKILL.md +110 -0
  133. package/payload/platform/plugins/notion-import/skills/notion-import/references/attachments.md +55 -0
  134. package/payload/platform/plugins/notion-import/skills/notion-import/references/databases.md +81 -0
  135. package/payload/platform/plugins/notion-import/skills/notion-import/references/page-tree.md +61 -0
  136. package/payload/platform/plugins/notion-import/skills/notion-import/references/workspace-export.md +41 -0
  137. package/payload/platform/plugins/obsidian-import/.claude-plugin/plugin.json +8 -0
  138. package/payload/platform/plugins/obsidian-import/PLUGIN.md +39 -0
  139. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/SKILL.md +92 -0
  140. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/attachments.md +80 -0
  141. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/daily-notes.md +31 -0
  142. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/vault-structure.md +46 -0
  143. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/wikilinks.md +70 -0
  144. package/payload/platform/scripts/seed-neo4j.sh +49 -0
  145. package/payload/platform/templates/agents/admin/IDENTITY.md +4 -3
  146. package/payload/platform/templates/specialists/agents/database-operator.md +21 -1
  147. package/payload/server/{adminuser-self-heal-QAWOZ3JV.js → adminuser-self-heal-YC47O34W.js} +2 -1
  148. package/payload/server/{chunk-JSBRDJBE.js → chunk-HYQNUVGO.js} +9 -1
  149. package/payload/server/{chunk-HCYM5FLU.js → chunk-T3DJD5QR.js} +3 -1
  150. package/payload/server/maxy-edge.js +3 -2
  151. package/payload/server/public/assets/{admin-FcRHAL-3.js → admin-BM9aXUUh.js} +1 -1
  152. package/payload/server/public/assets/{data-Ds37mflX.js → data-Ds2ECtfP.js} +1 -1
  153. package/payload/server/public/assets/{graph-CmWRhaiS.js → graph-BzxObKMM.js} +1 -1
  154. package/payload/server/public/assets/{graph-labels-Ch2r00Gt.js → graph-labels-Dwgep_nr.js} +1 -1
  155. package/payload/server/public/assets/{page-BcHhJXUt.js → page-BlkBsjP2.js} +1 -1
  156. package/payload/server/public/assets/page-h_SA5SVQ.js +51 -0
  157. package/payload/server/public/data.html +3 -3
  158. package/payload/server/public/graph.html +3 -3
  159. package/payload/server/public/index.html +4 -4
  160. package/payload/server/server.js +803 -76
  161. package/payload/server/public/assets/page-BOtNny_4.js +0 -51
@@ -6,8 +6,8 @@
6
6
  "services/*"
7
7
  ],
8
8
  "scripts": {
9
- "build": "tsc -p lib/models/tsconfig.json && tsc -p lib/oauth-llm/tsconfig.json && tsc -p lib/mcp-stderr-tee/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/screening-patterns/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p services/claude-session-manager/tsconfig.json && NODE_OPTIONS='--max-old-space-size=8192' tsc -b plugins/*/mcp/tsconfig.json",
10
- "build:lib": "tsc -p lib/models/tsconfig.json && tsc -p lib/oauth-llm/tsconfig.json && tsc -p lib/mcp-stderr-tee/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/screening-patterns/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json",
9
+ "build": "tsc -p lib/models/tsconfig.json && tsc -p lib/oauth-llm/tsconfig.json && tsc -p lib/mcp-stderr-tee/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/screening-patterns/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p lib/obsidian-parser/tsconfig.json && tsc -p services/claude-session-manager/tsconfig.json && NODE_OPTIONS='--max-old-space-size=8192' tsc -b plugins/*/mcp/tsconfig.json",
10
+ "build:lib": "tsc -p lib/models/tsconfig.json && tsc -p lib/oauth-llm/tsconfig.json && tsc -p lib/mcp-stderr-tee/tsconfig.json && tsc -p lib/mcp-spawn-tee/tsconfig.json && tsc -p lib/mcp-eager/tsconfig.json && tsc -p lib/account-enumeration/tsconfig.json && tsc -p lib/graph-write/tsconfig.json && tsc -p lib/graph-mcp/tsconfig.json && tsc -p lib/graph-trash/tsconfig.json && tsc -p lib/admin-conversation-purge/tsconfig.json && tsc -p lib/graph-search/tsconfig.json && tsc -p lib/graph-style/tsconfig.json && tsc -p lib/screening-patterns/tsconfig.json && tsc -p lib/device-url/tsconfig.json && tsc -p lib/brand-templating/tsconfig.json && tsc -p lib/entitlement/tsconfig.json && tsc -p lib/task-secrets/tsconfig.json && tsc -p lib/admins-write/tsconfig.json && tsc -p lib/persistent-components/tsconfig.json && tsc -p lib/require-port-env/tsconfig.json && tsc -p lib/aeo-llms-txt-writer/tsconfig.json && tsc -p lib/obsidian-parser/tsconfig.json",
11
11
  "build:memory": "tsc -p plugins/memory/mcp/tsconfig.json",
12
12
  "build:contacts": "tsc -p plugins/contacts/mcp/tsconfig.json",
13
13
  "build:telegram": "tsc -p plugins/telegram/mcp/tsconfig.json",
@@ -64,6 +64,16 @@
64
64
  "source": "./memory",
65
65
  "version": "0.1.0"
66
66
  },
67
+ {
68
+ "name": "notion-import",
69
+ "source": "./notion-import",
70
+ "version": "0.1.0"
71
+ },
72
+ {
73
+ "name": "obsidian-import",
74
+ "source": "./obsidian-import",
75
+ "version": "0.1.0"
76
+ },
67
77
  {
68
78
  "name": "outlook",
69
79
  "source": "./outlook",
@@ -254,7 +254,7 @@ fi
254
254
  emit_log "gate-blocked sessionId=${SESSION_ID} reason=sentinel-absent"
255
255
 
256
256
  cat >&2 <<'INSTRUCTION'
257
- The operator signalled session end. Before this session can close, run the three-pass retrospective inside this same admin session — do not spawn a new session, do not background anything. Use the tools you already have.
257
+ The operator signalled session end. Before this session can close, run the four-pass retrospective inside this same admin session — do not spawn a new session, do not background anything. Use the tools you already have.
258
258
 
259
259
  Pass 1 — Technical learnings. Walk this session for operator corrections and self-detected mistakes. For each one, delegate one graph write to `database-operator` via the Task tool, persisting a Learning or Correction node per the schema. Count what you write.
260
260
 
@@ -262,7 +262,9 @@ Pass 2 — Operator-relationship updates. Walk this session for tonal signals, r
262
262
 
263
263
  Pass 3 — Graph completeness sweep. Walk this session for any node, edge, or commitment that was discussed but not written to the graph in-flight. For each missing write, delegate to `database-operator` via the Task tool. Count what you write.
264
264
 
265
- Then call `session-retrospective-mark-complete` with the three counts and reply with one short paragraph in your house voice summarising what you wrote.
265
+ Pass 4 — Typed-edge auto-extraction. Delegate to `database-operator` via the Task tool with a prompt naming the typed-edge pass and the session-start timestamp. The specialist calls `memory-typed-edge-pass` with that timestamp and returns the counters. Capture `nodesProcessed` and the accepted count from its reply.
266
+
267
+ Then call `session-retrospective-mark-complete` with all five counts (learningsCount, preferencesCount, graphWriteCount, typedEdgesCount, nodesProcessed) and reply with one short paragraph in your house voice summarising what you wrote.
266
268
  INSTRUCTION
267
269
 
268
270
  exit 2
@@ -3094,13 +3094,15 @@ eagerTool(server, "action-edit", "Edit a pending action's input and then execute
3094
3094
  // trigger → gate-blocked → complete → gate-released
3095
3095
  // against one operator sessionId. The release decision itself is the
3096
3096
  // JSONL grep — never the log line.
3097
- server.tool("session-retrospective-mark-complete", "Marks the end-of-session retrospective complete. Call this AFTER walking the session for technical learnings, operator-relationship updates, and missing graph writes and persisting each one (Task-tool delegations to database-operator for graph writes, Write to SOUL.md for tonal updates). The counts you pass are the number of items you actually persisted in each pass. The session-end Stop hook gate releases on the presence of this tool_use in the transcript — calling it is the deterministic signal that the retrospective ran.", {
3097
+ server.tool("session-retrospective-mark-complete", "Marks the end-of-session retrospective complete. Call this AFTER walking the session for technical learnings, operator-relationship updates, missing graph writes, and the typed-edge auto-extraction pass — and persisting each one (Task-tool delegations to database-operator for graph writes and the typed-edge pass, Write to SOUL.md for tonal updates). The counts you pass are the number of items you actually persisted in each pass. The session-end Stop hook gate releases on the presence of this tool_use in the transcript — calling it is the deterministic signal that the retrospective ran.", {
3098
3098
  learningsCount: z.number().int().nonnegative().describe("Technical-learning / correction nodes you delegated to database-operator in this retrospective."),
3099
3099
  preferencesCount: z.number().int().nonnegative().describe("SOUL.md writes you made for tonal / working-style observations in this retrospective."),
3100
3100
  graphWriteCount: z.number().int().nonnegative().describe("Graph nodes/edges/commitments you delegated to database-operator for content that surfaced in the session but was not written in-flight."),
3101
- }, async ({ learningsCount, preferencesCount, graphWriteCount }) => {
3101
+ typedEdgesCount: z.number().int().nonnegative().describe("Typed edges accepted (MERGEd) by the typed-edge auto-extraction pass that database-operator ran in this retrospective. 0 is valid (no prose nodes touched or none yielded edges)."),
3102
+ nodesProcessed: z.number().int().nonnegative().describe("Prose-bearing nodes the typed-edge pass enumerated and scanned in this retrospective. 0 is valid (no prose nodes since the session started)."),
3103
+ }, async ({ learningsCount, preferencesCount, graphWriteCount, typedEdgesCount, nodesProcessed }) => {
3102
3104
  const sessionId = process.env.SESSION_ID || "unknown";
3103
- const line = `complete sessionId=${sessionId} learningsCount=${learningsCount} preferencesCount=${preferencesCount} graphWriteCount=${graphWriteCount}`;
3105
+ const line = `complete sessionId=${sessionId} learningsCount=${learningsCount} preferencesCount=${preferencesCount} graphWriteCount=${graphWriteCount} typedEdgesCount=${typedEdgesCount} nodesProcessed=${nodesProcessed}`;
3104
3106
  if (!PLATFORM_PORT) {
3105
3107
  // Module-init deliberately tolerates a missing PLATFORM_PORT
3106
3108
  // (lines ~62-71) so the MCP server does not loud-fail on plugin-
@@ -3131,7 +3133,7 @@ server.tool("session-retrospective-mark-complete", "Marks the end-of-session ret
3131
3133
  return {
3132
3134
  content: [{
3133
3135
  type: "text",
3134
- text: `Retrospective marked complete (learnings=${learningsCount} preferences=${preferencesCount} graphWrites=${graphWriteCount}). Session is now free to end.`,
3136
+ text: `Retrospective marked complete (learnings=${learningsCount} preferences=${preferencesCount} graphWrites=${graphWriteCount} typedEdges=${typedEdgesCount} nodesProcessed=${nodesProcessed}). Session is now free to end.`,
3135
3137
  }],
3136
3138
  };
3137
3139
  });