@inharness-ai/claude4spec 1.0.20 → 1.0.21

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 (106) hide show
  1. package/.claude/skills/c4s-brief-implementer/SKILL.md +6 -13
  2. package/CHANGELOG.md +13 -0
  3. package/dist/client/assets/{arc-qrIe4IVl.js → arc-Coa9fbDO.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CF6sgG8n.js → architectureDiagram-3BPJPVTR-VJZcRMEN.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-Cf8Tx0VN.js → blockDiagram-GPEHLZMM-C7dU2lW1.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-BDkuMEyf.js → c4Diagram-AAUBKEIU-CG_BBm_5.js} +1 -1
  7. package/dist/client/assets/channel-D5gzBvo7.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-ChycTonk.js → chunk-2J33WTMH-BnS95YpK.js} +1 -1
  9. package/dist/client/assets/{chunk-4BX2VUAB-BpUgWjxx.js → chunk-4BX2VUAB-COr8w3X3.js} +1 -1
  10. package/dist/client/assets/{chunk-55IACEB6-CeHg_yjT.js → chunk-55IACEB6-CxrIbZhB.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-BpxYq7ab.js → chunk-727SXJPM-DRchPPRe.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-bghkOtr6.js → chunk-AQP2D5EJ-_SfN7mED.js} +1 -1
  13. package/dist/client/assets/{chunk-FMBD7UC4-4sXokGgd.js → chunk-FMBD7UC4-p2tIiP1D.js} +1 -1
  14. package/dist/client/assets/{chunk-ND2GUHAM-DYQOCE5T.js → chunk-ND2GUHAM-B1mbl2hP.js} +1 -1
  15. package/dist/client/assets/{chunk-QZHKN3VN-NkVuDlFD.js → chunk-QZHKN3VN-DBUpeqvS.js} +1 -1
  16. package/dist/client/assets/classDiagram-4FO5ZUOK-CT-amIxa.js +1 -0
  17. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CT-amIxa.js +1 -0
  18. package/dist/client/assets/{cose-bilkent-S5V4N54A-1l4P4WRI.js → cose-bilkent-S5V4N54A-BBsY5aKD.js} +1 -1
  19. package/dist/client/assets/{dagre-BM42HDAG-CSQie-gR.js → dagre-BM42HDAG-b-vu4RC9.js} +1 -1
  20. package/dist/client/assets/{diagram-2AECGRRQ-DME9ULoN.js → diagram-2AECGRRQ-j-DW9qSf.js} +1 -1
  21. package/dist/client/assets/{diagram-5GNKFQAL-Dn1Rw5k5.js → diagram-5GNKFQAL-DHX_WYWQ.js} +1 -1
  22. package/dist/client/assets/{diagram-KO2AKTUF-Duh_PNWR.js → diagram-KO2AKTUF-DxdQok_M.js} +1 -1
  23. package/dist/client/assets/{diagram-LMA3HP47-B7Q5pV60.js → diagram-LMA3HP47-BbTIX5c1.js} +1 -1
  24. package/dist/client/assets/{diagram-OG6HWLK6-C0KL_RDd.js → diagram-OG6HWLK6-BQ9ODAlH.js} +1 -1
  25. package/dist/client/assets/{erDiagram-TEJ5UH35-D5elfwSC.js → erDiagram-TEJ5UH35-6lwAL1y9.js} +1 -1
  26. package/dist/client/assets/{flowDiagram-I6XJVG4X-BHmjX-WI.js → flowDiagram-I6XJVG4X-ioSHb5-t.js} +1 -1
  27. package/dist/client/assets/{ganttDiagram-6RSMTGT7-KvoGFbS2.js → ganttDiagram-6RSMTGT7-CXFQp9Nj.js} +1 -1
  28. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DsZL8BfK.js → gitGraphDiagram-PVQCEYII-C1pVD_NQ.js} +1 -1
  29. package/dist/client/assets/index-DyAnw7YN.js +798 -0
  30. package/dist/client/assets/{index-zzILqHQN.js → index-JaAxQJXh.js} +1 -1
  31. package/dist/client/assets/{index-ClaVbrEF.js → index-hz5T_W2e.js} +1 -1
  32. package/dist/client/assets/{infoDiagram-5YYISTIA-DoQ6iSpJ.js → infoDiagram-5YYISTIA-C2Guev-g.js} +1 -1
  33. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-akftyN0J.js → ishikawaDiagram-YF4QCWOH-D3v8VBb2.js} +1 -1
  34. package/dist/client/assets/{journeyDiagram-JHISSGLW-PPex4PiV.js → journeyDiagram-JHISSGLW-DX1AW_Ap.js} +1 -1
  35. package/dist/client/assets/{kanban-definition-UN3LZRKU-D114i3s1.js → kanban-definition-UN3LZRKU-CzXThvq2.js} +1 -1
  36. package/dist/client/assets/{linear-BuwQPJom.js → linear-CVw4gl5i.js} +1 -1
  37. package/dist/client/assets/{mermaid.core-CMX3GAvM.js → mermaid.core-C29eoXRj.js} +4 -4
  38. package/dist/client/assets/{mindmap-definition-RKZ34NQL-ClBxWJju.js → mindmap-definition-RKZ34NQL-DEEGVQVA.js} +1 -1
  39. package/dist/client/assets/{pieDiagram-4H26LBE5-hj5zVPj5.js → pieDiagram-4H26LBE5-Dme-VM6m.js} +1 -1
  40. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CRbR0G7M.js → quadrantDiagram-W4KKPZXB-CURFNo24.js} +1 -1
  41. package/dist/client/assets/{requirementDiagram-4Y6WPE33-Dto4B70I.js → requirementDiagram-4Y6WPE33-DxMZWXME.js} +1 -1
  42. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DyYP8rwY.js → sankeyDiagram-5OEKKPKP-BW64D4_P.js} +1 -1
  43. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-C-mrSLrJ.js → sequenceDiagram-3UESZ5HK-BATRPm8Q.js} +1 -1
  44. package/dist/client/assets/{stateDiagram-AJRCARHV-IoDlhAe6.js → stateDiagram-AJRCARHV-pgHVMnO3.js} +1 -1
  45. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-szm_LIuD.js +1 -0
  46. package/dist/client/assets/{timeline-definition-PNZ67QCA-DEXg3TEw.js → timeline-definition-PNZ67QCA-qBxJZPWd.js} +1 -1
  47. package/dist/client/assets/{vennDiagram-CIIHVFJN-CNu7LaT1.js → vennDiagram-CIIHVFJN-BZJK9hqJ.js} +1 -1
  48. package/dist/client/assets/{wardley-L42UT6IY-0hGvREmD.js → wardley-L42UT6IY-BobtgEXg.js} +1 -1
  49. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CVLz-xFz.js → wardleyDiagram-YWT4CUSO-DuWfX_-P.js} +1 -1
  50. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CFymKAcX.js → xychartDiagram-2RQKCTM6-DCw1iURo.js} +1 -1
  51. package/dist/client/index.html +1 -1
  52. package/dist/server/core/plugin-host/entities-router.d.ts +2 -1
  53. package/dist/server/core/plugin-host/entities-router.js +16 -1
  54. package/dist/server/core/plugin-host/entities-router.js.map +1 -1
  55. package/dist/server/db/migrations/041_chat_thread_transagent.sql +22 -0
  56. package/dist/server/index.js +16 -0
  57. package/dist/server/index.js.map +1 -1
  58. package/dist/server/mcp/release-tools/index.d.ts +11 -0
  59. package/dist/server/mcp/release-tools/index.js +68 -5
  60. package/dist/server/mcp/release-tools/index.js.map +1 -1
  61. package/dist/server/mcp/release-tools/projection.d.ts +11 -2
  62. package/dist/server/mcp/release-tools/projection.js +36 -7
  63. package/dist/server/mcp/release-tools/projection.js.map +1 -1
  64. package/dist/server/mcp/release-tools/types.d.ts +39 -2
  65. package/dist/server/mcp/transagent-tools.d.ts +26 -0
  66. package/dist/server/mcp/transagent-tools.js +75 -0
  67. package/dist/server/mcp/transagent-tools.js.map +1 -0
  68. package/dist/server/routes/agent-turn.d.ts +9 -0
  69. package/dist/server/routes/agent-turn.js +58 -1
  70. package/dist/server/routes/agent-turn.js.map +1 -1
  71. package/dist/server/routes/briefs.js +12 -4
  72. package/dist/server/routes/briefs.js.map +1 -1
  73. package/dist/server/routes/chat.js +18 -0
  74. package/dist/server/routes/chat.js.map +1 -1
  75. package/dist/server/routes/plans.js +13 -0
  76. package/dist/server/routes/plans.js.map +1 -1
  77. package/dist/server/routes/threads.js +9 -2
  78. package/dist/server/routes/threads.js.map +1 -1
  79. package/dist/server/services/brief.d.ts +30 -8
  80. package/dist/server/services/brief.js +58 -28
  81. package/dist/server/services/brief.js.map +1 -1
  82. package/dist/server/services/chat-context.js +10 -6
  83. package/dist/server/services/chat-context.js.map +1 -1
  84. package/dist/server/services/chat.d.ts +12 -1
  85. package/dist/server/services/chat.js +56 -21
  86. package/dist/server/services/chat.js.map +1 -1
  87. package/dist/server/services/entity-indexer.js +21 -14
  88. package/dist/server/services/entity-indexer.js.map +1 -1
  89. package/dist/server/services/plan.d.ts +7 -1
  90. package/dist/server/services/plan.js +17 -4
  91. package/dist/server/services/plan.js.map +1 -1
  92. package/dist/server/services/transagent-dispatcher.d.ts +60 -0
  93. package/dist/server/services/transagent-dispatcher.js +147 -0
  94. package/dist/server/services/transagent-dispatcher.js.map +1 -0
  95. package/dist/server/skills/brief-author/SKILL.md +26 -17
  96. package/dist/server/workspace/project-context.js +2 -1
  97. package/dist/server/workspace/project-context.js.map +1 -1
  98. package/dist/shared/entities.d.ts +46 -3
  99. package/dist/shared/entities.js +1 -0
  100. package/dist/shared/entities.js.map +1 -1
  101. package/package.json +1 -1
  102. package/dist/client/assets/channel-CTF_J4I4.js +0 -1
  103. package/dist/client/assets/classDiagram-4FO5ZUOK-Dt9RLC8r.js +0 -1
  104. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dt9RLC8r.js +0 -1
  105. package/dist/client/assets/index-DnLELaLA.js +0 -798
  106. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BblFLijq.js +0 -1
@@ -14,7 +14,7 @@
14
14
  import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
15
15
  import { z } from 'zod';
16
16
  import { DomainError } from '../../services/tags.js';
17
- import { projectReleaseDiff, projectSpecSnapshot } from './projection.js';
17
+ import { DEFAULT_PAGE_LIMIT, projectReleaseDiff, projectSpecSnapshot } from './projection.js';
18
18
  const INCLUDE_VALUES = ['pages', 'entities'];
19
19
  const ENTITY_TYPE_VALUES = ['endpoint', 'dto', 'database-table', 'ui-view', 'ac'];
20
20
  const DEFAULT_INCLUDE = ['pages', 'entities'];
@@ -46,7 +46,25 @@ export function createReleaseToolsServer(deps) {
46
46
  return fail(err);
47
47
  }
48
48
  });
49
- const releaseList = mcpTool('release_list', 'List all releases newest-first. Returns id, name, description, createdBy, createdAt per release.', {}, async () => ok({ releases: deps.releaseService.listReleases() }));
49
+ const releaseList = mcpTool('release_list', 'List releases newest-first (paginated). Returns `{ releases, total }` where `total` is the full count before limit/offset. Per release: id, name, description, createdBy, createdAt.', {
50
+ limit: z
51
+ .number()
52
+ .optional()
53
+ .describe('Window size. Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
54
+ offset: z
55
+ .number()
56
+ .optional()
57
+ .describe('Window offset into the newest-first list. Default 0. Negative → 400 INVALID_PAGINATION.'),
58
+ }, async (args) => {
59
+ try {
60
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
61
+ const all = deps.releaseService.listReleases();
62
+ return ok({ releases: all.slice(offset, offset + limit), total: all.length });
63
+ }
64
+ catch (err) {
65
+ return fail(err);
66
+ }
67
+ });
50
68
  const releaseShow = mcpTool('release_show', "Show a release's identification surface (release metadata + lists of entity slugs/page paths present at the release). Returns `MCPSpecSnapshot` — IDENTIFICATION only, not full entity/page data. To inspect the data, call `release_diff` (with this release as `to` and any earlier release — or `null` — as `from`). Accepts numeric id or release name. Filters: `include` (defaults to ['pages','entities']) trims the dimensions returned; `entityTypes` restricts entity types. Brief versions (`page_version.kind='brief'`) are excluded from `pages` (L2 invariant).", {
51
69
  idOrName: z.union([z.string(), z.number()]).describe('Numeric id or release name'),
52
70
  include: z
@@ -57,19 +75,28 @@ export function createReleaseToolsServer(deps) {
57
75
  .array(z.enum(ENTITY_TYPE_VALUES))
58
76
  .optional()
59
77
  .describe("Filter entity types. Default all 5 types. Empty array → 400 INVALID_ENTITY_TYPES_FILTER. Passing this without 'entities' in `include` → 400 CONFLICTING_FILTERS."),
78
+ limit: z
79
+ .number()
80
+ .optional()
81
+ .describe('Window size applied independently to entities[] and pages[]. Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
82
+ offset: z
83
+ .number()
84
+ .optional()
85
+ .describe('Window offset applied independently to entities[] and pages[]. Default 0. Negative → 400 INVALID_PAGINATION.'),
60
86
  }, async (args) => {
61
87
  try {
62
88
  const include = args.include ?? DEFAULT_INCLUDE;
63
89
  const entityTypes = args.entityTypes;
64
90
  validateFilters(args.include, entityTypes);
91
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
65
92
  const raw = deps.releaseService.getReleaseSnapshot(args.idOrName);
66
- return ok(projectSpecSnapshot(raw, { include, entityTypes }));
93
+ return ok(projectSpecSnapshot(raw, { include, entityTypes }, { limit, offset }));
67
94
  }
68
95
  catch (err) {
69
96
  return fail(err);
70
97
  }
71
98
  });
72
- const releaseDiff = mcpTool('release_diff', "Compute a SELF-CONTAINED structured diff between two releases. Each entity carries full `before`/`after` snapshots (per plugin's serializer); each modified section carries full `before`/`after` raw markdown. There is NO `line_diff` and NO drill-down tool (`get_<type>` / `Read pages/...` are not available in this thread) this single round-trip is everything you need to ground a brief. Pass `from: null` for the initial brief (synthetic empty `from`; all entries become `op:'create'` with `before` omitted). `from === to` returns an empty diff. Filters: `include` (defaults ['pages','entities']) and `entityTypes` (defaults all 5) trim the payload to manage context budget.", {
99
+ const releaseDiff = mcpTool('release_diff', "Compute a SELF-CONTAINED structured diff between two releases. Heavy mode (default): each entity carries full `before`/`after` snapshots (per plugin's serializer); each modified section carries full `before`/`after` raw markdown. `entities[]`/`pages[]` are paginated independently by `limit`/`offset` (default 5), and `total: { entities?, pages? }` reports the full count after `include`/`entityTypes` filters, before the window. Light mode (`summaryOnly: true`): returns a delta MAP — `total` + identifiers `{ type, slug, name, op }` per entity and `{ path, op }` per page (incl. `op:'delete'`), WITHOUT `before`/`after`/`content`; the map is FULL and ignores `limit`/`offset`. Intended use: probe with `summaryOnly: true` to learn what changed, then fan out the heavy slices (`entityTypes` and/or `limit`/`offset`) to subagents. Pass `from: null` for the initial brief (synthetic empty `from`; all entries become `op:'create'` with `before` omitted). `from === to` returns an empty diff. There is NO `line_diff`.", {
73
100
  fromIdOrName: z
74
101
  .union([z.string(), z.number(), z.null()])
75
102
  .describe('Earlier release id or name. `null` = initial brief (compare to empty state — all entries become op:create).'),
@@ -82,17 +109,37 @@ export function createReleaseToolsServer(deps) {
82
109
  .array(z.enum(ENTITY_TYPE_VALUES))
83
110
  .optional()
84
111
  .describe("Filter entity types. Default all 5 types. Empty array → 400 INVALID_ENTITY_TYPES_FILTER. Passing this without 'entities' in `include` → 400 CONFLICTING_FILTERS."),
112
+ summaryOnly: z
113
+ .boolean()
114
+ .optional()
115
+ .describe('Default false. true = light delta-map: only `total` + identifiers `{ type, slug, name, op }` / `{ path, op }` (incl. deletes), no before/after/content. Full lists — ignores limit/offset.'),
116
+ limit: z
117
+ .number()
118
+ .optional()
119
+ .describe('Window size applied independently to entities[] and pages[] (heavy mode only). Default 5, no upper limit. Negative → 400 INVALID_PAGINATION.'),
120
+ offset: z
121
+ .number()
122
+ .optional()
123
+ .describe('Window offset applied independently to entities[] and pages[] (heavy mode only). Default 0. Beyond total → empty list + total. Negative → 400 INVALID_PAGINATION.'),
85
124
  }, async (args) => {
86
125
  try {
87
126
  const include = args.include ?? DEFAULT_INCLUDE;
88
127
  const entityTypes = args.entityTypes;
89
128
  validateFilters(args.include, entityTypes);
129
+ // Validate pagination BEFORE the summaryOnly branch — negative limit/offset
130
+ // is a 400 even though `summaryOnly: true` later ignores the window.
131
+ const { limit, offset } = resolvePagination(args.limit, args.offset);
132
+ const summaryOnly = args.summaryOnly === true;
90
133
  const fromIdOrName = args.fromIdOrName;
91
134
  const toIdOrName = args.toIdOrName;
92
135
  const raw = deps.releaseService.getReleaseDiff(fromIdOrName, toIdOrName);
93
136
  const toSnap = deps.releaseService.getReleaseSnapshot(toIdOrName);
94
137
  const fromSnap = fromIdOrName === null ? null : deps.releaseService.getReleaseSnapshot(fromIdOrName);
95
- return ok(projectReleaseDiff(raw, fromSnap, toSnap, { include, entityTypes }));
138
+ return ok(projectReleaseDiff(raw, fromSnap, toSnap, { include, entityTypes }, {
139
+ summaryOnly,
140
+ limit,
141
+ offset,
142
+ }));
96
143
  }
97
144
  catch (err) {
98
145
  return fail(err);
@@ -126,6 +173,22 @@ export function createReleaseToolsServer(deps) {
126
173
  tools: [releaseCreate, releaseList, releaseShow, releaseDiff, releaseUpdate],
127
174
  });
128
175
  }
176
+ const DEFAULT_OFFSET = 0;
177
+ /**
178
+ * Resolve `limit`/`offset` for the MCP-only pagination of `release_list` /
179
+ * `release_show` / `release_diff`. Negative values are a loud 400 `INVALID_PAGINATION` (no
180
+ * silent clamp), consistent with the rest of M17's jaskrawe błędy. Zod keeps
181
+ * these loose (`z.number()`) so negatives reach this check rather than failing
182
+ * as a generic Zod error.
183
+ */
184
+ export function resolvePagination(limit, offset) {
185
+ const l = typeof limit === 'number' ? limit : DEFAULT_PAGE_LIMIT;
186
+ const o = typeof offset === 'number' ? offset : DEFAULT_OFFSET;
187
+ if (l < 0 || o < 0) {
188
+ throw new DomainError('INVALID_PAGINATION', 'limit and offset must be >= 0');
189
+ }
190
+ return { limit: l, offset: o };
191
+ }
129
192
  function validateFilters(include, entityTypes) {
130
193
  if (include !== undefined && include.length === 0) {
131
194
  throw new DomainError('INVALID_INCLUDE_FILTER', 'include must not be an empty array');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/index.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,17 @@
5
5
  */
6
6
  import type { LineDiffLite, PageXmlRefLite, RawDelta, SpecSnapshot } from '../../../shared/entities.js';
7
7
  import type { EntitySnapshot, MCPReleaseDiff, MCPSpecSnapshot, ProjectionOpts } from './types.js';
8
- export declare function projectReleaseDiff(raw: RawDelta, fromSnap: SpecSnapshot | null, toSnap: SpecSnapshot, opts: ProjectionOpts): MCPReleaseDiff;
9
- export declare function projectSpecSnapshot(raw: SpecSnapshot, opts: ProjectionOpts): MCPSpecSnapshot;
8
+ export declare function projectReleaseDiff(raw: RawDelta, fromSnap: SpecSnapshot | null, toSnap: SpecSnapshot, opts: ProjectionOpts, options?: {
9
+ summaryOnly?: boolean;
10
+ limit?: number;
11
+ offset?: number;
12
+ }): MCPReleaseDiff;
13
+ /** MCP-only default window size for `release_show` / `release_list` (M17). */
14
+ export declare const DEFAULT_PAGE_LIMIT = 5;
15
+ export declare function projectSpecSnapshot(raw: SpecSnapshot, opts: ProjectionOpts, pagination?: {
16
+ limit?: number;
17
+ offset?: number;
18
+ }): MCPSpecSnapshot;
10
19
  export declare function escapeInlineTags(s: string): string;
11
20
  /**
12
21
  * Project structural `LineDiffLite` (M02 `m02pvdif1`) into a single markdown
@@ -11,16 +11,34 @@ const ENTITY_TYPES = new Set([
11
11
  'ui-view',
12
12
  'ac',
13
13
  ]);
14
- export function projectReleaseDiff(raw, fromSnap, toSnap, opts) {
15
- const out = { from: raw.from, to: raw.to };
14
+ export function projectReleaseDiff(raw, fromSnap, toSnap, opts, options) {
15
+ const summaryOnly = options?.summaryOnly ?? false;
16
+ const limit = options?.limit ?? DEFAULT_PAGE_LIMIT;
17
+ const offset = options?.offset ?? 0;
18
+ const out = { from: raw.from, to: raw.to, total: {} };
19
+ // Compute the FULL filtered delta first, record `total` on it, THEN branch:
20
+ // light (`summaryOnly`) strips to identifiers and ignores the window; heavy
21
+ // slices `entities[]`/`pages[]` independently by the same `limit`/`offset`.
16
22
  if (opts.include.includes('entities')) {
17
- out.entities = projectEntities(raw.entities, fromSnap, toSnap, opts.entityTypes);
23
+ const full = projectEntities(raw.entities, fromSnap, toSnap, opts.entityTypes);
24
+ out.total.entities = full.length;
25
+ out.entities = summaryOnly ? full.map(toEntityLight) : full.slice(offset, offset + limit);
18
26
  }
19
27
  if (opts.include.includes('pages')) {
20
- out.pages = projectPages(raw.pages, fromSnap, toSnap);
28
+ const full = projectPages(raw.pages, fromSnap, toSnap);
29
+ out.total.pages = full.length;
30
+ out.pages = summaryOnly ? full.map(toPageLight) : full.slice(offset, offset + limit);
21
31
  }
22
32
  return out;
23
33
  }
34
+ /** Strip a heavy entity delta to its light identifier form (`summaryOnly: true`). */
35
+ function toEntityLight(e) {
36
+ return { type: e.type, slug: e.slug, name: e.name, op: e.op };
37
+ }
38
+ /** Strip a heavy page delta to its light identifier form (`summaryOnly: true`). */
39
+ function toPageLight(p) {
40
+ return { path: p.path, op: p.op };
41
+ }
24
42
  function projectEntities(rawEntities, fromSnap, toSnap, entityTypes) {
25
43
  const fromMap = indexEntitiesByTypeSlug(fromSnap?.entities ?? []);
26
44
  const toMap = indexEntitiesByTypeSlug(toSnap.entities);
@@ -136,7 +154,11 @@ function projectPages(rawPages, fromSnap, toSnap) {
136
154
  }
137
155
  return out;
138
156
  }
139
- export function projectSpecSnapshot(raw, opts) {
157
+ /** MCP-only default window size for `release_show` / `release_list` (M17). */
158
+ export const DEFAULT_PAGE_LIMIT = 5;
159
+ export function projectSpecSnapshot(raw, opts, pagination) {
160
+ const limit = pagination?.limit ?? DEFAULT_PAGE_LIMIT;
161
+ const offset = pagination?.offset ?? 0;
140
162
  const out = {
141
163
  release: {
142
164
  id: raw.release.id,
@@ -145,9 +167,12 @@ export function projectSpecSnapshot(raw, opts) {
145
167
  created_by: raw.release.createdBy,
146
168
  created_at: raw.release.createdAt,
147
169
  },
170
+ total: {},
148
171
  };
172
+ // limit/offset apply independently to each list; `total` is the full count
173
+ // after include/entityTypes filtering but before the window is sliced.
149
174
  if (opts.include.includes('entities')) {
150
- out.entities = raw.entities
175
+ const entities = raw.entities
151
176
  .filter((e) => e.op !== 'delete')
152
177
  .filter((e) => !opts.entityTypes || opts.entityTypes.includes(e.type))
153
178
  .map((e) => ({
@@ -155,9 +180,13 @@ export function projectSpecSnapshot(raw, opts) {
155
180
  slug: e.slug,
156
181
  name: extractEntityName(e.data, e.slug),
157
182
  }));
183
+ out.total.entities = entities.length;
184
+ out.entities = entities.slice(offset, offset + limit);
158
185
  }
159
186
  if (opts.include.includes('pages')) {
160
- out.pages = raw.pages.filter((p) => p.op !== 'delete').map((p) => ({ path: p.path }));
187
+ const pages = raw.pages.filter((p) => p.op !== 'delete').map((p) => ({ path: p.path }));
188
+ out.total.pages = pages.length;
189
+ out.pages = pages.slice(offset, offset + limit);
161
190
  }
162
191
  return out;
163
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../../src/server/mcp/release-tools/projection.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,36 @@ export interface MCPReleaseDiff {
18
18
  id: number;
19
19
  name: string;
20
20
  };
21
- entities?: MCPEntityDelta[];
22
- pages?: MCPPageDelta[];
21
+ /**
22
+ * Totals AFTER include/entityTypes filters, BEFORE limit/offset. Keys stay in
23
+ * lock-step with `include` (mirrors `MCPSpecSnapshot.total`). Always present so
24
+ * a paginating consumer — or the brief-author probe-map (`summaryOnly: true`) —
25
+ * knows the full cardinality of each filtered dimension.
26
+ */
27
+ total?: {
28
+ entities?: number;
29
+ pages?: number;
30
+ };
31
+ /**
32
+ * Heavy variant (`summaryOnly !== true`): full `MCPEntityDelta` with
33
+ * `before`/`after`, windowed by `limit`/`offset`.
34
+ * Light variant (`summaryOnly === true`): `MCPEntityDeltaLight` identifiers
35
+ * only (full list, window ignored).
36
+ */
37
+ entities?: MCPEntityDelta[] | MCPEntityDeltaLight[];
38
+ pages?: MCPPageDelta[] | MCPPageDeltaLight[];
39
+ }
40
+ /** Light delta-map entry (`summaryOnly: true`) — identifier + op, no `before`/`after`. */
41
+ export interface MCPEntityDeltaLight {
42
+ type: 'endpoint' | 'dto' | 'database-table' | 'ui-view' | 'ac';
43
+ slug: string;
44
+ name: string;
45
+ op: 'create' | 'update' | 'delete';
46
+ }
47
+ /** Light delta-map entry (`summaryOnly: true`) — path + op, no `sections`/`content`. */
48
+ export interface MCPPageDeltaLight {
49
+ path: string;
50
+ op: 'create' | 'update' | 'delete';
23
51
  }
24
52
  export interface MCPEntityDelta {
25
53
  type: 'endpoint' | 'dto' | 'database-table' | 'ui-view' | 'ac';
@@ -74,6 +102,15 @@ export interface MCPSpecSnapshot {
74
102
  created_by: string;
75
103
  created_at: string;
76
104
  };
105
+ /**
106
+ * Totals BEFORE limit/offset, AFTER include/entityTypes filters. Keys stay in
107
+ * lock-step with `include`: `entities`/`pages` key omitted when its dimension
108
+ * is excluded. Lets a paginating consumer know how many items exist in total.
109
+ */
110
+ total: {
111
+ entities?: number;
112
+ pages?: number;
113
+ };
77
114
  entities?: {
78
115
  type: string;
79
116
  slug: string;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 0.1.69 Transagents — `transagent-tools` MCP server.
3
+ *
4
+ * Single tool `runTransagent`: delegate a unit of work to a hidden CHILD thread
5
+ * ("banka") of the SAME spec, running in a chosen `contextType`. The child runs
6
+ * a full turn (side-effecting artifacts, live stream into the parent panel) and
7
+ * returns ONLY a `summary` to the parent LLM's context — keeping the parent's
8
+ * context budget free of the child's full transcript.
9
+ *
10
+ * Per-request instance (like `plan-tools` / `brief-tools`): `parentThreadId` and
11
+ * the `dispatcher` are captured from the parent turn. Mounted ONLY for
12
+ * `context_type ∈ {chat, patch}` and never inside a child banka (recursion depth
13
+ * 1) — both guards live in agent-turn.ts.
14
+ *
15
+ * Read-only cross-spec counterpart: `c4s-tools` (consults a DIFFERENT spec).
16
+ */
17
+ import { type McpServerInstance } from '@inharness-ai/agent-adapters';
18
+ import type { TransagentDispatcher } from '../services/transagent-dispatcher.js';
19
+ /** Tool name as the SDK reports it (`mcp__<server>__<tool>`) — used by the
20
+ * agent-turn loop to correlate the tool_use event with the dispatcher. */
21
+ export declare const TRANSAGENT_TOOL_FULL_NAME = "mcp__transagent-tools__runTransagent";
22
+ export interface TransagentToolsContext {
23
+ parentThreadId: string;
24
+ dispatcher: TransagentDispatcher;
25
+ }
26
+ export declare function buildTransagentToolsServer(ctx: TransagentToolsContext): McpServerInstance;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * 0.1.69 Transagents — `transagent-tools` MCP server.
3
+ *
4
+ * Single tool `runTransagent`: delegate a unit of work to a hidden CHILD thread
5
+ * ("banka") of the SAME spec, running in a chosen `contextType`. The child runs
6
+ * a full turn (side-effecting artifacts, live stream into the parent panel) and
7
+ * returns ONLY a `summary` to the parent LLM's context — keeping the parent's
8
+ * context budget free of the child's full transcript.
9
+ *
10
+ * Per-request instance (like `plan-tools` / `brief-tools`): `parentThreadId` and
11
+ * the `dispatcher` are captured from the parent turn. Mounted ONLY for
12
+ * `context_type ∈ {chat, patch}` and never inside a child banka (recursion depth
13
+ * 1) — both guards live in agent-turn.ts.
14
+ *
15
+ * Read-only cross-spec counterpart: `c4s-tools` (consults a DIFFERENT spec).
16
+ */
17
+ import { createMcpServer, mcpTool } from '@inharness-ai/agent-adapters';
18
+ import { z } from 'zod';
19
+ import { DomainError } from '../services/tags.js';
20
+ /** Tool name as the SDK reports it (`mcp__<server>__<tool>`) — used by the
21
+ * agent-turn loop to correlate the tool_use event with the dispatcher. */
22
+ export const TRANSAGENT_TOOL_FULL_NAME = 'mcp__transagent-tools__runTransagent';
23
+ export function buildTransagentToolsServer(ctx) {
24
+ const runTransagent = mcpTool('runTransagent', [
25
+ 'Delegate a unit of work to a hidden CHILD thread ("banka") of THIS specification.',
26
+ 'The child runs a full turn in the chosen `contextType` (brief | chat | patch), may produce',
27
+ 'side-effecting artifacts, streams live into your panel, and returns ONLY a concise `summary`',
28
+ 'to your context — its full transcript stays hidden, keeping your context budget small.',
29
+ 'Use it to hand off self-contained work: "turn this analysis into a brief", "split this plan",',
30
+ '"draft the patch for X". Returns { threadId, summary }.',
31
+ " - contextType='brief': creates an ANALYSIS brief file (source: analysis, to_release: null)",
32
+ ' grounded in the `message` you pass (your analysis), then runs a brief-editorial child.',
33
+ ' Optional payload: { fromReleaseName?, suffix?, content? }.',
34
+ " - contextType='patch': resolves a patch — payload MUST include { patchPath }.",
35
+ " - contextType='chat': a plain child chat turn.",
36
+ 'Continue an existing child by passing its `threadId` (omit `contextType` semantics then).',
37
+ 'At most one child runs per turn (this tool_use blocks until the child finishes).',
38
+ ].join('\n'), {
39
+ contextType: z.enum(['brief', 'chat', 'patch']),
40
+ message: z.string(),
41
+ payload: z.record(z.string(), z.unknown()).optional(),
42
+ threadId: z.string().optional(),
43
+ }, async (input) => {
44
+ try {
45
+ const result = await ctx.dispatcher.run({
46
+ parentThreadId: ctx.parentThreadId,
47
+ contextType: input.contextType,
48
+ message: String(input.message ?? ''),
49
+ payload: input.payload && typeof input.payload === 'object'
50
+ ? input.payload
51
+ : undefined,
52
+ threadId: typeof input.threadId === 'string' ? input.threadId : undefined,
53
+ });
54
+ return {
55
+ content: [{ type: 'text', text: JSON.stringify(result) }],
56
+ };
57
+ }
58
+ catch (err) {
59
+ // Non-abort child failure collapses upward as the parent's tool_result
60
+ // isError { code, message }. The last good summary remains readable via
61
+ // runTransagent({ threadId }).
62
+ const code = err instanceof DomainError ? err.code : 'AGENT_ERROR';
63
+ const message = err instanceof Error ? err.message : String(err);
64
+ return {
65
+ content: [{ type: 'text', text: JSON.stringify({ error: { code, message } }) }],
66
+ isError: true,
67
+ };
68
+ }
69
+ });
70
+ return createMcpServer({
71
+ name: 'transagent-tools',
72
+ tools: [runTransagent],
73
+ });
74
+ }
75
+ //# sourceMappingURL=transagent-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transagent-tools.js","sourceRoot":"","sources":["../../../src/server/mcp/transagent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,OAAO,EAA0B,MAAM,8BAA8B,CAAC;AAChG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;2EAC2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC;AAOhF,MAAM,UAAU,0BAA0B,CAAC,GAA2B;IACpE,MAAM,aAAa,GAAG,OAAO,CAC3B,eAAe,EACf;QACE,mFAAmF;QACnF,4FAA4F;QAC5F,8FAA8F;QAC9F,wFAAwF;QACxF,+FAA+F;QAC/F,yDAAyD;QACzD,8FAA8F;QAC9F,4FAA4F;QAC5F,gEAAgE;QAChE,iFAAiF;QACjF,kDAAkD;QAClD,2FAA2F;QAC3F,kFAAkF;KACnF,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;QACE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBACtC,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,WAAW,EAAE,KAAK,CAAC,WAAyC;gBAC5D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;gBACpC,OAAO,EACL,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAChD,CAAC,CAAE,KAAK,CAAC,OAAmC;oBAC5C,CAAC,CAAC,SAAS;gBACf,QAAQ,EAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAC1E,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,wEAAwE;YACxE,+BAA+B;YAC/B,MAAM,IAAI,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -9,6 +9,7 @@ import { type PeerProject } from '../services/chat-context.js';
9
9
  import type { PlanService } from '../services/plan.js';
10
10
  import type { BriefService } from '../services/brief.js';
11
11
  import type { PatchService } from '../services/patch.js';
12
+ import type { ReleaseService } from '../services/release.js';
12
13
  import type { PageVersionService } from '../services/page-version.js';
13
14
  import type { SkillResolver, SkillRegistry } from '../services/skill-registry.js';
14
15
  import type { Annotation, ChatThread } from '../../shared/entities.js';
@@ -38,6 +39,8 @@ export interface AgentTurnDeps {
38
39
  planService: PlanService;
39
40
  briefService: BriefService;
40
41
  patchService: PatchService;
42
+ /** 0.1.69 Transagents: dispatcher resolves "latest release" for analysis briefs. */
43
+ releaseService: ReleaseService;
41
44
  pageVersions: PageVersionService;
42
45
  skillResolver: SkillResolver;
43
46
  skillRegistry: SkillRegistry;
@@ -81,6 +84,12 @@ export interface ActiveAdapter {
81
84
  adapter: RuntimeAdapter;
82
85
  emitter: EventEmitter;
83
86
  replay: TurnReplay;
87
+ /**
88
+ * 0.1.69 Transagents: parent thread id of a child banka turn (NULL/undefined
89
+ * for top-level turns). The abort cascade in routes/chat.ts uses this to find
90
+ * and abort children when their parent is consciously aborted.
91
+ */
92
+ parentThreadId?: string | null;
84
93
  /**
85
94
  * M05 queue: fan-out for events originating OUTSIDE the turn's stream loop
86
95
  * (queue mutations from `POST/DELETE /api/chat/queue/...`). Reaches the
@@ -6,6 +6,8 @@ import { buildBriefToolsServer } from '../mcp/brief-tools.js';
6
6
  import { buildC4sToolsServer } from '../mcp/c4s-tools.js';
7
7
  import { buildSystemPrompt, subagentsFor } from '../services/chat-context.js';
8
8
  import { readConfig } from '../config.js';
9
+ import { TransagentDispatcher } from '../services/transagent-dispatcher.js';
10
+ import { buildTransagentToolsServer, TRANSAGENT_TOOL_FULL_NAME } from '../mcp/transagent-tools.js';
9
11
  /** M21 m05ctxreg: tools whitelist per context_type. Brief threads get only
10
12
  * brief-tools (per-thread, mounted below) + release-tools (read-only).
11
13
  * All other plugin servers (endpoint-tools, dto-tools, ui-view-tools,
@@ -74,6 +76,10 @@ export async function runAgentTurn(deps, input) {
74
76
  'subagent_completed',
75
77
  'todo_list_updated',
76
78
  'user_input_request',
79
+ // 0.1.69 Transagents: bracket markers so reload/joiners reconstruct the
80
+ // nested child panel.
81
+ 'transagent_started',
82
+ 'transagent_completed',
77
83
  'result',
78
84
  'error',
79
85
  ]);
@@ -105,8 +111,36 @@ export async function runAgentTurn(deps, input) {
105
111
  };
106
112
  // Rejestracja PO zdefiniowaniu `emit` — kolejka (out-of-band `POST/DELETE
107
113
  // /api/chat/queue/...`) używa go do broadcastu `queue_updated`/`queue_cleared`.
108
- deps.activeAdapters.set(thread.id, { requestId, adapter, emitter, replay, emit });
114
+ deps.activeAdapters.set(thread.id, {
115
+ requestId,
116
+ adapter,
117
+ emitter,
118
+ replay,
119
+ emit,
120
+ // 0.1.69 Transagents: lets the abort cascade find this turn's children (when
121
+ // this turn IS a child, parentThreadId is set from the row).
122
+ parentThreadId: thread.parentThreadId,
123
+ });
109
124
  emit({ type: 'connected', requestId, threadId: thread.id });
125
+ // 0.1.69 Transagents: race-free correlation between the SDK's
126
+ // `tool_use(runTransagent)` id and the dispatcher. The loop pushes the id when
127
+ // it observes the tool_use event; the dispatcher (invoked from the MCP handler)
128
+ // takes it. Queue + waiter handles either interleaving.
129
+ const transagentToolUseQueue = [];
130
+ const transagentWaiters = [];
131
+ const pushTransagentToolUse = (id) => {
132
+ const waiter = transagentWaiters.shift();
133
+ if (waiter)
134
+ waiter(id);
135
+ else
136
+ transagentToolUseQueue.push(id);
137
+ };
138
+ const takeTransagentToolUse = () => {
139
+ const queued = transagentToolUseQueue.shift();
140
+ if (queued !== undefined)
141
+ return Promise.resolve(queued);
142
+ return new Promise((resolve) => transagentWaiters.push(resolve));
143
+ };
110
144
  let assistantBuf = '';
111
145
  let thinkingBuf = '';
112
146
  // 0.1.58: `answer` = treść OSTATNIEJ wiadomości assistant tury (finalne
@@ -290,6 +324,22 @@ export async function runAgentTurn(deps, input) {
290
324
  // fresh factory per request. Whitelist: chat + patch contexts; brief is
291
325
  // intentionally narrow (brief-tools + read-only release-tools only).
292
326
  const c4sTools = isBrief ? null : buildC4sToolsServer();
327
+ // 0.1.69 transagent-tools: delegate work to a hidden child banka. Two guards:
328
+ // - context whitelist: chat + patch only (never brief — mirror c4sTools).
329
+ // - recursion depth 1: never inside a child banka (parentThreadId != null),
330
+ // so a banka cannot spawn a banka.
331
+ const isChildBanka = thread.parentThreadId != null;
332
+ const transagentTools = !isBrief && !isChildBanka
333
+ ? buildTransagentToolsServer({
334
+ parentThreadId: thread.id,
335
+ dispatcher: new TransagentDispatcher(deps, {
336
+ model: input.model,
337
+ architectureConfig: input.architectureConfig,
338
+ takeToolUseId: takeTransagentToolUse,
339
+ runTurn: (childInput) => runAgentTurn(deps, childInput),
340
+ }),
341
+ })
342
+ : null;
293
343
  const pluginMcpEntries = deps.pluginHost
294
344
  .buildMcpServers()
295
345
  .filter(({ name }) => (isBrief ? BRIEF_ALLOWED_PLUGIN_MCP.has(name) : true))
@@ -301,6 +351,8 @@ export async function runAgentTurn(deps, input) {
301
351
  mcpServers['brief-tools'] = briefTools.config;
302
352
  if (c4sTools)
303
353
  mcpServers['c4s-tools'] = c4sTools.config;
354
+ if (transagentTools)
355
+ mcpServers['transagent-tools'] = transagentTools.config;
304
356
  // M05 queue: streaming-input keeps the SDK input channel open across turns so
305
357
  // queued messages can be pushed into the LIVE turn (`adapter.pushMessage`).
306
358
  // Opt-in per architecture capability; one-shot path unchanged for the rest.
@@ -384,6 +436,11 @@ export async function runAgentTurn(deps, input) {
384
436
  flushSubBuf(taskId);
385
437
  else
386
438
  flushMainBuf();
439
+ // 0.1.69 Transagents: feed the dispatcher the real tool_use id so the
440
+ // child stores it as spawned_by_tool_use_id (F5 reconstruction key).
441
+ if (event.toolName === TRANSAGENT_TOOL_FULL_NAME && event.toolUseId) {
442
+ pushTransagentToolUse(event.toolUseId);
443
+ }
387
444
  deps.chatService.addMessage(thread.id, 'tool_use', JSON.stringify({ input: event.input }), event.toolName, event.toolUseId, taskId, planMode, 'streaming');
388
445
  break;
389
446
  }