@inharness-ai/claude4spec 1.0.3 → 1.0.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.
- package/CHANGELOG.md +19 -0
- package/dist/bin/c4s/commands/ask.d.ts +13 -0
- package/dist/bin/c4s/commands/ask.js +167 -0
- package/dist/bin/c4s/commands/ask.js.map +1 -0
- package/dist/bin/c4s/errors.d.ts +1 -1
- package/dist/bin/c4s/errors.js.map +1 -1
- package/dist/bin/c4s/project.d.ts +6 -0
- package/dist/bin/c4s/project.js +25 -0
- package/dist/bin/c4s/project.js.map +1 -1
- package/dist/bin/c4s.js +12 -6
- package/dist/bin/c4s.js.map +1 -1
- package/dist/client/assets/{arc-D8brDDag.js → arc-grMo2vzL.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Bmh1uTQZ.js → architectureDiagram-3BPJPVTR-Fp_VHONq.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-55jaVWwd.js → blockDiagram-GPEHLZMM-CIwVG0sx.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-Dxm0tLsZ.js → c4Diagram-AAUBKEIU-tysuJyz0.js} +1 -1
- package/dist/client/assets/channel-B30S19wt.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-vDJ1slcJ.js → chunk-2J33WTMH-DZFNNwID.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DP6CC-Qn.js → chunk-4BX2VUAB-CsnJG7Pv.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-SgOSJYkL.js → chunk-55IACEB6-MhREYXzo.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BtRfbjBO.js → chunk-727SXJPM-BjvyGtK3.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-yIRaTgFg.js → chunk-AQP2D5EJ-zfcfKNbO.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-B_VD4t8N.js → chunk-FMBD7UC4-Ckx-Hc8U.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-BvJdtX82.js → chunk-ND2GUHAM-DSIVVmYM.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-BLNWKymD.js → chunk-QZHKN3VN-EcIM6ZdS.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Bm4SZLsb.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bm4SZLsb.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BQyA-r-y.js → cose-bilkent-S5V4N54A-DC8DVe0z.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CAh0mTzA.js → dagre-BM42HDAG-BQjcdXnw.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-C83TGK4o.js → diagram-2AECGRRQ-BUPeBMwt.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-2L6uowvf.js → diagram-5GNKFQAL-I_Q-Pnp6.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-Cj5n4jdq.js → diagram-KO2AKTUF-B8WbbWJu.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-Bp5SDMjg.js → diagram-LMA3HP47-CsACxgW7.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-cFsDQ8Qk.js → diagram-OG6HWLK6-lPuJxQED.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-D8G5xpg3.js → erDiagram-TEJ5UH35-cU5ZGREz.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-CuNudlCD.js → flowDiagram-I6XJVG4X-Dr-vZTBV.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CtFlsB15.js → ganttDiagram-6RSMTGT7-CXiWZ0R8.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-h66Tso4O.js → gitGraphDiagram-PVQCEYII-PDvLBbvz.js} +1 -1
- package/dist/client/assets/{index-aPVup1Re.js → index-BQltseJ-.js} +1 -1
- package/dist/client/assets/{index-aJE-l7h7.js → index-RMlMPKY7.js} +1 -1
- package/dist/client/assets/{index-D5ljIkCJ.js → index-YFPhJxE5.js} +184 -174
- package/dist/client/assets/{index-CZOpb3O7.css → index-zpHL2aYW.css} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-CO_BLfuW.js → infoDiagram-5YYISTIA-Re9fOUPS.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D4rSRnQA.js → ishikawaDiagram-YF4QCWOH-BTazB_7p.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-GyHI6dB8.js → journeyDiagram-JHISSGLW-pGUoqxHl.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-CrH33WLe.js → kanban-definition-UN3LZRKU-C2RzCJrM.js} +1 -1
- package/dist/client/assets/{linear-Dh1OyvSm.js → linear-Be3WPYKf.js} +1 -1
- package/dist/client/assets/{mermaid.core-C45sMDhS.js → mermaid.core-GdPXct3q.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-Bgwb0vwA.js → mindmap-definition-RKZ34NQL-DvktVTUU.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-l9cCpVfG.js → pieDiagram-4H26LBE5-DvC_m4m5.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BCPSUbC3.js → quadrantDiagram-W4KKPZXB-SWtidcZL.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-TEGOe-vV.js → requirementDiagram-4Y6WPE33-CQEHDx1W.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-C69pv_7D.js → sankeyDiagram-5OEKKPKP-C0PTA3gP.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-arinzeCk.js → sequenceDiagram-3UESZ5HK-D-x7SXoo.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-C2YENpmw.js → stateDiagram-AJRCARHV-BhcGVfs1.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-2vcyLY1V.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-h5qtI99f.js → timeline-definition-PNZ67QCA-JYTlKPB-.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CnuK75Ut.js → vennDiagram-CIIHVFJN-KjNL1Qpz.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-B4bQ0Xyy.js → wardley-L42UT6IY-DcljmmEY.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-apV8olQc.js → wardleyDiagram-YWT4CUSO-Pbq6ALgg.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-OTP6zeEy.js → xychartDiagram-2RQKCTM6-G_r_2Cvk.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/config.d.ts +6 -0
- package/dist/server/config.js +6 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/db/migrate.js +28 -11
- package/dist/server/db/migrate.js.map +1 -1
- package/dist/server/db/migrations/028_page_version_kind_patch.sql +43 -0
- package/dist/server/db/migrations/029_chat_thread_patch.sql +64 -0
- package/dist/server/external-skills/brief-implementer-template.d.ts +1 -1
- package/dist/server/external-skills/brief-implementer-template.js +14 -0
- package/dist/server/external-skills/brief-implementer-template.js.map +1 -1
- package/dist/server/external-skills/spec-reader-template.d.ts +1 -1
- package/dist/server/external-skills/spec-reader-template.js +12 -0
- package/dist/server/external-skills/spec-reader-template.js.map +1 -1
- package/dist/server/index.js +111 -37
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/agent-turn.d.ts +92 -0
- package/dist/server/routes/agent-turn.js +379 -0
- package/dist/server/routes/agent-turn.js.map +1 -0
- package/dist/server/routes/chat.d.ts +2 -28
- package/dist/server/routes/chat.js +33 -382
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/errors.js +4 -0
- package/dist/server/routes/errors.js.map +1 -1
- package/dist/server/routes/patches.d.ts +8 -0
- package/dist/server/routes/patches.js +106 -0
- package/dist/server/routes/patches.js.map +1 -0
- package/dist/server/routes/threads.d.ts +2 -2
- package/dist/server/routes/threads.js +51 -1
- package/dist/server/routes/threads.js.map +1 -1
- package/dist/server/services/brief.js +0 -1
- package/dist/server/services/brief.js.map +1 -1
- package/dist/server/services/chat-context.d.ts +3 -1
- package/dist/server/services/chat-context.js +32 -1
- package/dist/server/services/chat-context.js.map +1 -1
- package/dist/server/services/chat.d.ts +5 -2
- package/dist/server/services/chat.js +35 -7
- package/dist/server/services/chat.js.map +1 -1
- package/dist/server/services/page-version.d.ts +11 -4
- package/dist/server/services/page-version.js +19 -11
- package/dist/server/services/page-version.js.map +1 -1
- package/dist/server/services/pages-frontmatter-indexer.d.ts +4 -1
- package/dist/server/services/pages-frontmatter-indexer.js +19 -9
- package/dist/server/services/pages-frontmatter-indexer.js.map +1 -1
- package/dist/server/services/patch.d.ts +66 -0
- package/dist/server/services/patch.js +196 -0
- package/dist/server/services/patch.js.map +1 -0
- package/dist/shared/entities.d.ts +62 -2
- package/dist/shared/entities.js +11 -0
- package/dist/shared/entities.js.map +1 -1
- package/dist/shared/types.d.ts +5 -2
- package/package.json +1 -1
- package/dist/client/assets/channel-ArVcv4Yl.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-B3nmPR7w.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B3nmPR7w.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CS6ocDH6.js +0 -1
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import { EventEmitter } from 'node:events';
|
|
3
2
|
import { nanoid } from 'nanoid';
|
|
4
|
-
import {
|
|
5
|
-
import { buildPlanToolsServer } from '../mcp/plan-tools.js';
|
|
6
|
-
import { buildBriefToolsServer } from '../mcp/brief-tools.js';
|
|
7
|
-
import { buildSystemPrompt } from '../services/chat-context.js';
|
|
3
|
+
import { createConsoleObserver, } from '@inharness-ai/agent-adapters';
|
|
8
4
|
import { readConfig } from '../config.js';
|
|
9
|
-
import {
|
|
10
|
-
/** M21 m05ctxreg: tools whitelist per context_type. Brief threads get only
|
|
11
|
-
* brief-tools (per-thread, mounted below) + release-tools (read-only).
|
|
12
|
-
* All other plugin servers (endpoint-tools, dto-tools, ui-view-tools,
|
|
13
|
-
* database-table-tools, plan-tools, reference-tools) are NOT mounted. */
|
|
14
|
-
const BRIEF_ALLOWED_PLUGIN_MCP = new Set(['release-tools']);
|
|
15
|
-
const ALLOWED_MODELS = ['sonnet-4.6', 'opus-4.7', 'haiku-4.5'];
|
|
5
|
+
import { activeAdapters, pendingInputs, cancelPendingForRequest, runAgentTurn, ALLOWED_MODELS, } from './agent-turn.js';
|
|
16
6
|
export function chatRouter(deps) {
|
|
17
7
|
const router = Router();
|
|
18
|
-
// Keyed by threadId — jeden aktywny adapter per watek. Umozliwia dolaczanie
|
|
19
|
-
// klientow do zywego streamu przez GET /api/chat/stream/:threadId oraz
|
|
20
|
-
// zwracanie 409 STREAM_IN_PROGRESS na drugi POST na ten sam watek.
|
|
21
|
-
const activeAdapters = new Map();
|
|
22
|
-
const pendingInputs = new Map();
|
|
23
8
|
const consoleObserver = deps.mode === 'dev'
|
|
24
9
|
? createConsoleObserver({
|
|
25
10
|
thinking: true,
|
|
@@ -28,17 +13,9 @@ export function chatRouter(deps) {
|
|
|
28
13
|
showAdapterReady: true,
|
|
29
14
|
compactAdapterReady: true,
|
|
30
15
|
toolResultMaxLen: 20000,
|
|
31
|
-
sdkConfigExclude: ['mcpServers']
|
|
16
|
+
sdkConfigExclude: ['mcpServers'],
|
|
32
17
|
})
|
|
33
18
|
: null;
|
|
34
|
-
const cancelPendingForRequest = (requestId) => {
|
|
35
|
-
for (const [inputId, pending] of pendingInputs) {
|
|
36
|
-
if (pending.requestIdsForRequest === requestId) {
|
|
37
|
-
pending.reject(new Error('stream aborted'));
|
|
38
|
-
pendingInputs.delete(inputId);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
19
|
// claude4spec eksponuje wylacznie architekture `claude-code` (lokalny CLI, sesja subskrypcyjna).
|
|
43
20
|
// Endpoint przeniesiony z /api/config (kolizja z M01 app config) na /api/chat/config.
|
|
44
21
|
router.get('/config', (_req, res) => {
|
|
@@ -87,7 +64,6 @@ export function chatRouter(deps) {
|
|
|
87
64
|
if (planModeArg !== undefined && planModeArg !== thread.planMode) {
|
|
88
65
|
thread = deps.chatService.updateThreadSettings(thread.id, { planMode: planModeArg });
|
|
89
66
|
}
|
|
90
|
-
const planMode = thread.planMode;
|
|
91
67
|
// One-stream-per-thread guard. Klient powinien dolaczyc przez GET /api/chat/stream/:threadId
|
|
92
68
|
// albo abortowac poprzedni stream przez POST /api/chat/abort.
|
|
93
69
|
if (activeAdapters.has(thread.id)) {
|
|
@@ -96,10 +72,10 @@ export function chatRouter(deps) {
|
|
|
96
72
|
});
|
|
97
73
|
}
|
|
98
74
|
setupSse(res);
|
|
99
|
-
// clientGone flag: po `
|
|
100
|
-
// przestajemy pisać do res, ale
|
|
101
|
-
//
|
|
102
|
-
//
|
|
75
|
+
// clientGone flag: po `res.on('close')` (np. switch wątku → disconnect SSE)
|
|
76
|
+
// przestajemy pisać do res, ale `runAgentTurn` leci dalej — adapter dożywa
|
|
77
|
+
// do końca, eventy persystują w DB, a kolejny GET resume po powrocie na
|
|
78
|
+
// wątek znajdzie aktywny `activeAdapters[threadId]`.
|
|
103
79
|
let clientGone = false;
|
|
104
80
|
const send = (event, data) => {
|
|
105
81
|
if (clientGone || res.writableEnded || res.destroyed)
|
|
@@ -112,346 +88,43 @@ export function chatRouter(deps) {
|
|
|
112
88
|
clientGone = true;
|
|
113
89
|
}
|
|
114
90
|
};
|
|
115
|
-
|
|
116
|
-
const adapter = createAdapter('claude-code');
|
|
117
|
-
const emitter = new EventEmitter();
|
|
118
|
-
activeAdapters.set(thread.id, { requestId, adapter, emitter });
|
|
119
|
-
// `res.on('close')` (NIE req) — canonical pattern z agent-chat/server/handler.ts:138.
|
|
120
|
-
// req.close odpala dla request stream'a (zamknietego logicznie po express.json body parse),
|
|
121
|
-
// co moglo ustawiac clientGone przedwczesnie i no-opowac wszystkie kolejne send().
|
|
91
|
+
// `res.on('close')` (NIE req) — canonical pattern z agent-chat/server/handler.ts.
|
|
122
92
|
res.on('close', () => {
|
|
123
93
|
clientGone = true;
|
|
124
94
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
deps.chatService.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (isBrief && thread.briefPath) {
|
|
137
|
-
try {
|
|
138
|
-
briefSnapshot = await deps.briefService.getBrief(thread.briefPath);
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
// Brief plik usuniety/uszkodzony — kontynuujemy bez snapshot, agent dostanie
|
|
142
|
-
// banner przez get_brief tool call.
|
|
143
|
-
console.warn(`[chat] brief read failed for ${thread.briefPath}:`, err.message);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
let currentPageBody = null;
|
|
147
|
-
if (!isBrief && currentPage) {
|
|
148
|
-
try {
|
|
149
|
-
const page = await deps.pagesService.read(currentPage);
|
|
150
|
-
currentPageBody = page.body;
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
currentPageBody = null;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Stale-plan reminder MUSI byc sprawdzony PRZED markPlanSeenByThread —
|
|
157
|
-
// ten ostatni bumpuje last_seen_plan_version i zapodaje sygnal "synced".
|
|
158
|
-
const isFirstTurn = !thread.hasSystemPrompt;
|
|
159
|
-
const stalePlanReminder = isBrief ? null : deps.planService.getStalePlanReminder(thread.id);
|
|
160
|
-
const currentPlan = isBrief ? null : deps.planService.getByThread(thread.id);
|
|
161
|
-
// Skill resolution: writing-style (config.writingStyle, M15) ladowany
|
|
162
|
-
// niezaleznie od kontekstu. Dla brief context dokladamy bundled
|
|
163
|
-
// `brief-author` (scope: contextual) — definiuje *gatunek* briefa,
|
|
164
|
-
// writing-style dostarcza metodologie (workflows/brief.md w jego skill'u).
|
|
165
|
-
const writingStyleSkills = deps.skillResolver.resolve();
|
|
166
|
-
const writingStyle = writingStyleSkills[0]
|
|
167
|
-
? {
|
|
168
|
-
slug: writingStyleSkills[0].name,
|
|
169
|
-
title: String(writingStyleSkills[0].metadata?.title ?? writingStyleSkills[0].name),
|
|
170
|
-
}
|
|
171
|
-
: null;
|
|
172
|
-
const inlineSkills = [...writingStyleSkills];
|
|
173
|
-
if (isBrief && deps.skillRegistry.has('brief-author')) {
|
|
174
|
-
const skill = deps.skillRegistry.resolve('brief-author');
|
|
175
|
-
inlineSkills.push({
|
|
176
|
-
name: skill.metadata.slug,
|
|
177
|
-
description: skill.metadata.description,
|
|
178
|
-
content: skill.content,
|
|
179
|
-
files: skill.files,
|
|
180
|
-
metadata: {
|
|
181
|
-
version: skill.metadata.version,
|
|
182
|
-
language: skill.metadata.language,
|
|
183
|
-
title: skill.metadata.title,
|
|
184
|
-
},
|
|
95
|
+
const requestId = nanoid(12);
|
|
96
|
+
const turnThread = thread;
|
|
97
|
+
const onUserInput = (uinput) => {
|
|
98
|
+
send('user_input_request', { type: 'user_input_request', request: uinput });
|
|
99
|
+
deps.chatService.addMessage(turnThread.id, 'user_input_request', JSON.stringify(uinput), null, uinput.requestId);
|
|
100
|
+
return new Promise((resolve, reject) => {
|
|
101
|
+
pendingInputs.set(uinput.requestId, {
|
|
102
|
+
resolve,
|
|
103
|
+
reject,
|
|
104
|
+
requestIdsForRequest: requestId,
|
|
105
|
+
});
|
|
185
106
|
});
|
|
186
|
-
}
|
|
187
|
-
const pageCount = isBrief ? 0 : countPages(await deps.pagesService.listTree());
|
|
188
|
-
const systemPrompt = buildSystemPrompt({
|
|
189
|
-
projectName: readConfig(deps.cwd).name,
|
|
190
|
-
cwd: deps.cwd,
|
|
191
|
-
pagesDir: deps.pagesDir,
|
|
192
|
-
currentPagePath: currentPage,
|
|
193
|
-
currentPageBody,
|
|
194
|
-
pageCount,
|
|
195
|
-
entityCounts: isBrief ? {} : pluginHost.computeEntityCounts(deps.db.handle),
|
|
196
|
-
tagCount: isBrief ? 0 : deps.tagsService.list().length,
|
|
197
|
-
sectionCount: isBrief ? 0 : deps.sectionsService.count(),
|
|
198
|
-
annotations,
|
|
199
|
-
planMode,
|
|
200
|
-
currentPlan,
|
|
201
|
-
planToolsAvailable: !isBrief,
|
|
202
|
-
writingStyle,
|
|
203
|
-
contextType: thread.contextType,
|
|
204
|
-
brief: briefSnapshot,
|
|
205
|
-
});
|
|
206
|
-
// claude-code CLI po resumeSessionId ignoruje kolejne systemPrompty —
|
|
207
|
-
// wiążący dla audytu jest tylko pierwszy. UPDATE idempotentny (no-op na 2.+ turze).
|
|
208
|
-
deps.chatService.setInitialSystemPrompt(thread.id, systemPrompt);
|
|
209
|
-
// Pierwsza hydratacja currentPlanContext = "agent zobaczyl plan przez systemPrompt".
|
|
210
|
-
// Bumpujemy last_seen_plan_version, zeby pierwsza user message tego watku nie
|
|
211
|
-
// dostala stale-reminderu (currentVersion === lastSeen → no-op w kolejnych turach).
|
|
212
|
-
if (isFirstTurn && currentPlan) {
|
|
213
|
-
deps.planService.markPlanSeenByThread(thread.id);
|
|
214
|
-
}
|
|
215
|
-
let assistantBuf = '';
|
|
216
|
-
let thinkingBuf = '';
|
|
217
|
-
const subagentBuffers = new Map();
|
|
218
|
-
// Anchor dla per-turn usage snapshot (`chat_message.usage_json` na ostatnim rowsie tury).
|
|
219
|
-
// Flushed assistant text to typowy target; w turach tool-only fallback na ostatni tool_result.
|
|
220
|
-
let lastMainAssistantRowId = null;
|
|
221
|
-
let lastToolResultRowId = null;
|
|
222
|
-
// Per-response (non-cumulative) usage z ostatniego main `assistant_message`.
|
|
223
|
-
// `result.usage` jest session-cumulative (suma wszystkich tur) i przy badge "context %"
|
|
224
|
-
// dawalo zawyzone wartosci w dluzszych rozmowach (przekraczajac 100%).
|
|
225
|
-
let lastTurnUsage = null;
|
|
226
|
-
const getSubBuf = (taskId) => {
|
|
227
|
-
let buf = subagentBuffers.get(taskId);
|
|
228
|
-
if (!buf) {
|
|
229
|
-
buf = { text: '', thinking: '' };
|
|
230
|
-
subagentBuffers.set(taskId, buf);
|
|
231
|
-
}
|
|
232
|
-
return buf;
|
|
233
107
|
};
|
|
234
|
-
const flushSubBuf = (taskId) => {
|
|
235
|
-
const buf = subagentBuffers.get(taskId);
|
|
236
|
-
if (!buf)
|
|
237
|
-
return;
|
|
238
|
-
if (buf.text) {
|
|
239
|
-
deps.chatService.addMessage(thread.id, 'assistant', JSON.stringify({ text: buf.text }), null, null, taskId);
|
|
240
|
-
buf.text = '';
|
|
241
|
-
}
|
|
242
|
-
if (buf.thinking) {
|
|
243
|
-
deps.chatService.addMessage(thread.id, 'assistant', JSON.stringify({ text: buf.thinking, thinking: true }), null, null, taskId);
|
|
244
|
-
buf.thinking = '';
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
const flushMainBuf = () => {
|
|
248
|
-
if (assistantBuf) {
|
|
249
|
-
const row = deps.chatService.addMessage(thread.id, 'assistant', JSON.stringify({ text: assistantBuf }));
|
|
250
|
-
lastMainAssistantRowId = row.id;
|
|
251
|
-
assistantBuf = '';
|
|
252
|
-
}
|
|
253
|
-
if (thinkingBuf) {
|
|
254
|
-
deps.chatService.addMessage(thread.id, 'assistant', JSON.stringify({ text: thinkingBuf, thinking: true }));
|
|
255
|
-
thinkingBuf = '';
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
// M21 m05ctxreg: per-thread MCP servers depend on context_type.
|
|
259
|
-
// chat → plan-tools; brief → brief-tools (only when briefPath exists).
|
|
260
|
-
const planTools = isBrief
|
|
261
|
-
? null
|
|
262
|
-
: buildPlanToolsServer({
|
|
263
|
-
threadId: thread.id,
|
|
264
|
-
planService: deps.planService,
|
|
265
|
-
});
|
|
266
|
-
const briefTools = isBrief && thread.briefPath
|
|
267
|
-
? buildBriefToolsServer({
|
|
268
|
-
threadId: thread.id,
|
|
269
|
-
briefPath: thread.briefPath,
|
|
270
|
-
briefService: deps.briefService,
|
|
271
|
-
pageVersions: deps.pageVersions,
|
|
272
|
-
})
|
|
273
|
-
: null;
|
|
274
|
-
// Plugin MCP whitelist per context. Brief context exposes only
|
|
275
|
-
// `release-tools` (read-only) from the plugin set; chat context exposes
|
|
276
|
-
// everything. Both per-thread tools (plan-tools / brief-tools) merged below.
|
|
277
|
-
const pluginMcpEntries = pluginHost
|
|
278
|
-
.listMcpServers()
|
|
279
|
-
.filter(({ name }) => (isBrief ? BRIEF_ALLOWED_PLUGIN_MCP.has(name) : true))
|
|
280
|
-
.map(({ name, server }) => [name, server.config]);
|
|
281
|
-
const mcpServers = Object.fromEntries(pluginMcpEntries);
|
|
282
|
-
if (planTools)
|
|
283
|
-
mcpServers['plan-tools'] = planTools.config;
|
|
284
|
-
if (briefTools)
|
|
285
|
-
mcpServers['brief-tools'] = briefTools.config;
|
|
286
108
|
try {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
const effectivePrompt = stalePlanReminder
|
|
292
|
-
? `${stalePlanReminder}\n\n${prompt}`
|
|
293
|
-
: prompt;
|
|
294
|
-
const stream = adapter.execute({
|
|
295
|
-
prompt: effectivePrompt,
|
|
296
|
-
systemPrompt,
|
|
109
|
+
await runAgentTurn(deps, {
|
|
110
|
+
thread: turnThread,
|
|
111
|
+
prompt,
|
|
112
|
+
annotations,
|
|
297
113
|
model,
|
|
298
|
-
|
|
299
|
-
mcpServers,
|
|
300
|
-
skills: inlineSkills,
|
|
301
|
-
resumeSessionId: thread.lastSessionId ?? undefined,
|
|
114
|
+
currentPage,
|
|
302
115
|
architectureConfig,
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
pendingInputs.set(input.requestId, {
|
|
309
|
-
resolve,
|
|
310
|
-
reject,
|
|
311
|
-
requestIdsForRequest: requestId,
|
|
312
|
-
});
|
|
313
|
-
});
|
|
314
|
-
},
|
|
116
|
+
requestId,
|
|
117
|
+
consoleObserver,
|
|
118
|
+
// Transport SSE — `runAgentTurn` zasila tez emitter dla GET /stream/:threadId.
|
|
119
|
+
onEvent: (event) => send(event.type, event),
|
|
120
|
+
onUserInput,
|
|
315
121
|
});
|
|
316
|
-
const observed = consoleObserver ? observeStream(stream, [consoleObserver]) : stream;
|
|
317
|
-
for await (const event of observed) {
|
|
318
|
-
send(event.type, event);
|
|
319
|
-
emitter.emit('event', event);
|
|
320
|
-
switch (event.type) {
|
|
321
|
-
case 'text_delta':
|
|
322
|
-
if (event.isSubagent && event.subagentTaskId) {
|
|
323
|
-
getSubBuf(event.subagentTaskId).text += event.text;
|
|
324
|
-
}
|
|
325
|
-
else if (!event.isSubagent) {
|
|
326
|
-
assistantBuf += event.text;
|
|
327
|
-
}
|
|
328
|
-
break;
|
|
329
|
-
case 'thinking':
|
|
330
|
-
if (event.isSubagent && event.subagentTaskId) {
|
|
331
|
-
getSubBuf(event.subagentTaskId).thinking += event.text;
|
|
332
|
-
}
|
|
333
|
-
else if (!event.isSubagent) {
|
|
334
|
-
thinkingBuf += event.text;
|
|
335
|
-
}
|
|
336
|
-
break;
|
|
337
|
-
case 'assistant_message': {
|
|
338
|
-
// Per-response (non-cumulative) usage z main agent. Subagenty maja
|
|
339
|
-
// wlasna sesje SDK (osobne okno) — nie wliczamy ich w badge main.
|
|
340
|
-
// Live update do DB — F5 w trakcie tury dostaje aktualny snapshot,
|
|
341
|
-
// i w pelni stream'owanej turze badge progresuje miedzy assistant
|
|
342
|
-
// messages bez czekania na koncowy `result`.
|
|
343
|
-
if (!event.message.subagentTaskId && event.message.usage) {
|
|
344
|
-
lastTurnUsage = event.message.usage;
|
|
345
|
-
deps.chatService.setLastUsage(thread.id, event.message.usage);
|
|
346
|
-
}
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
case 'tool_use': {
|
|
350
|
-
const taskId = event.subagentTaskId ?? null;
|
|
351
|
-
if (taskId)
|
|
352
|
-
flushSubBuf(taskId);
|
|
353
|
-
else
|
|
354
|
-
flushMainBuf();
|
|
355
|
-
// tool_use wstawiane jako 'streaming' — flip na 'complete' nastapi
|
|
356
|
-
// przy parnym tool_result (markToolUseComplete). Finalizer w `finally`
|
|
357
|
-
// zamyka orphany (tool_use bez tool_result, np. przy abortcie).
|
|
358
|
-
deps.chatService.addMessage(thread.id, 'tool_use', JSON.stringify({ input: event.input }), event.toolName, event.toolUseId, taskId, planMode, 'streaming');
|
|
359
|
-
break;
|
|
360
|
-
}
|
|
361
|
-
case 'tool_result': {
|
|
362
|
-
const taskId = event.subagentTaskId ?? null;
|
|
363
|
-
// Najpierw flipuj parne tool_use na 'complete', potem insertuj result.
|
|
364
|
-
// Kolejnosc nie jest krytyczna (idempotentna), ale trzymamy DB spojna w kazdej chwili.
|
|
365
|
-
deps.chatService.markToolUseComplete(thread.id, event.toolUseId);
|
|
366
|
-
const row = deps.chatService.addMessage(thread.id, 'tool_result', JSON.stringify({ summary: event.summary, isError: event.isError }), null, event.toolUseId, taskId);
|
|
367
|
-
if (taskId === null)
|
|
368
|
-
lastToolResultRowId = row.id;
|
|
369
|
-
break;
|
|
370
|
-
}
|
|
371
|
-
case 'subagent_started':
|
|
372
|
-
flushMainBuf();
|
|
373
|
-
deps.chatService.startSubagentTask(thread.id, event.taskId, event.description, event.toolUseId ?? null);
|
|
374
|
-
break;
|
|
375
|
-
case 'subagent_progress':
|
|
376
|
-
deps.chatService.updateSubagentTaskProgress(thread.id, event.taskId, event.description);
|
|
377
|
-
break;
|
|
378
|
-
case 'subagent_completed':
|
|
379
|
-
flushSubBuf(event.taskId);
|
|
380
|
-
deps.chatService.completeSubagentTask(thread.id, event.taskId, event.status, event.summary ?? null);
|
|
381
|
-
break;
|
|
382
|
-
case 'result': {
|
|
383
|
-
// Flush main najpierw — aktualizuje lastMainAssistantRowId; ten id
|
|
384
|
-
// jest anchorem per-turn usage. Subagent bufory flushujemy
|
|
385
|
-
// defensywnie po (zwykle juz flushnieto przy subagent_completed).
|
|
386
|
-
flushMainBuf();
|
|
387
|
-
for (const tid of Array.from(subagentBuffers.keys()))
|
|
388
|
-
flushSubBuf(tid);
|
|
389
|
-
if (event.sessionId)
|
|
390
|
-
deps.chatService.setLastSessionId(thread.id, event.sessionId);
|
|
391
|
-
// event.usage jest session-cumulative — nieuzyteczne dla badge "context %".
|
|
392
|
-
// Bierzemy lastTurnUsage z ostatniego main assistant_message tej tury.
|
|
393
|
-
const turnAnchor = lastMainAssistantRowId ?? lastToolResultRowId;
|
|
394
|
-
if (lastTurnUsage) {
|
|
395
|
-
deps.chatService.setLastUsage(thread.id, lastTurnUsage);
|
|
396
|
-
// Target explicit message id — nie MAX(id), bo subagent bufor flushnal
|
|
397
|
-
// jako ostatni i trafilby tam zamiast na main assistant / tool_result tej tury.
|
|
398
|
-
if (turnAnchor !== null) {
|
|
399
|
-
deps.chatService.attachTurnUsage(thread.id, turnAnchor, lastTurnUsage);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
// agent-chat 0.1.1: `result.contextSize` to last-turn utilization okna
|
|
403
|
-
// kontekstu (NIE sumować). Trzymamy je oddzielnie od billing-tokens
|
|
404
|
-
// bo cumulative billing > 100% w dłuższych rozmowach.
|
|
405
|
-
if (typeof event.contextSize === 'number') {
|
|
406
|
-
deps.chatService.setLastContextSize(thread.id, event.contextSize);
|
|
407
|
-
if (turnAnchor !== null) {
|
|
408
|
-
deps.chatService.attachTurnContextSize(thread.id, turnAnchor, event.contextSize);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
case 'todo_list_updated':
|
|
414
|
-
if (!event.isSubagent) {
|
|
415
|
-
deps.chatService.updateCurrentTodoItems(thread.id, event.items);
|
|
416
|
-
}
|
|
417
|
-
break;
|
|
418
|
-
case 'warning':
|
|
419
|
-
console.warn('[agent warning]', event.message);
|
|
420
|
-
break;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
send('done', {});
|
|
424
122
|
}
|
|
425
|
-
catch
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
else if (err instanceof AdapterTimeoutError)
|
|
429
|
-
send('error', { type: 'error', code: 'TIMEOUT', error: 'Agent took too long to respond' });
|
|
430
|
-
else if (err instanceof AdapterInitError)
|
|
431
|
-
send('error', { type: 'error', code: 'AGENT_UNAVAILABLE', error: 'Claude CLI not found or not logged in. Run `claude login` first.' });
|
|
432
|
-
else
|
|
433
|
-
send('error', { type: 'error', code: 'AGENT_ERROR', error: err instanceof Error ? err.message : String(err) });
|
|
123
|
+
catch {
|
|
124
|
+
// `runAgentTurn` juz wyemitowalo SSE `event: error` — nie propagujemy
|
|
125
|
+
// dalej (response jest SSE; errorHandler probowalby pisac JSON).
|
|
434
126
|
}
|
|
435
127
|
finally {
|
|
436
|
-
try {
|
|
437
|
-
flushMainBuf();
|
|
438
|
-
for (const tid of Array.from(subagentBuffers.keys()))
|
|
439
|
-
flushSubBuf(tid);
|
|
440
|
-
}
|
|
441
|
-
catch (flushErr) {
|
|
442
|
-
console.error('[chat] final flush failed', flushErr);
|
|
443
|
-
}
|
|
444
|
-
// Flipuj wszystkie wiszace rowsy (glownie orphan tool_use przy abortcie/timeoutcie)
|
|
445
|
-
// na 'complete', zeby DB byla spojna niezaleznie od powodu zakonczenia streamu.
|
|
446
|
-
try {
|
|
447
|
-
deps.chatService.finalizeStreamingRows(thread.id);
|
|
448
|
-
}
|
|
449
|
-
catch (finalizeErr) {
|
|
450
|
-
console.error('[chat] finalizeStreamingRows failed', finalizeErr);
|
|
451
|
-
}
|
|
452
|
-
emitter.emit('event', { type: 'done' });
|
|
453
|
-
activeAdapters.delete(thread.id);
|
|
454
|
-
cancelPendingForRequest(requestId);
|
|
455
128
|
if (!res.writableEnded) {
|
|
456
129
|
try {
|
|
457
130
|
res.end();
|
|
@@ -471,7 +144,6 @@ export function chatRouter(deps) {
|
|
|
471
144
|
if (typeof requestId !== 'string')
|
|
472
145
|
return res.status(400).json({ error: { code: 'VALIDATION', message: 'requestId required' } });
|
|
473
146
|
// activeAdapters jest keyed by threadId, wiec szukamy wartosci z matching requestId.
|
|
474
|
-
// O(N) po liczbie aktywnych watkow — akceptowalne na lokalnym tool.
|
|
475
147
|
let found = null;
|
|
476
148
|
for (const entry of activeAdapters.values()) {
|
|
477
149
|
if (entry.requestId === requestId) {
|
|
@@ -486,8 +158,7 @@ export function chatRouter(deps) {
|
|
|
486
158
|
res.json({ data: { aborted: true } });
|
|
487
159
|
});
|
|
488
160
|
// Abort per threadId — uzywany gdy klient podlaczyl sie tylko przez resume SSE
|
|
489
|
-
//
|
|
490
|
-
// tura per threadId, wiec threadId jest jednoznacznym kluczem.
|
|
161
|
+
// i nie zna requestId. Jest jedna aktywna tura per threadId.
|
|
491
162
|
router.post('/abort/:threadId', (req, res) => {
|
|
492
163
|
const { threadId } = req.params;
|
|
493
164
|
const active = activeAdapters.get(threadId);
|
|
@@ -498,9 +169,6 @@ export function chatRouter(deps) {
|
|
|
498
169
|
res.json({ data: { aborted: true } });
|
|
499
170
|
});
|
|
500
171
|
// GET /api/chat/stream/:threadId — dolaczenie do zywego streamu po F5 / switch watku.
|
|
501
|
-
// Klient juz ma snapshot historii z GET /api/threads/:id; ten endpoint dostarcza
|
|
502
|
-
// tylko LIVE eventy (bez replay rowsow jako syntetycznych eventow). Jesli adapter
|
|
503
|
-
// juz nie zyje dla tego watku, od razu zwracamy `done` i klient pozostaje z final state.
|
|
504
172
|
router.get('/stream/:threadId', (req, res) => {
|
|
505
173
|
const threadId = req.params.threadId;
|
|
506
174
|
const thread = deps.chatService.getThreadMeta(threadId);
|
|
@@ -508,9 +176,6 @@ export function chatRouter(deps) {
|
|
|
508
176
|
return res.status(404).json({ error: { code: 'NOT_FOUND', message: 'thread not found' } });
|
|
509
177
|
}
|
|
510
178
|
setupSse(res);
|
|
511
|
-
// Identyczny pattern jak w POST — listener emitter'a leci w callstacku POST loopa,
|
|
512
|
-
// wiec throw z res.write propagowalby do emit() i wybijal pętle for-await,
|
|
513
|
-
// czyniąc cleanup w POST destrukcyjnym (finalizeStreamingRows + adapter osierocony).
|
|
514
179
|
let clientGone = false;
|
|
515
180
|
const send = (event, data) => {
|
|
516
181
|
if (clientGone || res.writableEnded || res.destroyed)
|
|
@@ -544,16 +209,12 @@ export function chatRouter(deps) {
|
|
|
544
209
|
}
|
|
545
210
|
}
|
|
546
211
|
catch (listenerErr) {
|
|
547
|
-
// Nigdy nie pozwol propagowac do emitter.emit() w POST loopie.
|
|
548
212
|
active.emitter.off('event', listener);
|
|
549
213
|
clientGone = true;
|
|
550
214
|
console.error('[chat] resume listener error', listenerErr);
|
|
551
215
|
}
|
|
552
216
|
};
|
|
553
217
|
active.emitter.on('event', listener);
|
|
554
|
-
// `res.on('close')` — patrz POST handler. Resume jest GET, ale dla spojnosci
|
|
555
|
-
// i odpornosci uzywamy response-side sygnalu, ktory odpala dokladnie wtedy,
|
|
556
|
-
// gdy klient SSE sie rozlacza.
|
|
557
218
|
res.on('close', () => {
|
|
558
219
|
clientGone = true;
|
|
559
220
|
active.emitter.off('event', listener);
|
|
@@ -591,14 +252,4 @@ function setupSse(res) {
|
|
|
591
252
|
res.setHeader('X-Accel-Buffering', 'no');
|
|
592
253
|
res.flushHeaders();
|
|
593
254
|
}
|
|
594
|
-
function countPages(tree) {
|
|
595
|
-
let n = 0;
|
|
596
|
-
for (const node of tree) {
|
|
597
|
-
if (node.type === 'file')
|
|
598
|
-
n++;
|
|
599
|
-
else if (Array.isArray(node.children))
|
|
600
|
-
n += countPages(node.children);
|
|
601
|
-
}
|
|
602
|
-
return n;
|
|
603
|
-
}
|
|
604
255
|
//# sourceMappingURL=chat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/server/routes/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/server/routes/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ const STATUS_FOR_CODE = {
|
|
|
19
19
|
BRIEF_INVALID_FRONTMATTER: 400,
|
|
20
20
|
BRIEF_CONFLICT: 409,
|
|
21
21
|
PAGE_CONFLICT: 409,
|
|
22
|
+
// M23 Patches
|
|
23
|
+
PATCH_CONFLICT: 409,
|
|
24
|
+
PATCH_FRONTMATTER_IMMUTABLE: 400,
|
|
25
|
+
PATCH_INVALID_FRONTMATTER: 400,
|
|
22
26
|
};
|
|
23
27
|
export const errorHandler = (err, _req, res, _next) => {
|
|
24
28
|
if (err instanceof ConflictError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/server/routes/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,eAAe,GAA2B;IAC9C,SAAS,EAAE,GAAG;IACd,iBAAiB,EAAE,GAAG;IACtB,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,GAAG;IACf,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,GAAG;IACtB,cAAc,EAAE,GAAG;IACnB,MAAM;IACN,qBAAqB,EAAE,GAAG;IAC1B,4BAA4B,EAAE,GAAG;IACjC,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,aAAa;IACb,kBAAkB,EAAE,GAAG;IACvB,2BAA2B,EAAE,GAAG;IAChC,yBAAyB,EAAE,GAAG;IAC9B,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/server/routes/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,eAAe,GAA2B;IAC9C,SAAS,EAAE,GAAG;IACd,iBAAiB,EAAE,GAAG;IACtB,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,GAAG;IACf,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,GAAG;IACtB,cAAc,EAAE,GAAG;IACnB,MAAM;IACN,qBAAqB,EAAE,GAAG;IAC1B,4BAA4B,EAAE,GAAG;IACjC,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,aAAa;IACb,kBAAkB,EAAE,GAAG;IACvB,2BAA2B,EAAE,GAAG;IAChC,yBAAyB,EAAE,GAAG;IAC9B,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,cAAc;IACd,cAAc,EAAE,GAAG;IACnB,2BAA2B,EAAE,GAAG;IAChC,yBAAyB,EAAE,GAAG;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACzE,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;YAC/C,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import type { PatchService } from '../services/patch.js';
|
|
3
|
+
/**
|
|
4
|
+
* M23 REST routes (tag `m23-patches`). Path is splat (`/api/patches/<path>`)
|
|
5
|
+
* so nested filenames are supported, consistent with `/api/pages/*` and
|
|
6
|
+
* `/api/briefs/*`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function patchesRouter(patches: PatchService): Router;
|