crewly 1.11.3 → 1.11.5

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 (171) hide show
  1. package/config/skills/agent/core/accept-task/SKILL.md +35 -7
  2. package/config/skills/agent/core/poll-tasks/execute.sh +44 -9
  3. package/config/skills/agent/core/poll-tasks/execute.test.sh +98 -0
  4. package/config/skills/agent/core/record-learning/execute.sh +92 -3
  5. package/config/skills/agent/core/register-self/SKILL.md +51 -8
  6. package/config/skills/agent/transcribe-audio/SKILL.md +110 -0
  7. package/config/skills/agent/transcribe-audio/execute.sh +223 -0
  8. package/config/skills/agent/transcribe-audio/instructions.md +92 -0
  9. package/config/skills/agent/transcribe-audio/skill.json +22 -0
  10. package/config/skills/orchestrator/assign-task/SKILL.md +40 -6
  11. package/config/skills/orchestrator/broadcast/SKILL.md +45 -8
  12. package/dist/backend/backend/src/constants.d.ts +0 -16
  13. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  14. package/dist/backend/backend/src/constants.js +0 -16
  15. package/dist/backend/backend/src/constants.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/memory/memory.controller.js +3 -10
  18. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  19. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  20. package/dist/backend/backend/src/controllers/system/system.controller.js +24 -5
  21. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  22. package/dist/backend/backend/src/index.d.ts +2 -0
  23. package/dist/backend/backend/src/index.d.ts.map +1 -1
  24. package/dist/backend/backend/src/index.js +124 -1
  25. package/dist/backend/backend/src/index.js.map +1 -1
  26. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  27. package/dist/backend/backend/src/routes/api.routes.js +0 -3
  28. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  29. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/agent-registration.service.js +56 -20
  31. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -0
  33. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -0
  35. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  36. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +2 -0
  38. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  39. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts +79 -0
  40. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.d.ts.map +1 -0
  41. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js +118 -0
  42. package/dist/backend/backend/src/services/ai/prompt-modules/sop-norm-distinction.module.js.map +1 -0
  43. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts +88 -0
  44. package/dist/backend/backend/src/services/boot/boot-announce.service.d.ts.map +1 -0
  45. package/dist/backend/backend/src/services/boot/boot-announce.service.js +119 -0
  46. package/dist/backend/backend/src/services/boot/boot-announce.service.js.map +1 -0
  47. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +14 -0
  49. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/mcp-server.js +0 -6
  52. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  53. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts +97 -0
  54. package/dist/backend/backend/src/services/memory/learning-format.validator.d.ts.map +1 -0
  55. package/dist/backend/backend/src/services/memory/learning-format.validator.js +209 -0
  56. package/dist/backend/backend/src/services/memory/learning-format.validator.js.map +1 -0
  57. package/dist/backend/backend/src/services/memory/memory.service.d.ts +78 -41
  58. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/memory/memory.service.js +209 -127
  60. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/memory/project-memory.service.js +37 -9
  63. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +29 -0
  66. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +9 -0
  69. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  70. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts +86 -0
  71. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.d.ts.map +1 -0
  72. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js +214 -0
  73. package/dist/backend/backend/src/services/session/runtime-pid-registry.service.js.map +1 -0
  74. package/dist/backend/backend/src/services/sop/sop.service.d.ts +70 -2
  75. package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -1
  76. package/dist/backend/backend/src/services/sop/sop.service.js +93 -3
  77. package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -1
  78. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts +41 -0
  79. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/task-pool/claim.service.js +72 -0
  81. package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -1
  82. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
  83. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +20 -0
  85. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  86. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js +11 -0
  88. package/dist/backend/backend/src/services/telegram/telegram-orchestrator-bridge.js.map +1 -1
  89. package/dist/backend/backend/src/services/telegram/telegram.service.d.ts.map +1 -1
  90. package/dist/backend/backend/src/services/telegram/telegram.service.js +24 -2
  91. package/dist/backend/backend/src/services/telegram/telegram.service.js.map +1 -1
  92. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +18 -18
  94. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts +10 -0
  96. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  97. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +20 -12
  98. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  99. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +12 -3
  101. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +15 -5
  103. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +31 -50
  105. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +16 -0
  107. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
  108. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +20 -0
  109. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
  110. package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
  111. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  112. package/dist/backend/backend/src/types/settings.types.js +2 -0
  113. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  114. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +23 -0
  115. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  116. package/dist/backend/backend/src/types/v2/work-item.types.js +29 -0
  117. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  118. package/dist/cli/backend/src/constants.d.ts +0 -16
  119. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  120. package/dist/cli/backend/src/constants.js +0 -16
  121. package/dist/cli/backend/src/constants.js.map +1 -1
  122. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  123. package/dist/cli/backend/src/services/mcp-server.js +0 -6
  124. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  125. package/dist/cli/backend/src/services/memory/memory.service.d.ts +78 -41
  126. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  127. package/dist/cli/backend/src/services/memory/memory.service.js +209 -127
  128. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  129. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/memory/project-memory.service.js +37 -9
  131. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts +41 -0
  133. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/task-pool/claim.service.js +72 -0
  135. package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +16 -0
  137. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  138. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +20 -0
  139. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  140. package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts +57 -0
  141. package/dist/cli/backend/src/services/wiki/schema-loader.service.d.ts.map +1 -0
  142. package/dist/cli/backend/src/services/wiki/schema-loader.service.js +183 -0
  143. package/dist/cli/backend/src/services/wiki/schema-loader.service.js.map +1 -0
  144. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts +100 -0
  145. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -0
  146. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js +212 -0
  147. package/dist/cli/backend/src/services/wiki/wiki-ingest.service.js.map +1 -0
  148. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts +43 -0
  149. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.d.ts.map +1 -0
  150. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js +67 -0
  151. package/dist/cli/backend/src/services/wiki/wiki-overlay.resolver.js.map +1 -0
  152. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts +166 -0
  153. package/dist/cli/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -0
  154. package/dist/cli/backend/src/services/wiki/wiki-search.service.js +379 -0
  155. package/dist/cli/backend/src/services/wiki/wiki-search.service.js.map +1 -0
  156. package/dist/cli/backend/src/services/wiki/wiki.types.d.ts +84 -0
  157. package/dist/cli/backend/src/services/wiki/wiki.types.d.ts.map +1 -0
  158. package/dist/cli/backend/src/services/wiki/wiki.types.js +10 -0
  159. package/dist/cli/backend/src/services/wiki/wiki.types.js.map +1 -0
  160. package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
  161. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  162. package/dist/cli/backend/src/types/settings.types.js +2 -0
  163. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  164. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +23 -0
  165. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  166. package/dist/cli/backend/src/types/v2/work-item.types.js +29 -0
  167. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  168. package/frontend/dist/assets/{index-44266b5d.css → index-8205ea5e.css} +1 -1
  169. package/frontend/dist/assets/{index-4099a91c.js → index-890d3f9d.js} +289 -289
  170. package/frontend/dist/index.html +2 -2
  171. package/package.json +1 -1
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Wiki Search Service
3
+ *
4
+ * In-process full-text search across a wiki vault's `.md` files. Returns
5
+ * per-file matches with line numbers + short snippets so the UI can render
6
+ * a result list and let the user jump straight to a page.
7
+ *
8
+ * Ranking: Okapi **BM25** (term-frequency saturation via `k1`, length
9
+ * normalisation via `b`, inverse-document-frequency weighting) computed
10
+ * per request. No external index — the vaults here are O(100s) of pages so
11
+ * a per-request scan + score is fine; revisit with a persisted index when
12
+ * volumes justify it. Tokenisation is Unicode-aware: Latin word tokens plus
13
+ * individual CJK characters, so Chinese/Japanese content is searchable.
14
+ *
15
+ * Scope: walks the vault directory AND the per-team overlay sources
16
+ * (`sop/` → installed/custom SOPs, `team-norm/` → team norms) so SOP and
17
+ * norm content is searchable even though it lives outside the vault.
18
+ *
19
+ * @module services/wiki/wiki-search.service
20
+ */
21
+ import * as fs from 'fs/promises';
22
+ import * as path from 'path';
23
+ import { existsSync } from 'fs';
24
+ import { overlayRootFor } from './wiki-overlay.resolver.js';
25
+ /** Cap on how many .md files are inspected per search. */
26
+ export const WIKI_SEARCH_MAX_FILES = 500;
27
+ /** Cap on how many results returned to the caller. */
28
+ export const WIKI_SEARCH_MAX_RESULTS = 50;
29
+ /** Cap on how many snippets surfaced per matching file. */
30
+ export const WIKI_SEARCH_MAX_SNIPPETS_PER_FILE = 3;
31
+ /** Maximum query length — guards against pathological input. */
32
+ export const WIKI_SEARCH_MAX_QUERY_LENGTH = 200;
33
+ /** Cap on per-file size we will read; larger files are skipped. */
34
+ export const WIKI_SEARCH_MAX_FILE_BYTES = 256 * 1024;
35
+ /** BM25 term-frequency saturation parameter (standard default). */
36
+ const BM25_K1 = 1.2;
37
+ /** BM25 length-normalisation parameter (standard default). */
38
+ const BM25_B = 0.75;
39
+ /** Weight applied to filename/title tokens when folded into a doc's terms. */
40
+ const FILENAME_TOKEN_WEIGHT = 3;
41
+ /**
42
+ * Tokenise text into searchable terms: lowercase Latin word runs
43
+ * (`[a-z0-9]+`) plus individual CJK characters (Han, Hiragana, Katakana),
44
+ * so both English and Chinese/Japanese content is matched.
45
+ *
46
+ * @param text - Raw text to tokenise.
47
+ * @returns Array of lowercase tokens (order preserved, duplicates kept).
48
+ */
49
+ export function tokenize(text) {
50
+ const lower = text.toLowerCase();
51
+ const latin = lower.match(/[a-z0-9]+/g) ?? [];
52
+ const cjk = lower.match(/[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff]/g) ?? [];
53
+ return [...latin, ...cjk];
54
+ }
55
+ /** Whether a query term is a Latin word (eligible for prefix matching). */
56
+ function isLatin(term) {
57
+ return /^[a-z0-9]+$/.test(term);
58
+ }
59
+ /**
60
+ * Does a document token satisfy a query term? Exact match always; for Latin
61
+ * query terms of length ≥ 3 a prefix match also counts (so `deploy` finds
62
+ * `deployment`), preserving the leniency of the old substring search.
63
+ */
64
+ function tokenMatches(docToken, queryTerm) {
65
+ if (docToken === queryTerm)
66
+ return true;
67
+ if (queryTerm.length >= 3 && isLatin(queryTerm) && docToken.startsWith(queryTerm)) {
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Service exposing `search()`. Stateless singleton — matches the pattern of
74
+ * the other wiki services (`WikiBookkeepService.getInstance()`, etc.).
75
+ */
76
+ export class WikiSearchService {
77
+ static instance = null;
78
+ /** Singleton accessor. */
79
+ static getInstance() {
80
+ if (!this.instance)
81
+ this.instance = new WikiSearchService();
82
+ return this.instance;
83
+ }
84
+ /** Reset for tests. */
85
+ static resetInstance() {
86
+ this.instance = null;
87
+ }
88
+ /** Validate + normalise a query, or return a structured failure. */
89
+ validateQuery(raw) {
90
+ const query = (raw ?? '').trim();
91
+ if (query.length === 0) {
92
+ return { ok: false, reason: 'invalid_query', message: 'query must be at least one non-whitespace character' };
93
+ }
94
+ if (query.length > WIKI_SEARCH_MAX_QUERY_LENGTH) {
95
+ return { ok: false, reason: 'invalid_query', message: `query exceeds ${WIKI_SEARCH_MAX_QUERY_LENGTH} characters` };
96
+ }
97
+ return { query };
98
+ }
99
+ /**
100
+ * Search a single vault and rank results with BM25. Returns either
101
+ * `{ok:true, hits}` or a structured failure. Filesystem read errors are
102
+ * silently skipped so one bad file doesn't blank the whole result.
103
+ */
104
+ async search(input) {
105
+ const vaultPath = input.vaultPath;
106
+ if (!vaultPath || !path.isAbsolute(vaultPath)) {
107
+ return { ok: false, reason: 'invalid_input', message: 'vaultPath must be an absolute path' };
108
+ }
109
+ if (!existsSync(vaultPath)) {
110
+ return { ok: false, reason: 'vault_missing', message: `vault not found: ${vaultPath}` };
111
+ }
112
+ const v = this.validateQuery(input.query);
113
+ if ('ok' in v)
114
+ return v;
115
+ const refs = (await this.collectDocs(vaultPath)).map((r) => ({ vaultPath, ...r }));
116
+ const { hits, truncated } = await this._searchCorpus(refs, v.query);
117
+ return { ok: true, vaultPath, query: v.query, hits, truncated };
118
+ }
119
+ /**
120
+ * Search across MANY vaults and return one merged BM25-ranked list. IDF is
121
+ * computed over the combined corpus so scores are comparable across vaults.
122
+ * Each hit carries its owning `vaultPath` (+ `vaultLabel` when provided).
123
+ */
124
+ async searchAllVaults(input) {
125
+ const v = this.validateQuery(input.query);
126
+ if ('ok' in v)
127
+ return v;
128
+ const labelByPath = new Map();
129
+ const refs = [];
130
+ for (const vault of input.vaults) {
131
+ if (!vault.vaultPath || !existsSync(vault.vaultPath))
132
+ continue;
133
+ if (vault.label)
134
+ labelByPath.set(vault.vaultPath, vault.label);
135
+ for (const r of await this.collectDocs(vault.vaultPath)) {
136
+ refs.push({ vaultPath: vault.vaultPath, ...r });
137
+ if (refs.length >= WIKI_SEARCH_MAX_FILES)
138
+ break;
139
+ }
140
+ if (refs.length >= WIKI_SEARCH_MAX_FILES)
141
+ break;
142
+ }
143
+ const { hits, truncated } = await this._searchCorpus(refs, v.query);
144
+ for (const h of hits) {
145
+ if (h.vaultPath)
146
+ h.vaultLabel = labelByPath.get(h.vaultPath);
147
+ }
148
+ return { ok: true, vaultPath: '', query: v.query, hits, truncated };
149
+ }
150
+ /**
151
+ * BM25-rank an explicit list of documents (rather than auto-collecting the
152
+ * whole vault). Lets callers that need their own eligibility rules — e.g. the
153
+ * `wiki-query` skill, which ranks only `llm-curated/` pages and skips
154
+ * `log.md` — reuse the exact same Okapi BM25 scoring with IDF computed over
155
+ * precisely the documents they supply.
156
+ *
157
+ * @param vaultPath - Owning vault (stamped on each hit's `vaultPath`).
158
+ * @param docs - Candidate documents as `{ relativePath, absPath }`.
159
+ * @param query - Raw query string (validated/normalised here).
160
+ * @returns BM25-ranked hits, or an empty array for an invalid/empty query.
161
+ */
162
+ async searchCorpus(vaultPath, docs, query) {
163
+ const v = this.validateQuery(query);
164
+ if ('ok' in v)
165
+ return [];
166
+ const refs = docs.map((d) => ({ vaultPath, ...d }));
167
+ const { hits } = await this._searchCorpus(refs, v.query);
168
+ return hits;
169
+ }
170
+ /**
171
+ * Core BM25 search over an arbitrary corpus of doc refs (one or many vaults).
172
+ * Builds the combined corpus statistics, scores, ranks, and attaches snippets
173
+ * for the top results. Each hit carries its owning `vaultPath`.
174
+ */
175
+ async _searchCorpus(docRefs, query) {
176
+ const queryTerms = Array.from(new Set(tokenize(query)));
177
+ const needleLower = query.toLowerCase();
178
+ const truncatedFiles = docRefs.length >= WIKI_SEARCH_MAX_FILES;
179
+ const slice = docRefs.slice(0, WIKI_SEARCH_MAX_FILES);
180
+ // Pass 1: read + tokenise each doc, accumulate query-term frequencies + length.
181
+ const docs = [];
182
+ for (const ref of slice) {
183
+ const doc = await this.statDoc(ref, queryTerms);
184
+ if (doc)
185
+ docs.push(doc);
186
+ }
187
+ if (queryTerms.length === 0)
188
+ return { hits: [], truncated: truncatedFiles };
189
+ const N = docs.length || 1;
190
+ const avgdl = docs.reduce((s, d) => s + d.length, 0) / N || 1;
191
+ // Document frequency per query term, then IDF (always positive).
192
+ const idf = new Map();
193
+ for (const term of queryTerms) {
194
+ let n = 0;
195
+ for (const d of docs)
196
+ if ((d.termFreq.get(term) ?? 0) > 0)
197
+ n++;
198
+ idf.set(term, Math.log(1 + (N - n + 0.5) / (n + 0.5)));
199
+ }
200
+ const scored = docs
201
+ .map((d) => ({ doc: d, score: this.bm25Score(d, queryTerms, idf, avgdl) }))
202
+ .filter((s) => s.score > 0);
203
+ // Rank: filename/title matches first, then BM25 score, then path for stability.
204
+ scored.sort((a, b) => {
205
+ if (a.doc.filenameMatch !== b.doc.filenameMatch)
206
+ return a.doc.filenameMatch ? -1 : 1;
207
+ if (b.score !== a.score)
208
+ return b.score - a.score;
209
+ return a.doc.relativePath.localeCompare(b.doc.relativePath);
210
+ });
211
+ const truncatedResults = scored.length > WIKI_SEARCH_MAX_RESULTS;
212
+ const top = scored.slice(0, WIKI_SEARCH_MAX_RESULTS);
213
+ // Pass 2: build snippets only for the top results (re-read those files).
214
+ const hits = [];
215
+ for (const { doc, score } of top) {
216
+ const { matchCount, snippets } = await this.buildSnippets(doc.absPath, queryTerms, needleLower);
217
+ hits.push({
218
+ relativePath: doc.relativePath,
219
+ filenameMatch: doc.filenameMatch,
220
+ matchCount,
221
+ score: Math.round(score * 1000) / 1000,
222
+ snippets,
223
+ vaultPath: doc.vaultPath,
224
+ });
225
+ }
226
+ return { hits, truncated: truncatedFiles || truncatedResults };
227
+ }
228
+ /**
229
+ * Collect candidate `.md` documents: the vault tree plus the per-team
230
+ * overlay sources (`sop/`, `team-norm/`). Overlay paths are prefixed with
231
+ * the folder name so they resolve back through the page endpoint.
232
+ *
233
+ * @param vaultPath - Absolute vault root.
234
+ * @returns Deduped list of `{ relativePath, absPath }`, capped at the limit.
235
+ */
236
+ async collectDocs(vaultPath) {
237
+ const seen = new Set();
238
+ const out = [];
239
+ const add = (relativePath, absPath) => {
240
+ if (seen.has(relativePath))
241
+ return;
242
+ seen.add(relativePath);
243
+ out.push({ relativePath, absPath });
244
+ };
245
+ for (const rel of await this.walkMd(vaultPath)) {
246
+ if (out.length >= WIKI_SEARCH_MAX_FILES)
247
+ return out;
248
+ add(rel, path.join(vaultPath, rel));
249
+ }
250
+ for (const folder of ['sop', 'team-norm']) {
251
+ const root = overlayRootFor(vaultPath, folder);
252
+ if (!root || !existsSync(root))
253
+ continue;
254
+ for (const rel of await this.walkMd(root)) {
255
+ if (out.length >= WIKI_SEARCH_MAX_FILES)
256
+ return out;
257
+ add(`${folder}/${rel}`, path.join(root, rel));
258
+ }
259
+ }
260
+ return out;
261
+ }
262
+ /**
263
+ * Recursively collect `.md` files under `root`, returned as root-relative
264
+ * POSIX paths. Skips dotfile dirs (`.git`, `.queue`) and stops at the cap.
265
+ */
266
+ async walkMd(root) {
267
+ const acc = [];
268
+ const walk = async (dir) => {
269
+ if (acc.length >= WIKI_SEARCH_MAX_FILES)
270
+ return;
271
+ let entries;
272
+ try {
273
+ entries = await fs.readdir(dir, { withFileTypes: true });
274
+ }
275
+ catch {
276
+ return;
277
+ }
278
+ for (const entry of entries) {
279
+ if (acc.length >= WIKI_SEARCH_MAX_FILES)
280
+ return;
281
+ if (entry.name.startsWith('.'))
282
+ continue;
283
+ const abs = path.join(dir, entry.name);
284
+ if (entry.isDirectory()) {
285
+ await walk(abs);
286
+ }
287
+ else if (entry.isFile() && entry.name.endsWith('.md')) {
288
+ acc.push(path.relative(root, abs).replace(/\\/g, '/'));
289
+ }
290
+ }
291
+ };
292
+ await walk(root);
293
+ return acc;
294
+ }
295
+ /**
296
+ * Read a doc and compute its length + per-query-term frequencies. Filename
297
+ * tokens are folded in (weighted) so title relevance contributes to BM25.
298
+ * Returns null only on unreadable/oversize files with no filename match.
299
+ */
300
+ async statDoc(ref, queryTerms) {
301
+ const { vaultPath, relativePath, absPath } = ref;
302
+ const filenameMatch = queryTerms.some((t) => relativePath.toLowerCase().includes(t));
303
+ // Filename/title tokens, folded in with a weight.
304
+ const nameTokens = tokenize(path.basename(relativePath, '.md'));
305
+ const termFreq = new Map();
306
+ let length = 0;
307
+ const tally = (tokens, weight) => {
308
+ for (const tok of tokens) {
309
+ length += weight;
310
+ for (const term of queryTerms) {
311
+ if (tokenMatches(tok, term)) {
312
+ termFreq.set(term, (termFreq.get(term) ?? 0) + weight);
313
+ }
314
+ }
315
+ }
316
+ };
317
+ tally(nameTokens, FILENAME_TOKEN_WEIGHT);
318
+ let content = '';
319
+ try {
320
+ const stat = await fs.stat(absPath);
321
+ if (stat.size <= WIKI_SEARCH_MAX_FILE_BYTES) {
322
+ content = await fs.readFile(absPath, 'utf8');
323
+ }
324
+ }
325
+ catch {
326
+ // unreadable — fall through with filename tokens only
327
+ }
328
+ if (content)
329
+ tally(tokenize(content), 1);
330
+ // Keep filename-only matches discoverable even with no body match.
331
+ if (length === 0) {
332
+ return filenameMatch ? { vaultPath, relativePath, absPath, filenameMatch, length: 1, termFreq } : null;
333
+ }
334
+ return { vaultPath, relativePath, absPath, filenameMatch, length, termFreq };
335
+ }
336
+ /**
337
+ * Standard Okapi BM25 score for a doc against the query terms.
338
+ */
339
+ bm25Score(doc, queryTerms, idf, avgdl) {
340
+ let score = 0;
341
+ for (const term of queryTerms) {
342
+ const f = doc.termFreq.get(term) ?? 0;
343
+ if (f === 0)
344
+ continue;
345
+ const denom = f + BM25_K1 * (1 - BM25_B + (BM25_B * doc.length) / avgdl);
346
+ score += (idf.get(term) ?? 0) * ((f * (BM25_K1 + 1)) / denom);
347
+ }
348
+ return score;
349
+ }
350
+ /**
351
+ * Re-read a top-ranked file and extract matching-line snippets (a line
352
+ * matches when it contains any query term as a substring). Returns the
353
+ * total content match count + up to the snippet cap.
354
+ */
355
+ async buildSnippets(absPath, queryTerms, needleLower) {
356
+ let content;
357
+ try {
358
+ content = await fs.readFile(absPath, 'utf8');
359
+ }
360
+ catch {
361
+ return { matchCount: 0, snippets: [] };
362
+ }
363
+ const lines = content.split(/\r?\n/);
364
+ const snippets = [];
365
+ let matchCount = 0;
366
+ for (let i = 0; i < lines.length; i++) {
367
+ const lineLower = lines[i].toLowerCase();
368
+ const matched = lineLower.includes(needleLower) || queryTerms.some((t) => lineLower.includes(t));
369
+ if (matched) {
370
+ matchCount++;
371
+ if (snippets.length < WIKI_SEARCH_MAX_SNIPPETS_PER_FILE) {
372
+ snippets.push({ lineNumber: i + 1, text: lines[i].trim().slice(0, 300) });
373
+ }
374
+ }
375
+ }
376
+ return { matchCount, snippets };
377
+ }
378
+ }
379
+ //# sourceMappingURL=wiki-search.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiki-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki-search.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * LLM-Wiki shared types.
3
+ *
4
+ * Mirrors the SCHEMA.md YAML shape defined in
5
+ * .crewly/specs/2026-05-22-atlas-crewly-llm-wiki-v2-three-scope.md §2.
6
+ *
7
+ * @module services/wiki/wiki.types
8
+ */
9
+ /**
10
+ * The three vault scopes per v2.1 §1.
11
+ *
12
+ * - `team`: ~/.crewly/teams/<team-id>/wiki/ (cross-project team norms)
13
+ * - `project`: <project-root>/.crewly/wiki/ (project-scoped knowledge)
14
+ * - `global`: ~/.crewly/global-wiki/ (ORC cross-project synthesis)
15
+ */
16
+ export type VaultScope = 'team' | 'project' | 'global';
17
+ /**
18
+ * A symbolic `referenced_by:` entry in SCHEMA.md.
19
+ *
20
+ * Format: `<kind>:<name>` (e.g. `skill:get-sops`, `service:sop.service`).
21
+ * Resolves to an absolute filesystem path via
22
+ * {@link ReferencedByResolver.resolve} so SCHEMA.md stays portable across
23
+ * machines, users, and runtime targets.
24
+ */
25
+ export type ReferencedBySymbol = `skill:${string}` | `service:${string}`;
26
+ /**
27
+ * A folder entry inside a vault's `hardcoded:` block.
28
+ *
29
+ * Hardcoded folders are referenced by string literal from OSS code. They
30
+ * MUST NOT be moved, renamed, or restructured by `wiki-lint`.
31
+ */
32
+ export interface HardcodedFolder {
33
+ /** Folder name relative to vault root, e.g. `sop/`, `memory/`. */
34
+ path: string;
35
+ /** Always true for entries in `hardcoded:`. */
36
+ frozen: true;
37
+ /** Human description; appears in lint reports. */
38
+ description: string;
39
+ /** Symbolic refs to code that hard-codes this path. Use `skill:` / `service:`. */
40
+ referenced_by: ReferencedBySymbol[];
41
+ }
42
+ /**
43
+ * The single `llm-curated:` folder entry — LLM owns sub-structure entirely.
44
+ */
45
+ export interface LlmCuratedFolder {
46
+ /** Always `llm-curated/`. */
47
+ path: string;
48
+ /** Always false; lint MAY restructure. */
49
+ frozen: false;
50
+ /** Initial subdirs to seed; LLM may add more if `llm_can_create_subdirs`. */
51
+ seed_subdirs: string[];
52
+ llm_can_create_subdirs: boolean;
53
+ lint_may_restructure: boolean;
54
+ }
55
+ /**
56
+ * `write_policy:` block — who may write canonical pages vs. propose-only.
57
+ */
58
+ export interface WritePolicy {
59
+ /** Roles allowed to write canonical pages via `wiki-ingest`. */
60
+ canonical: string[];
61
+ /** Roles whose ingest writes are PR-style; TL/ORC must accept. */
62
+ proposed_only: string[];
63
+ /** Roles allowed to modify SCHEMA.md itself. */
64
+ schema_writer: string[];
65
+ }
66
+ /**
67
+ * Parsed SCHEMA.md content for one vault.
68
+ */
69
+ export interface VaultSchema {
70
+ vault_scope: VaultScope;
71
+ vault_id: string;
72
+ hardcoded: HardcodedFolder[];
73
+ llm_curated: LlmCuratedFolder[];
74
+ write_policy: WritePolicy;
75
+ }
76
+ /**
77
+ * Result of resolving a symbolic `referenced_by:` entry.
78
+ */
79
+ export interface ResolvedReference {
80
+ symbol: ReferencedBySymbol;
81
+ absolutePath: string;
82
+ exists: boolean;
83
+ }
84
+ //# sourceMappingURL=wiki.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiki.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,IAAI,CAAC;IACb,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,aAAa,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,EAAE,KAAK,CAAC;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,YAAY,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * LLM-Wiki shared types.
3
+ *
4
+ * Mirrors the SCHEMA.md YAML shape defined in
5
+ * .crewly/specs/2026-05-22-atlas-crewly-llm-wiki-v2-three-scope.md §2.
6
+ *
7
+ * @module services/wiki/wiki.types
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=wiki.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiki.types.js","sourceRoot":"","sources":["../../../../../../backend/src/services/wiki/wiki.types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -22,6 +22,12 @@ export interface GeneralSettings {
22
22
  defaultRuntime: AIRuntime;
23
23
  /** Whether to auto-start the orchestrator on application launch */
24
24
  autoStartOrchestrator: boolean;
25
+ /**
26
+ * Whether the hung-session watchdog auto-restarts the orchestrator when its
27
+ * session is hung (alive but claiming work without ever heartbeating). When
28
+ * false, the hang is still detected + surfaced on `/health` but not recovered.
29
+ */
30
+ autoRecoverHungOrchestrator: boolean;
25
31
  /** Agent check-in interval in minutes */
26
32
  checkInIntervalMinutes: number;
27
33
  /** Maximum concurrent agents allowed */
@@ -30,6 +36,8 @@ export interface GeneralSettings {
30
36
  verboseLogging: boolean;
31
37
  /** Whether to auto-resume agent sessions on restart */
32
38
  autoResumeOnRestart: boolean;
39
+ /** Whether to post a "back online" message to the owner's channel after a restart */
40
+ announceOnBoot: boolean;
33
41
  /** Per-runtime CLI init commands. Key = runtime type, value = CLI command string */
34
42
  runtimeCommands: Record<AIRuntime, string>;
35
43
  /** Minutes of inactivity before an agent is automatically suspended (0 = disabled) */
@@ -1 +1 @@
1
- {"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
@@ -81,10 +81,12 @@ export function getDefaultSettings() {
81
81
  general: {
82
82
  defaultRuntime: 'claude-code',
83
83
  autoStartOrchestrator: true,
84
+ autoRecoverHungOrchestrator: true,
84
85
  checkInIntervalMinutes: 5,
85
86
  maxConcurrentAgents: 10,
86
87
  verboseLogging: false,
87
88
  autoResumeOnRestart: true,
89
+ announceOnBoot: true,
88
90
  runtimeCommands: {
89
91
  'claude-code': 'claude --dangerously-skip-permissions',
90
92
  'gemini-cli': 'gemini --yolo',
@@ -1 +1 @@
1
- {"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/settings.types.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,29 @@ export type WorkItemStatus = 'queued' | 'scheduled' | 'proposed' | 'accepted' |
65
65
  export declare const WORK_ITEM_STATUSES: readonly WorkItemStatus[];
66
66
  /** Terminal statuses — no further transitions allowed. */
67
67
  export declare const TERMINAL_WORK_ITEM_STATUSES: ReadonlySet<WorkItemStatus>;
68
+ /**
69
+ * Broader "exited the active queue" status set used by SLA-style consumers
70
+ * (e.g. `RequestSlaSubscriber`, `MissionReminderService`) that need to
71
+ * treat `failed` and `rejected` as terminal for *their* purposes — even
72
+ * though those statuses are NOT terminal in the strict state-machine sense
73
+ * (they can transition back to `queued` via the retry path).
74
+ *
75
+ * Hoisted to close the canonical-set duplication anti-pattern called out
76
+ * by Arch on PR #357 (INBOUND-1) N2. Previously each SLA caller redeclared
77
+ * a 5-element local set; this single source of truth keeps them aligned
78
+ * if a new "exit-the-queue" status is added in the future.
79
+ *
80
+ * Members:
81
+ * - `done` / `verified` / `cancelled` — strictly terminal (cannot transition).
82
+ * - `failed` / `rejected` — semantically "exited active queue" for SLA timer
83
+ * no-op + reentrancy-lock release purposes, even though the state machine
84
+ * permits `rejected → queued` (retry) and `failed` is not formally terminal.
85
+ *
86
+ * Use this set when answering "should the SLA timer / reentrancy lock
87
+ * release based on the current WI state?", and use {@link TERMINAL_WORK_ITEM_STATUSES}
88
+ * when answering "is the state machine done with this WI?".
89
+ */
90
+ export declare const SLA_TERMINAL_WORK_ITEM_STATUSES: ReadonlySet<WorkItemStatus>;
68
91
  /**
69
92
  * A single unit of system execution.
70
93
  *