@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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
-- M23 Patches (v0.1.23) — chat_thread gains a third context_type ('patch') and
|
|
2
|
+
-- a `patch_path` pointer. Migration 022 added `context_type` with
|
|
3
|
+
-- `CHECK (context_type IN ('chat','brief'))`; SQLite cannot ALTER a CHECK, so
|
|
4
|
+
-- the table is rebuilt. Per the v0.1.23 brief the rebuilt column carries NO
|
|
5
|
+
-- CHECK at all — `context_type` is a plain TEXT column whose allowed values
|
|
6
|
+
-- ('chat'|'brief'|'patch', and any future value) are validated in application
|
|
7
|
+
-- code by the contextTypeRegistry in chat-context.ts. Adding a future
|
|
8
|
+
-- context_type therefore needs no migration.
|
|
9
|
+
-- Spec: db/db-m05-chat.md, modules/m23-patches.md.
|
|
10
|
+
--
|
|
11
|
+
-- chat_thread has INCOMING foreign keys: chat_message.thread_id (ON DELETE
|
|
12
|
+
-- CASCADE) and plan.accepted_thread_id (ON DELETE SET NULL). The SQLite
|
|
13
|
+
-- table-rebuild procedure is followed: create the new table under a temp
|
|
14
|
+
-- name, copy, DROP the original, then RENAME the new one into place. The
|
|
15
|
+
-- migration runner disables `foreign_keys` around the batch, so the DROP does
|
|
16
|
+
-- NOT cascade-delete chat_message rows; the child FK clauses keep referencing
|
|
17
|
+
-- the name `chat_thread` and resolve again once the new table is renamed in.
|
|
18
|
+
|
|
19
|
+
-- Full column set as of migrations 005/009/010/011/013/021/024/022, plus the
|
|
20
|
+
-- new patch_path. Only changes vs. the old schema: the context_type CHECK is
|
|
21
|
+
-- dropped (validation moves to application code), and patch_path is appended.
|
|
22
|
+
CREATE TABLE chat_thread_new (
|
|
23
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
24
|
+
title TEXT,
|
|
25
|
+
last_session_id TEXT,
|
|
26
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
27
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
28
|
+
current_todo_items TEXT,
|
|
29
|
+
plan_mode INTEGER NOT NULL DEFAULT 0,
|
|
30
|
+
initial_system_prompt TEXT,
|
|
31
|
+
last_usage_json TEXT,
|
|
32
|
+
plan_id INTEGER REFERENCES plan(id) ON DELETE SET NULL,
|
|
33
|
+
last_seen_plan_version INTEGER,
|
|
34
|
+
last_context_size INTEGER,
|
|
35
|
+
context_type TEXT NOT NULL DEFAULT 'chat',
|
|
36
|
+
brief_path TEXT,
|
|
37
|
+
patch_path TEXT
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
INSERT INTO chat_thread_new (
|
|
41
|
+
id, title, last_session_id, created_at, updated_at, current_todo_items,
|
|
42
|
+
plan_mode, initial_system_prompt, last_usage_json, plan_id,
|
|
43
|
+
last_seen_plan_version, last_context_size, context_type, brief_path
|
|
44
|
+
)
|
|
45
|
+
SELECT
|
|
46
|
+
id, title, last_session_id, created_at, updated_at, current_todo_items,
|
|
47
|
+
plan_mode, initial_system_prompt, last_usage_json, plan_id,
|
|
48
|
+
last_seen_plan_version, last_context_size, context_type, brief_path
|
|
49
|
+
FROM chat_thread;
|
|
50
|
+
|
|
51
|
+
DROP TABLE chat_thread;
|
|
52
|
+
|
|
53
|
+
ALTER TABLE chat_thread_new RENAME TO chat_thread;
|
|
54
|
+
|
|
55
|
+
CREATE INDEX idx_chat_thread_plan ON chat_thread(plan_id);
|
|
56
|
+
|
|
57
|
+
-- Partial index for "open threads for this brief" — same as migration 022.
|
|
58
|
+
CREATE INDEX IF NOT EXISTS idx_chat_thread_brief_path
|
|
59
|
+
ON chat_thread(brief_path) WHERE brief_path IS NOT NULL;
|
|
60
|
+
|
|
61
|
+
-- Partial index for "open threads for this patch" (GET /api/patches/:path
|
|
62
|
+
-- threadCount + POST /api/patches/:path/threads lookups).
|
|
63
|
+
CREATE INDEX IF NOT EXISTS idx_chat_thread_patch_path
|
|
64
|
+
ON chat_thread(patch_path) WHERE patch_path IS NOT NULL;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const BRIEF_IMPLEMENTER_FRONTMATTER = "---\nname: c4s-brief-implementer\ndescription: Implement features described in claude4spec briefs (markdown files in .claude4spec/briefs/). Briefs are self-contained \u2014 they include all context needed for implementation (entity snapshots, section diffs, narrative). After implementation, if you discover drift between the brief and reality (missing details, incorrect assumptions, edge cases not covered), generate a patch file in .claude4spec/patches/ as feedback for the specification author. Use when implementing changes in a code repository that has a .claude4spec/briefs/ directory.\n---\n";
|
|
2
|
-
export declare const BRIEF_IMPLEMENTER_BODY = "# c4s-brief-implementer\n\nThis skill describes how to implement a release brief in **your code repository**\n(not the spec repo). A brief is a self-contained markdown file under\n`.claude4spec/briefs/` that captures everything you need to ship the change:\nentity snapshots, section diffs, narrative, acceptance criteria.\n\n**This skill does NOT assume the `c4s` CLI is installed.** Briefs are designed\nto be self-contained \u2014 you do not need to read the main specification or query\nthe entity database. If the brief references something you cannot find in its\nbody, treat that as drift and file a patch (step 4 below).\n\n## Workflow\n\n### 1. Discover\n\n```sh\nls .claude4spec/briefs/ # list available briefs\ncat .claude4spec/briefs/<slug>.md\n```\n\nIf `.claude4spec/` is not in your current directory, walk up the directory tree\nuntil you find it (similar to how git finds `.git/`).\n\n### 2. Read the brief as self-contained input\n\nEvery brief has YAML frontmatter:\n\n```yaml\n---\ntype: brief\nfrom_release: v0.1.16\nto_release: v0.1.17\ngenerator_version: brief-author@0.1\nimplemented: false\n---\n```\n\nThe body contains everything you need \u2014 entity snapshots, section diffs, the\nnarrative of what changes, and acceptance criteria. **Do not read the main\nspecification.** If the brief omits something, that is drift (see step 4).\n\n### 3. Implement\n\nStandard code flow in your target repository: read existing code, plan, edit,\ntest. Stay focused on what the brief specifies.\n\n### 4. Feedback loop (patches)\n\nWhen you discover that the brief diverges from reality \u2014 a missing detail, an\nincorrect assumption, an edge case not covered, or anything else the\nspec-author should know \u2014 write a patch file:\n\n```sh\nmkdir -p .claude4spec/patches\n```\n\nCreate `.claude4spec/patches/<brief-slug>-<short-desc>.md` with this format:\n\n```markdown\n---\ntype: patch\nbrief: v0-1-16-to-v0-1-17.md # path relative to briefs/\npatch_kind: drift # drift | missing | incorrect | clarification\ncreated_at: 2026-05-11T17:32:00Z\ncreated_by: claude-code # or \"cursor\", \"aider\", ...\n---\n\n# Patch \u2014 short title\n\n## What I found\n\n\u2026description of the drift / missing detail / incorrect assumption\u2026\n\n## Suggestion\n\n\u2026what the spec-author should consider in a follow-up brief or entity edits\u2026\n```\n\nPatch-kind values:\n\n- `drift` \u2014 the brief described behavior X, but the codebase already does Y.\n- `missing` \u2014 the brief is silent on a detail you had to decide yourself.\n- `incorrect` \u2014 the brief is factually wrong about existing code.\n- `clarification` \u2014 the brief is ambiguous; you guessed but it should be made\n explicit for next time.\n\nThe `.claude4spec/patches/` directory is created **lazily** \u2014 only when you\nfile your first patch. The claude4spec server does NOT create it.\n\n### 5. Mark brief as implemented\n\nWhen the implementation is genuinely finished \u2014 code committed, tests green,\nmerged to main / accepted by the user \u2014 flip the brief's frontmatter to\n`implemented: true`:\n\n```bash\n# Option A \u2014 Edit tool: change the line `implemented: false` \u2192 `implemented: true`.\n# Option B \u2014 yq (idempotent; adds the field to legacy briefs that never had it):\nyq -i '.implemented = true' .claude4spec/briefs/<brief-slug>.md\n```\n\n`implemented: true` is a **declaration**, not a computed fact derived from git.\nA revert on main does NOT roll the flag back. Set it ONLY when implementation\nis realistically done \u2014 never proactively or \"just in case\".\n\n### 6. Hand-off\n\nThe spec-author reads patches manually (`ls .claude4spec/patches/`, `cat`)\nand folds them into the next brief or entity edits. There is no UI listing in\nthis release \u2014 patches are raw markdown.\n\n## Notes\n\nThis file is **fully managed** by claude4spec \u2014 it is overwritten on every\nserver start when its rendered content changes. Do not edit it by hand.\n";
|
|
2
|
+
export declare const BRIEF_IMPLEMENTER_BODY = "# c4s-brief-implementer\n\nThis skill describes how to implement a release brief in **your code repository**\n(not the spec repo). A brief is a self-contained markdown file under\n`.claude4spec/briefs/` that captures everything you need to ship the change:\nentity snapshots, section diffs, narrative, acceptance criteria.\n\n**This skill does NOT assume the `c4s` CLI is installed.** Briefs are designed\nto be self-contained \u2014 you do not need to read the main specification or query\nthe entity database. If the brief references something you cannot find in its\nbody, treat that as drift and file a patch (step 4 below).\n\n## Workflow\n\n### 1. Discover\n\n```sh\nls .claude4spec/briefs/ # list available briefs\ncat .claude4spec/briefs/<slug>.md\n```\n\nIf `.claude4spec/` is not in your current directory, walk up the directory tree\nuntil you find it (similar to how git finds `.git/`).\n\n### 2. Read the brief as self-contained input\n\nEvery brief has YAML frontmatter:\n\n```yaml\n---\ntype: brief\nfrom_release: v0.1.16\nto_release: v0.1.17\ngenerator_version: brief-author@0.1\nimplemented: false\n---\n```\n\nThe body contains everything you need \u2014 entity snapshots, section diffs, the\nnarrative of what changes, and acceptance criteria. **Do not read the main\nspecification.** If the brief omits something, that is drift (see step 4).\n\n### 3. Implement\n\nStandard code flow in your target repository: read existing code, plan, edit,\ntest. Stay focused on what the brief specifies.\n\n### 4. Feedback loop (patches)\n\n**Optional \u2014 ask the spec agent first.** When the brief is unclear, you can \u2014\n*before* guessing or writing a speculative patch \u2014 ask the specification agent\nsynchronously and get an answer back in the same terminal:\n\n```bash\nc4s ask \"Brief nie precyzuje X \u2014 czy chodzi o A czy B?\" --ct brief --brief <brief-slug>.md\n```\n\nContinue the same thread with `c4s ask \"...\" --thread <threadId>` (the\n`threadId` is printed with the answer). This escalation path is **optional**:\nit requires `c4s` installed *and* a running `npx claude4spec` server. When\neither is unavailable, skip it \u2014 the async patch loop below still works, and\nthe core workflow never assumes `c4s` is present.\n\nWhen you discover that the brief diverges from reality \u2014 a missing detail, an\nincorrect assumption, an edge case not covered, or anything else the\nspec-author should know \u2014 write a patch file:\n\n```sh\nmkdir -p .claude4spec/patches\n```\n\nCreate `.claude4spec/patches/<brief-slug>-<short-desc>.md` with this format:\n\n```markdown\n---\ntype: patch\nbrief: v0-1-16-to-v0-1-17.md # path relative to briefs/\npatch_kind: drift # drift | missing | incorrect | clarification\ncreated_at: 2026-05-11T17:32:00Z\ncreated_by: claude-code # or \"cursor\", \"aider\", ...\n---\n\n# Patch \u2014 short title\n\n## What I found\n\n\u2026description of the drift / missing detail / incorrect assumption\u2026\n\n## Suggestion\n\n\u2026what the spec-author should consider in a follow-up brief or entity edits\u2026\n```\n\nPatch-kind values:\n\n- `drift` \u2014 the brief described behavior X, but the codebase already does Y.\n- `missing` \u2014 the brief is silent on a detail you had to decide yourself.\n- `incorrect` \u2014 the brief is factually wrong about existing code.\n- `clarification` \u2014 the brief is ambiguous; you guessed but it should be made\n explicit for next time.\n\nThe `.claude4spec/patches/` directory is created **lazily** \u2014 only when you\nfile your first patch. The claude4spec server does NOT create it.\n\n### 5. Mark brief as implemented\n\nWhen the implementation is genuinely finished \u2014 code committed, tests green,\nmerged to main / accepted by the user \u2014 flip the brief's frontmatter to\n`implemented: true`:\n\n```bash\n# Option A \u2014 Edit tool: change the line `implemented: false` \u2192 `implemented: true`.\n# Option B \u2014 yq (idempotent; adds the field to legacy briefs that never had it):\nyq -i '.implemented = true' .claude4spec/briefs/<brief-slug>.md\n```\n\n`implemented: true` is a **declaration**, not a computed fact derived from git.\nA revert on main does NOT roll the flag back. Set it ONLY when implementation\nis realistically done \u2014 never proactively or \"just in case\".\n\n### 6. Hand-off\n\nThe spec-author reads patches manually (`ls .claude4spec/patches/`, `cat`)\nand folds them into the next brief or entity edits. There is no UI listing in\nthis release \u2014 patches are raw markdown.\n\n## Notes\n\nThis file is **fully managed** by claude4spec \u2014 it is overwritten on every\nserver start when its rendered content changes. Do not edit it by hand.\n";
|
|
@@ -52,6 +52,20 @@ test. Stay focused on what the brief specifies.
|
|
|
52
52
|
|
|
53
53
|
### 4. Feedback loop (patches)
|
|
54
54
|
|
|
55
|
+
**Optional — ask the spec agent first.** When the brief is unclear, you can —
|
|
56
|
+
*before* guessing or writing a speculative patch — ask the specification agent
|
|
57
|
+
synchronously and get an answer back in the same terminal:
|
|
58
|
+
|
|
59
|
+
\`\`\`bash
|
|
60
|
+
c4s ask "Brief nie precyzuje X — czy chodzi o A czy B?" --ct brief --brief <brief-slug>.md
|
|
61
|
+
\`\`\`
|
|
62
|
+
|
|
63
|
+
Continue the same thread with \`c4s ask "..." --thread <threadId>\` (the
|
|
64
|
+
\`threadId\` is printed with the answer). This escalation path is **optional**:
|
|
65
|
+
it requires \`c4s\` installed *and* a running \`npx claude4spec\` server. When
|
|
66
|
+
either is unavailable, skip it — the async patch loop below still works, and
|
|
67
|
+
the core workflow never assumes \`c4s\` is present.
|
|
68
|
+
|
|
55
69
|
When you discover that the brief diverges from reality — a missing detail, an
|
|
56
70
|
incorrect assumption, an edge case not covered, or anything else the
|
|
57
71
|
spec-author should know — write a patch file:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-implementer-template.js","sourceRoot":"","sources":["../../../src/server/external-skills/brief-implementer-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;CAI5C,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG
|
|
1
|
+
{"version":3,"file":"brief-implementer-template.js","sourceRoot":"","sources":["../../../src/server/external-skills/brief-implementer-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;CAI5C,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIrC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const SPEC_READER_FRONTMATTER = "---\nname: c4s-spec-reader\ndescription: Read claude4spec specification entities (endpoints, DTOs, tables, AC, UI views) referenced from markdown pages through XML tags like <inline_mention/>, <single_element/>, <tagged_list/>. Use when working in a repository whose pages/ contain these tags or whose .claude4spec/ directory exists. Resolves entity slugs to full data via c4s CLI or c4s-reader MCP server.\n---\n";
|
|
2
|
-
export declare const SPEC_READER_BODY = "# c4s-spec-reader\n\nThis repository contains a claude4spec specification. Pages (`*.md`) reference\nentities stored in `.claude4spec/db.sqlite` through XML tags. This skill teaches\nyou how to resolve them.\n\nAll commands below walk up from the agent's cwd to the nearest `.claude4spec/` \u2014\nno absolute paths are required.\n\n## Resolving a tag\n\nInstall `claude4spec` (Node 20+) and use the `c4s` CLI. Subcommand names match\nXML tag names 1:1.\n\n| XML tag | CLI equivalent |\n|---------|----------------|\n| `<inline_mention type=\"endpoint\" slug=\"X\"/>` | `c4s inline_mention --type endpoint --slug X` |\n| `<single_element type=\"dto\" slug=\"X\"/>` | `c4s single_element --type dto --slug X` |\n| `<element_list type=\"endpoint\" slugs=\"a,b,c\"/>` | `c4s element_list --type endpoint --slugs a,b,c` |\n| `<tagged_list type=\"dto\" tags=\"auth\" filter=\"and\"/>` | `c4s tagged_list --type dto --tags auth --filter and` |\n| `<tagged_list_mixed tags=\"public\"/>` | `c4s tagged_list_mixed --tags public` |\n\n## Expanding a whole page\n\n```sh\nc4s resolve some-page.md # writes markdown with tags expanded inline\nc4s resolve some-page.md --format json # writes { content, resolved: [...] }\n```\n\n## Discovery\n\n- `c4s catalog` \u2014 entity types, versions, and JSON Schema per view.\n- `c4s list-tags` \u2014 all tags with per-type counts.\n- `c4s list-slugs --type endpoint` \u2014 all slugs for a given type.\n\nAll output is JSON (pretty) by default. Use `--compact` for pipelines and\n`--format text` for terminal-friendly output. Errors go to stderr as JSON with\nan exit code > 0.\n\nThe database is opened **read-only** \u2014 `c4s` never mutates the project.\n";
|
|
2
|
+
export declare const SPEC_READER_BODY = "# c4s-spec-reader\n\nThis repository contains a claude4spec specification. Pages (`*.md`) reference\nentities stored in `.claude4spec/db.sqlite` through XML tags. This skill teaches\nyou how to resolve them.\n\nAll commands below walk up from the agent's cwd to the nearest `.claude4spec/` \u2014\nno absolute paths are required.\n\n## Resolving a tag\n\nInstall `claude4spec` (Node 20+) and use the `c4s` CLI. Subcommand names match\nXML tag names 1:1.\n\n| XML tag | CLI equivalent |\n|---------|----------------|\n| `<inline_mention type=\"endpoint\" slug=\"X\"/>` | `c4s inline_mention --type endpoint --slug X` |\n| `<single_element type=\"dto\" slug=\"X\"/>` | `c4s single_element --type dto --slug X` |\n| `<element_list type=\"endpoint\" slugs=\"a,b,c\"/>` | `c4s element_list --type endpoint --slugs a,b,c` |\n| `<tagged_list type=\"dto\" tags=\"auth\" filter=\"and\"/>` | `c4s tagged_list --type dto --tags auth --filter and` |\n| `<tagged_list_mixed tags=\"public\"/>` | `c4s tagged_list_mixed --tags public` |\n\n## Expanding a whole page\n\n```sh\nc4s resolve some-page.md # writes markdown with tags expanded inline\nc4s resolve some-page.md --format json # writes { content, resolved: [...] }\n```\n\n## Discovery\n\n- `c4s catalog` \u2014 entity types, versions, and JSON Schema per view.\n- `c4s list-tags` \u2014 all tags with per-type counts.\n- `c4s list-slugs --type endpoint` \u2014 all slugs for a given type.\n\nAll output is JSON (pretty) by default. Use `--compact` for pipelines and\n`--format text` for terminal-friendly output. Errors go to stderr as JSON with\nan exit code > 0.\n\nThe database is opened **read-only** \u2014 `c4s` never mutates the project.\n\n## Asking the spec agent\n\nWhen a question goes beyond resolving entities or pages, `c4s ask` runs a\nsynchronous agent turn against the specification:\n\n```sh\nc4s ask \"<question>\" --ct chat\n```\n\nUnlike the read-only commands above, `c4s ask` requires a running\n`npx claude4spec` server (it delegates the turn to the server's agent).\n";
|
|
@@ -43,5 +43,17 @@ All output is JSON (pretty) by default. Use \`--compact\` for pipelines and
|
|
|
43
43
|
an exit code > 0.
|
|
44
44
|
|
|
45
45
|
The database is opened **read-only** — \`c4s\` never mutates the project.
|
|
46
|
+
|
|
47
|
+
## Asking the spec agent
|
|
48
|
+
|
|
49
|
+
When a question goes beyond resolving entities or pages, \`c4s ask\` runs a
|
|
50
|
+
synchronous agent turn against the specification:
|
|
51
|
+
|
|
52
|
+
\`\`\`sh
|
|
53
|
+
c4s ask "<question>" --ct chat
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
Unlike the read-only commands above, \`c4s ask\` requires a running
|
|
57
|
+
\`npx claude4spec\` server (it delegates the turn to the server's agent).
|
|
46
58
|
`;
|
|
47
59
|
//# sourceMappingURL=spec-reader-template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-reader-template.js","sourceRoot":"","sources":["../../../src/server/external-skills/spec-reader-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;CAItC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"spec-reader-template.js","sourceRoot":"","sources":["../../../src/server/external-skills/spec-reader-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;CAItC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD/B,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -20,6 +20,8 @@ import { PlanService } from './services/plan.js';
|
|
|
20
20
|
import { plansRouter } from './routes/plans.js';
|
|
21
21
|
import { BriefService } from './services/brief.js';
|
|
22
22
|
import { briefsRouter } from './routes/briefs.js';
|
|
23
|
+
import { PatchService } from './services/patch.js';
|
|
24
|
+
import { patchesRouter } from './routes/patches.js';
|
|
23
25
|
import { PagesFrontmatterIndexer } from './services/pages-frontmatter-indexer.js';
|
|
24
26
|
import { SectionIndexerService } from './services/section-indexer.js';
|
|
25
27
|
import { TodosIndexerService } from './services/todos-indexer.js';
|
|
@@ -46,31 +48,33 @@ import { pluginHostRouter } from './core/plugin-host/cross-cutting.js';
|
|
|
46
48
|
import './serialization/registerAll.js';
|
|
47
49
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
48
50
|
const DEFAULT_PORT = 3000;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
51
|
+
// M01: deterministyczny port. Przy zajetym porcie serwer NIE wskakuje juz na
|
|
52
|
+
// `port+1` — failuje z czytelnym bledem i niezerowym exit code. Powod: stały
|
|
53
|
+
// `config.json.port` jest warunkiem discovery serwera przez `c4s ask`.
|
|
54
|
+
async function listenOrExit(server, port) {
|
|
55
|
+
try {
|
|
56
|
+
await new Promise((resolve, reject) => {
|
|
57
|
+
const onError = (err) => {
|
|
58
|
+
server.off('listening', onListening);
|
|
59
|
+
reject(err);
|
|
60
|
+
};
|
|
61
|
+
const onListening = () => {
|
|
62
|
+
server.off('error', onError);
|
|
63
|
+
resolve();
|
|
64
|
+
};
|
|
65
|
+
server.once('error', onError);
|
|
66
|
+
server.once('listening', onListening);
|
|
67
|
+
server.listen(port);
|
|
68
|
+
});
|
|
69
|
+
return port;
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
if (err.code === 'EADDRINUSE') {
|
|
73
|
+
console.error(`port ${port} zajęty — zatrzymaj drugą instancję lub zmień port w config.json / przekaż --port`);
|
|
74
|
+
process.exit(1);
|
|
71
75
|
}
|
|
76
|
+
throw err;
|
|
72
77
|
}
|
|
73
|
-
throw new Error(`No free port in range ${startPort}–${startPort + PORT_FALLBACK_LIMIT}`);
|
|
74
78
|
}
|
|
75
79
|
async function mountDevVite(app, cwd) {
|
|
76
80
|
const { createServer } = await import('vite');
|
|
@@ -144,6 +148,19 @@ export async function startServer(opts) {
|
|
|
144
148
|
if (briefsDir === pagesDir) {
|
|
145
149
|
console.warn(`[config] briefsDir === pagesDir ("${pagesDir}") — brief files will be visible in both indexers`);
|
|
146
150
|
}
|
|
151
|
+
// M23: patchesDir, default '.claude4spec/patches'. Same validation as briefsDir.
|
|
152
|
+
const patchesDir = bootConfig.patchesDir ?? '.claude4spec/patches';
|
|
153
|
+
if (path.isAbsolute(patchesDir)) {
|
|
154
|
+
throw new Error(`config.json: patchesDir must be relative to cwd, got: ${patchesDir}`);
|
|
155
|
+
}
|
|
156
|
+
const patchesAbs = path.resolve(cwd, patchesDir);
|
|
157
|
+
const patchesRel = path.relative(cwd, patchesAbs);
|
|
158
|
+
if (patchesRel.startsWith('..') || path.isAbsolute(patchesRel)) {
|
|
159
|
+
throw new Error(`config.json: patchesDir must not escape project root, got: ${patchesDir}`);
|
|
160
|
+
}
|
|
161
|
+
if (patchesDir === pagesDir || patchesDir === briefsDir) {
|
|
162
|
+
console.warn(`[config] patchesDir collides with pagesDir/briefsDir ("${patchesDir}") — patch files will be visible in multiple indexers`);
|
|
163
|
+
}
|
|
147
164
|
pluginHost.consolidate(bootConfig.entities);
|
|
148
165
|
const hostState = pluginHost.state();
|
|
149
166
|
console.log(`[plugin-host] active: [${hostState.active.join(', ') || '∅'}]` +
|
|
@@ -164,6 +181,9 @@ export async function startServer(opts) {
|
|
|
164
181
|
// odpowiedniego rootDir).
|
|
165
182
|
const briefsPages = new PagesService(cwd, briefsDir);
|
|
166
183
|
await briefsPages.ensureRoot();
|
|
184
|
+
// M23 m02multidir: trzeci PagesService dla patchesDir (analogicznie do briefsDir).
|
|
185
|
+
const patchesPages = new PagesService(cwd, patchesDir);
|
|
186
|
+
await patchesPages.ensureRoot();
|
|
167
187
|
const tagsService = new TagsService(db.handle);
|
|
168
188
|
const versionService = new VersionService(db.handle);
|
|
169
189
|
const rawReader = new RawEntityReader(db.handle);
|
|
@@ -257,6 +277,8 @@ export async function startServer(opts) {
|
|
|
257
277
|
// gateway (broadcast `page:changed` z drugiego katalogu — UI może slot-detect
|
|
258
278
|
// przez prefix sciezki, jezeli kiedys bedzie potrzebne).
|
|
259
279
|
const briefsWatcher = new PagesWatcher(briefsPages.root, gateway);
|
|
280
|
+
// M23 m02multidir: trzeci PagesWatcher na patchesDir.
|
|
281
|
+
const patchesWatcher = new PagesWatcher(patchesPages.root, gateway);
|
|
260
282
|
const referencesService = new ReferencesService(pages, watcher);
|
|
261
283
|
const sectionsService = new SectionsService(db.handle);
|
|
262
284
|
sectionsService.setWriteDeps({ pages, watcher });
|
|
@@ -284,9 +306,11 @@ export async function startServer(opts) {
|
|
|
284
306
|
// PageVersionService akceptuje override serializera w recordVersion(),
|
|
285
307
|
// wiec dwa serializery dziela jedna instancje wersjonowania.
|
|
286
308
|
const briefsSerializer = new PageSerializer(briefsPages);
|
|
309
|
+
// M23: serializer dla patchesDir (analogicznie do briefsSerializer).
|
|
310
|
+
const patchesSerializer = new PageSerializer(patchesPages);
|
|
287
311
|
const pageVersions = new PageVersionService(db.handle, pageSerializer);
|
|
288
|
-
// M21 m02fmidx: in-memory frontmatter indexer feeded przez
|
|
289
|
-
const pagesFrontmatterIndexer = new PagesFrontmatterIndexer(pages, briefsPages, gateway);
|
|
312
|
+
// M21 m02fmidx / M23: in-memory frontmatter indexer feeded przez trzy watchery.
|
|
313
|
+
const pagesFrontmatterIndexer = new PagesFrontmatterIndexer(pages, briefsPages, patchesPages, gateway);
|
|
290
314
|
// Mount all active backend modules — each plugin constructs its own service,
|
|
291
315
|
// mounts its router, registers its MCP server, and wires its id resolver via
|
|
292
316
|
// the supplied MountContext. Inactive plugins are skipped (config.entities).
|
|
@@ -329,25 +353,31 @@ export async function startServer(opts) {
|
|
|
329
353
|
releaseService,
|
|
330
354
|
frontmatterIndexer: pagesFrontmatterIndexer,
|
|
331
355
|
});
|
|
356
|
+
// M23: PatchService — top-level (nie plugin), wzorzec analogiczny do
|
|
357
|
+
// BriefService. Mountowany router /api/patches poniżej.
|
|
358
|
+
const patchService = new PatchService({
|
|
359
|
+
patchesPages,
|
|
360
|
+
patchesWatcher,
|
|
361
|
+
patchesSerializer,
|
|
362
|
+
pageVersions,
|
|
363
|
+
chatService,
|
|
364
|
+
frontmatterIndexer: pagesFrontmatterIndexer,
|
|
365
|
+
});
|
|
332
366
|
app.use('/api', pluginHostRouter(pluginHost));
|
|
333
367
|
app.use('/api/pages', pagesRouter(pages, watcher, pageVersions));
|
|
334
368
|
app.use('/api/tags', tagsRouter(tagsService, referencesService));
|
|
335
369
|
app.use('/api/references', referencesRouter(referencesService));
|
|
336
370
|
app.use('/api/entities', entitiesRouter(tagsService, versionService));
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
app.use('/api/page-links', pageLinksRouter(pagesLinkIndexer));
|
|
341
|
-
app.use('/api/plans', plansRouter(planService));
|
|
342
|
-
app.use('/api/releases', releasesRouter(releaseService, gateway));
|
|
343
|
-
app.use('/api/briefs', briefsRouter(briefService, pageVersions));
|
|
344
|
-
app.use('/api/chat', chatRouter({
|
|
371
|
+
// Wspolne deps tury agenta — `threadsRouter` (POST /:id/ask) i `chatRouter`
|
|
372
|
+
// (POST /api/chat, SSE) dziela ten sam runtime i rejestr `activeAdapters`.
|
|
373
|
+
const agentDeps = {
|
|
345
374
|
chatService,
|
|
346
375
|
pagesService: pages,
|
|
347
376
|
tagsService,
|
|
348
377
|
sectionsService,
|
|
349
378
|
planService,
|
|
350
379
|
briefService,
|
|
380
|
+
patchService,
|
|
351
381
|
pageVersions,
|
|
352
382
|
skillResolver,
|
|
353
383
|
skillRegistry,
|
|
@@ -356,7 +386,16 @@ export async function startServer(opts) {
|
|
|
356
386
|
pagesDir,
|
|
357
387
|
mode,
|
|
358
388
|
db,
|
|
359
|
-
}
|
|
389
|
+
};
|
|
390
|
+
app.use('/api/threads', threadsRouter(agentDeps));
|
|
391
|
+
app.use('/api/sections', sectionsRouter(sectionsService));
|
|
392
|
+
app.use('/api/todos', todosRouter(todosIndexer));
|
|
393
|
+
app.use('/api/page-links', pageLinksRouter(pagesLinkIndexer));
|
|
394
|
+
app.use('/api/plans', plansRouter(planService));
|
|
395
|
+
app.use('/api/releases', releasesRouter(releaseService, gateway));
|
|
396
|
+
app.use('/api/briefs', briefsRouter(briefService, pageVersions));
|
|
397
|
+
app.use('/api/patches', patchesRouter(patchService));
|
|
398
|
+
app.use('/api/chat', chatRouter(agentDeps));
|
|
360
399
|
app.use(errorHandler);
|
|
361
400
|
watcher.onChange((relPath, kind) => {
|
|
362
401
|
if (kind === 'unlink') {
|
|
@@ -404,8 +443,25 @@ export async function startServer(opts) {
|
|
|
404
443
|
});
|
|
405
444
|
}
|
|
406
445
|
});
|
|
446
|
+
// M23: trzeci watcher dla patchesDir — analogicznie do briefsWatcher.
|
|
447
|
+
patchesWatcher.onChange((relPath, kind) => {
|
|
448
|
+
if (kind === 'unlink') {
|
|
449
|
+
pagesFrontmatterIndexer.handleUnlink('patches', relPath);
|
|
450
|
+
pageVersions.recordVersion(relPath, 'delete', 'filesystem', undefined, patchesSerializer, 'patch').catch((err) => {
|
|
451
|
+
console.warn(`[page-version] patch delete capture for ${relPath}:`, err.message);
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
pagesFrontmatterIndexer.schedulePage('patches', relPath);
|
|
456
|
+
const op = kind === 'add' && !pageVersions.hasAny(relPath) ? 'create' : 'update';
|
|
457
|
+
pageVersions.recordVersion(relPath, op, 'filesystem', undefined, patchesSerializer, 'patch').catch((err) => {
|
|
458
|
+
console.warn(`[page-version] patch capture for ${relPath}:`, err.message);
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
});
|
|
407
462
|
watcher.start();
|
|
408
463
|
briefsWatcher.start();
|
|
464
|
+
patchesWatcher.start();
|
|
409
465
|
sectionIndexer.indexAll().catch((err) => {
|
|
410
466
|
console.error('[section-indexer] initial indexAll failed:', err);
|
|
411
467
|
});
|
|
@@ -416,12 +472,17 @@ export async function startServer(opts) {
|
|
|
416
472
|
console.error('[pages-link-indexer] initial indexAll failed:', err);
|
|
417
473
|
});
|
|
418
474
|
// M17: initial sync of page_version. For each markdown file with no captured
|
|
419
|
-
// version
|
|
475
|
+
// version — or whose latest captured version is a `delete` tombstone while the
|
|
476
|
+
// file is back on disk — write an `op = 'create'` baseline. The latter case
|
|
477
|
+
// covers delete+recreate that happened while the server wasn't watching
|
|
478
|
+
// (server down, `git checkout` between restarts): without this, the phantom
|
|
479
|
+
// `delete` stays the latest row and release diffs show the page as removed.
|
|
420
480
|
(async () => {
|
|
421
481
|
try {
|
|
422
482
|
const files = await pages.listMarkdownFiles();
|
|
423
483
|
for (const relPath of files) {
|
|
424
|
-
|
|
484
|
+
const latest = pageVersions.getLatestForPath(relPath);
|
|
485
|
+
if (latest && latest.op !== 'delete')
|
|
425
486
|
continue;
|
|
426
487
|
await pageVersions.recordVersion(relPath, 'create', 'filesystem');
|
|
427
488
|
}
|
|
@@ -443,6 +504,18 @@ export async function startServer(opts) {
|
|
|
443
504
|
catch (err) {
|
|
444
505
|
console.warn('[page-version] briefs initial sync failed:', err.message);
|
|
445
506
|
}
|
|
507
|
+
// M23: initial sync — page_version baseline dla patchy.
|
|
508
|
+
try {
|
|
509
|
+
const files = await patchesPages.listMarkdownFiles();
|
|
510
|
+
for (const relPath of files) {
|
|
511
|
+
if (pageVersions.hasAny(relPath))
|
|
512
|
+
continue;
|
|
513
|
+
await pageVersions.recordVersion(relPath, 'create', 'filesystem', undefined, patchesSerializer, 'patch');
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
catch (err) {
|
|
517
|
+
console.warn('[page-version] patches initial sync failed:', err.message);
|
|
518
|
+
}
|
|
446
519
|
try {
|
|
447
520
|
await pagesFrontmatterIndexer.indexAll();
|
|
448
521
|
}
|
|
@@ -451,7 +524,7 @@ export async function startServer(opts) {
|
|
|
451
524
|
}
|
|
452
525
|
})();
|
|
453
526
|
const closeAssets = mode === 'dev' ? await mountDevVite(app, cwd) : mountProd(app, cwd);
|
|
454
|
-
const port = await
|
|
527
|
+
const port = await listenOrExit(httpServer, portRef.current);
|
|
455
528
|
portRef.current = port;
|
|
456
529
|
const url = `http://localhost:${port}`;
|
|
457
530
|
const writingStyle = initialWritingStyle
|
|
@@ -464,6 +537,7 @@ export async function startServer(opts) {
|
|
|
464
537
|
shutdown: async () => {
|
|
465
538
|
await watcher.close();
|
|
466
539
|
await briefsWatcher.close();
|
|
540
|
+
await patchesWatcher.close();
|
|
467
541
|
await gateway.close();
|
|
468
542
|
await closeAssets();
|
|
469
543
|
db.close();
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import { type RuntimeAdapter, type StreamObserver, type UserInputHandler, type UserInputResponse } from '@inharness-ai/agent-adapters';
|
|
3
|
+
import type { ChatService } from '../services/chat.js';
|
|
4
|
+
import type { PagesService } from '../services/pages.js';
|
|
5
|
+
import type { TagsService } from '../services/tags.js';
|
|
6
|
+
import type { SectionsService } from '../services/sections.js';
|
|
7
|
+
import type { PlanService } from '../services/plan.js';
|
|
8
|
+
import type { BriefService } from '../services/brief.js';
|
|
9
|
+
import type { PatchService } from '../services/patch.js';
|
|
10
|
+
import type { PageVersionService } from '../services/page-version.js';
|
|
11
|
+
import type { SkillResolver, SkillRegistry } from '../services/skill-registry.js';
|
|
12
|
+
import type { Annotation, ChatThread } from '../../shared/entities.js';
|
|
13
|
+
import type { WsGateway } from '../ws/gateway.js';
|
|
14
|
+
import type { Db } from '../db/index.js';
|
|
15
|
+
/** Deps potrzebne do uruchomienia tury agenta. Wspolne dla `POST /api/chat`
|
|
16
|
+
* (SSE) i `POST /api/threads/:id/ask` (headless). */
|
|
17
|
+
export interface AgentTurnDeps {
|
|
18
|
+
chatService: ChatService;
|
|
19
|
+
pagesService: PagesService;
|
|
20
|
+
tagsService: TagsService;
|
|
21
|
+
sectionsService: SectionsService;
|
|
22
|
+
planService: PlanService;
|
|
23
|
+
briefService: BriefService;
|
|
24
|
+
patchService: PatchService;
|
|
25
|
+
pageVersions: PageVersionService;
|
|
26
|
+
skillResolver: SkillResolver;
|
|
27
|
+
skillRegistry: SkillRegistry;
|
|
28
|
+
ws: WsGateway;
|
|
29
|
+
cwd: string;
|
|
30
|
+
pagesDir: string;
|
|
31
|
+
mode: 'dev' | 'prod';
|
|
32
|
+
db: Db;
|
|
33
|
+
}
|
|
34
|
+
export declare const ALLOWED_MODELS: readonly ["sonnet-4.6", "opus-4.7", "haiku-4.5"];
|
|
35
|
+
export type Model = (typeof ALLOWED_MODELS)[number];
|
|
36
|
+
interface PendingInput {
|
|
37
|
+
resolve: (response: UserInputResponse) => void;
|
|
38
|
+
reject: (reason: unknown) => void;
|
|
39
|
+
requestIdsForRequest: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ActiveAdapter {
|
|
42
|
+
requestId: string;
|
|
43
|
+
adapter: RuntimeAdapter;
|
|
44
|
+
emitter: EventEmitter;
|
|
45
|
+
}
|
|
46
|
+
export declare const activeAdapters: Map<string, ActiveAdapter>;
|
|
47
|
+
export declare const pendingInputs: Map<string, PendingInput>;
|
|
48
|
+
export declare function cancelPendingForRequest(requestId: string): void;
|
|
49
|
+
/** Typed blad tury — pozwala konsumentom (headless `ask`) zmapowac powod
|
|
50
|
+
* zakonczenia na status HTTP. Te same kody co SSE `event: error`. */
|
|
51
|
+
export declare class AgentTurnError extends Error {
|
|
52
|
+
code: 'ABORTED' | 'TIMEOUT' | 'AGENT_UNAVAILABLE' | 'AGENT_ERROR';
|
|
53
|
+
constructor(code: 'ABORTED' | 'TIMEOUT' | 'AGENT_UNAVAILABLE' | 'AGENT_ERROR', message: string);
|
|
54
|
+
}
|
|
55
|
+
type TurnEvent = {
|
|
56
|
+
type: string;
|
|
57
|
+
} & Record<string, unknown>;
|
|
58
|
+
export interface AgentTurnInput {
|
|
59
|
+
/** Watek juz rozwiazany przez callera (+ planMode zaaplikowany). */
|
|
60
|
+
thread: ChatThread;
|
|
61
|
+
prompt: string;
|
|
62
|
+
annotations?: Annotation[];
|
|
63
|
+
model: Model;
|
|
64
|
+
currentPage?: string | null;
|
|
65
|
+
architectureConfig: Record<string, unknown>;
|
|
66
|
+
requestId: string;
|
|
67
|
+
consoleObserver: StreamObserver | null;
|
|
68
|
+
/** Transport callera — SSE forwarder dla `POST /api/chat`, no-op dla `ask`. */
|
|
69
|
+
onEvent: (event: TurnEvent) => void;
|
|
70
|
+
/** Interaktywny kanal user-input. Brak = headless (np. `ask`). */
|
|
71
|
+
onUserInput?: UserInputHandler;
|
|
72
|
+
}
|
|
73
|
+
export interface AgentTurnResult {
|
|
74
|
+
threadId: string;
|
|
75
|
+
answer: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Uruchamia jedna ture agenta dla istniejacego watku: wstawia wiadomosc user,
|
|
79
|
+
* buduje runtime przez rejestr `context_type`, wykonuje `adapter.execute(...)`,
|
|
80
|
+
* persystuje eventy mapperem `UnifiedEvent → chat_message`. Caller wybiera
|
|
81
|
+
* transport przez `onEvent` (SSE vs collapse). Zwraca `{ threadId, answer }`,
|
|
82
|
+
* gdzie `answer` to skolapsowany tekst assistant tej tury.
|
|
83
|
+
*
|
|
84
|
+
* Pre-flight `activeAdapters.has` (→ 409) NALEZY do callera; ta funkcja
|
|
85
|
+
* rejestruje adapter w `activeAdapters` i zwalnia go w `finally`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function runAgentTurn(deps: AgentTurnDeps, input: AgentTurnInput): Promise<AgentTurnResult>;
|
|
88
|
+
export declare function countPages(tree: Array<{
|
|
89
|
+
type: string;
|
|
90
|
+
children?: unknown[];
|
|
91
|
+
}>): number;
|
|
92
|
+
export {};
|