crewly 1.8.4 → 1.8.6

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 (85) hide show
  1. package/config/roles/_common/wiki-instructions.md +33 -0
  2. package/config/roles/orchestrator/prompt.md +66 -4
  3. package/config/roles/team-leader/prompt.md +38 -0
  4. package/config/skills/agent/core/wiki-query/SKILL.md +66 -0
  5. package/config/skills/agent/core/wiki-query/execute.sh +107 -0
  6. package/config/skills/orchestrator/wiki-bookkeep/SKILL.md +71 -0
  7. package/config/skills/orchestrator/wiki-bookkeep/execute.sh +72 -0
  8. package/config/skills/orchestrator/wiki-ingest/SKILL.md +63 -0
  9. package/config/skills/orchestrator/wiki-ingest/execute.sh +113 -0
  10. package/config/skills/orchestrator/wiki-process-queue/SKILL.md +71 -0
  11. package/config/skills/orchestrator/wiki-process-queue/execute.sh +93 -0
  12. package/config/skills/orchestrator/wiki-queue-add/SKILL.md +89 -0
  13. package/config/skills/orchestrator/wiki-queue-add/execute.sh +115 -0
  14. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/chat/chat.controller.js +20 -0
  16. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/slack/slack.controller.js +15 -0
  19. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +134 -0
  21. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -0
  22. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +718 -0
  23. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -0
  24. package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts +23 -0
  25. package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts.map +1 -0
  26. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js +43 -0
  27. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js.map +1 -0
  28. package/dist/backend/backend/src/index.d.ts.map +1 -1
  29. package/dist/backend/backend/src/index.js +65 -0
  30. package/dist/backend/backend/src/index.js.map +1 -1
  31. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  32. package/dist/backend/backend/src/routes/api.routes.js +4 -0
  33. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  34. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +142 -0
  35. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -0
  36. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +265 -0
  37. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -0
  38. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +28 -0
  39. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/session/pty/pty-session.js +162 -4
  41. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  42. package/dist/backend/backend/src/services/wiki/referenced-by.resolver.d.ts +69 -0
  43. package/dist/backend/backend/src/services/wiki/referenced-by.resolver.d.ts.map +1 -0
  44. package/dist/backend/backend/src/services/wiki/referenced-by.resolver.js +174 -0
  45. package/dist/backend/backend/src/services/wiki/referenced-by.resolver.js.map +1 -0
  46. package/dist/backend/backend/src/services/wiki/schema-loader.service.d.ts +57 -0
  47. package/dist/backend/backend/src/services/wiki/schema-loader.service.d.ts.map +1 -0
  48. package/dist/backend/backend/src/services/wiki/schema-loader.service.js +183 -0
  49. package/dist/backend/backend/src/services/wiki/schema-loader.service.js.map +1 -0
  50. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts +86 -0
  51. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts.map +1 -0
  52. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js +187 -0
  53. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js.map +1 -0
  54. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts +116 -0
  55. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.d.ts.map +1 -0
  56. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js +299 -0
  57. package/dist/backend/backend/src/services/wiki/wiki-bookkeep.service.js.map +1 -0
  58. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +74 -0
  59. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +1 -0
  60. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +154 -0
  61. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +1 -0
  62. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts +100 -0
  63. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.d.ts.map +1 -0
  64. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js +212 -0
  65. package/dist/backend/backend/src/services/wiki/wiki-ingest.service.js.map +1 -0
  66. package/dist/backend/backend/src/services/wiki/wiki-process.service.d.ts +84 -0
  67. package/dist/backend/backend/src/services/wiki/wiki-process.service.d.ts.map +1 -0
  68. package/dist/backend/backend/src/services/wiki/wiki-process.service.js +138 -0
  69. package/dist/backend/backend/src/services/wiki/wiki-process.service.js.map +1 -0
  70. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts +115 -0
  71. package/dist/backend/backend/src/services/wiki/wiki-query.service.d.ts.map +1 -0
  72. package/dist/backend/backend/src/services/wiki/wiki-query.service.js +291 -0
  73. package/dist/backend/backend/src/services/wiki/wiki-query.service.js.map +1 -0
  74. package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts +115 -0
  75. package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts.map +1 -0
  76. package/dist/backend/backend/src/services/wiki/wiki-queue.service.js +261 -0
  77. package/dist/backend/backend/src/services/wiki/wiki-queue.service.js.map +1 -0
  78. package/dist/backend/backend/src/services/wiki/wiki.types.d.ts +84 -0
  79. package/dist/backend/backend/src/services/wiki/wiki.types.d.ts.map +1 -0
  80. package/dist/backend/backend/src/services/wiki/wiki.types.js +10 -0
  81. package/dist/backend/backend/src/services/wiki/wiki.types.js.map +1 -0
  82. package/frontend/dist/assets/{index-b279da34.js → index-cc115bb4.js} +246 -246
  83. package/frontend/dist/assets/{index-c07e04c0.css → index-db3f5041.css} +1 -1
  84. package/frontend/dist/index.html +2 -2
  85. package/package.json +1 -1
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Wiki REST Controller
3
+ *
4
+ * Exposes the LLM-wiki ingest/query operations over HTTP so the bash
5
+ * skills (`wiki-ingest`, `wiki-query`) and in-process subscribers
6
+ * (`WikiChatSubscriberService`) all funnel through the same code path.
7
+ *
8
+ * @module controllers/wiki/wiki.controller
9
+ */
10
+ import type { Request, Response, NextFunction } from 'express';
11
+ /**
12
+ * POST /api/wiki/ingest
13
+ *
14
+ * Write a single source into a vault's `llm-curated/log.md` (or other
15
+ * non-frozen target). The handler enforces request validation; per-call
16
+ * routing / frozen-path / size limits live in `WikiIngestService`.
17
+ *
18
+ * Request body:
19
+ * {
20
+ * vaultPath: string,
21
+ * sourceType: WikiSourceType,
22
+ * sourceRef: string,
23
+ * sourceBody: string,
24
+ * callerSession?: string,
25
+ * targetRelativePath?: string
26
+ * }
27
+ *
28
+ * Response:
29
+ * 200 { success: true, result: WikiIngestOutcome (ok=true variant) }
30
+ * 400 { success: false, error: string, outcome?: WikiIngestOutcome }
31
+ * 422 { success: false, error: 'frozen_path', outcome: WikiIngestOutcome }
32
+ */
33
+ export declare function ingest(req: Request, res: Response, next: NextFunction): Promise<void>;
34
+ /**
35
+ * POST /api/wiki/query
36
+ *
37
+ * Build the system-context payload for a single-vault read. The skill /
38
+ * caller's runtime concatenates this with its per-LLM task-instruction
39
+ * prompt (`config/skills/<role>/wiki-query/prompts/<runtime>.md`) before
40
+ * the actual LLM call.
41
+ *
42
+ * Request body:
43
+ * {
44
+ * vaultPath: string,
45
+ * query: string,
46
+ * topK?: number,
47
+ * recentLogEntries?: number
48
+ * }
49
+ *
50
+ * Response:
51
+ * 200 { success: true, result: { context: WikiQuerySystemContext } }
52
+ * 400 { success: false, error: string, outcome?: failure }
53
+ * 404 { success: false, error: 'schema_missing', outcome }
54
+ */
55
+ export declare function queryVault(req: Request, res: Response, next: NextFunction): Promise<void>;
56
+ /**
57
+ * POST /api/wiki/queue
58
+ *
59
+ * Enqueue a candidate item. Agents call this when a turn produces
60
+ * content worth saving to the wiki. The `reason` is REQUIRED — the
61
+ * agent has to justify why this is wiki-worthy (audit trail + helps
62
+ * the processor decide where it goes).
63
+ */
64
+ export declare function queueAdd(req: Request, res: Response, next: NextFunction): Promise<void>;
65
+ /**
66
+ * GET /api/wiki/queue?vaultPath=…&status=…&queuedBy=…&limit=…
67
+ */
68
+ export declare function queueList(req: Request, res: Response, next: NextFunction): Promise<void>;
69
+ /**
70
+ * POST /api/wiki/queue/:id/claim
71
+ * body: { claimedBy: string }
72
+ */
73
+ export declare function queueClaim(req: Request, res: Response, next: NextFunction): Promise<void>;
74
+ /**
75
+ * POST /api/wiki/queue/:id/process
76
+ * body: { ingested: boolean, pagesWritten?: string[], targetPath?: string, summary?: string }
77
+ */
78
+ export declare function queueProcess(req: Request, res: Response, next: NextFunction): Promise<void>;
79
+ /**
80
+ * POST /api/wiki/queue/:id/skip
81
+ * body: { skipReason: string }
82
+ */
83
+ export declare function queueSkip(req: Request, res: Response, next: NextFunction): Promise<void>;
84
+ /**
85
+ * POST /api/wiki/queue/claim-next
86
+ * body: { claimedBy: string, vaultPath?: string, offset?: number, topK?: number, recentLogEntries?: number }
87
+ *
88
+ * Claims the next pending item AND returns the vault context the
89
+ * agent's LLM should classify against. The agent then picks a target
90
+ * page, calls /wiki/ingest, and commits via /queue/:id/process.
91
+ */
92
+ export declare function queueClaimNext(req: Request, res: Response, next: NextFunction): Promise<void>;
93
+ /**
94
+ * POST /api/wiki/bookkeep
95
+ * body: { vaultPath: string, windowDays?: number, threshold?: number }
96
+ */
97
+ export declare function bookkeep(req: Request, res: Response, next: NextFunction): Promise<void>;
98
+ /**
99
+ * GET /api/wiki/vaults
100
+ *
101
+ * Returns the list of all known vaults (project + team + global) with
102
+ * stats so the UI can render a sidebar. Discovery uses the same logic
103
+ * the bookkeep trigger uses.
104
+ */
105
+ export declare function listVaults(_req: Request, res: Response, next: NextFunction): Promise<void>;
106
+ /**
107
+ * GET /api/wiki/tree?vaultPath=...
108
+ *
109
+ * Walks the vault directory and returns the file tree. Frozen folders
110
+ * are marked so the UI can render them differently. SCHEMA.md is
111
+ * surfaced as a top-level file.
112
+ */
113
+ export declare function getVaultTree(req: Request, res: Response, next: NextFunction): Promise<void>;
114
+ /**
115
+ * GET /api/wiki/page?vaultPath=...&relativePath=...
116
+ *
117
+ * Returns the raw markdown content of a single page. The relativePath
118
+ * is validated to ensure it doesn't escape the vault directory.
119
+ */
120
+ export declare function getPage(req: Request, res: Response, next: NextFunction): Promise<void>;
121
+ /**
122
+ * POST /api/wiki/bookkeep/trigger-now
123
+ *
124
+ * Force one tick of the bookkeep trigger NOW. Used for manual testing
125
+ * (curl, the chat UI, an admin button) — production cadence is the
126
+ * automatic interval scan, but operators sometimes want to invoke it
127
+ * synchronously to verify wiring or to clear a backlog.
128
+ */
129
+ export declare function bookkeepTriggerNow(_req: Request, res: Response, next: NextFunction): Promise<void>;
130
+ /**
131
+ * GET /api/wiki/queue/stats?vaultPath=…
132
+ */
133
+ export declare function queueStats(req: Request, res: Response, next: NextFunction): Promise<void>;
134
+ //# sourceMappingURL=wiki.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiki.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/wiki/wiki.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+B/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAgDf;AAgBD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAwDf;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAwBD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAqFf;AAQD;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAQf"}