@telora/mcp-products 0.22.126 → 0.22.130
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/dist/affordances.js +1 -1
- package/dist/affordances.js.map +1 -1
- package/dist/handlers/agentHandlers.d.ts +1 -0
- package/dist/handlers/agentHandlers.js +15 -9
- package/dist/handlers/agentHandlers.js.map +1 -1
- package/dist/handlers/deliveryHandlers.d.ts +2 -0
- package/dist/handlers/deliveryHandlers.js +19 -79
- package/dist/handlers/deliveryHandlers.js.map +1 -1
- package/dist/handlers/focusHandlers.d.ts +2 -0
- package/dist/handlers/focusHandlers.js +12 -2
- package/dist/handlers/focusHandlers.js.map +1 -1
- package/dist/handlers/issueHandlers.d.ts +2 -0
- package/dist/handlers/issueHandlers.js +12 -2
- package/dist/handlers/issueHandlers.js.map +1 -1
- package/dist/handlers/prdAuthoringGuide.d.ts +1 -1
- package/dist/handlers/prdAuthoringGuide.js +6 -3
- package/dist/handlers/prdAuthoringGuide.js.map +1 -1
- package/dist/shared.d.ts +28 -3
- package/dist/shared.js +87 -5
- package/dist/shared.js.map +1 -1
- package/dist/wire-contract.generated.d.ts +19 -0
- package/dist/wire-contract.generated.js +63 -0
- package/dist/wire-contract.generated.js.map +1 -0
- package/package.json +2 -2
package/dist/affordances.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// delivery scope start empty; their shape is fixed so future seeds slot in
|
|
12
12
|
// without changing the rendering or test code paths.
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
|
-
|
|
14
|
+
import { PRODUCT_API_ENDPOINT } from './shared.js';
|
|
15
15
|
const FOCUS_AFFORDANCES = [
|
|
16
16
|
{
|
|
17
17
|
name: 'debug_artifacts',
|
package/dist/affordances.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,qEAAqE;AACrE,yEAAyE;AACzE,qDAAqD;AACrD,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,qDAAqD;AACrD,8EAA8E;
|
|
1
|
+
{"version":3,"file":"affordances.js","sourceRoot":"","sources":["../src/affordances.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { type GetCreds } from "../shared.js";
|
|
|
9
9
|
* or null when the disposition is fileable (agent_resolvable / needs_operator /
|
|
10
10
|
* external_wait / unset). Pure so the refusal is unit-tested without the network.
|
|
11
11
|
*/
|
|
12
|
+
export declare const ESCALATION_CREATE_FIELD_KEYS: readonly ["reasonType", "description", "issueId", "whatWasTried", "helpNeeded", "productId", "focusId", "deliveryId", "disposition"];
|
|
12
13
|
export declare function directedHoldFilingRefusal(disposition: string | undefined): string | null;
|
|
13
14
|
/**
|
|
14
15
|
* An agent_resolvable filing is MACHINE-OWNED: hidden from the operator inbox
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
// telora_agent (role_list | escalate | escalation_list | escalation_get | escalation_update)
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
import { z } from "zod";
|
|
6
|
-
import { ESCALATION_DISPOSITION_VALUES, ESCALATION_DISPOSITIONS } from "@telora/daemon-core";
|
|
6
|
+
import { ESCALATION_DISPOSITION_VALUES, ESCALATION_DISPOSITIONS, ESCALATION_REASONS } from "@telora/daemon-core";
|
|
7
|
+
// Reason-type values from the daemon-core canonical (escalation-types.ts) --
|
|
8
|
+
// same import pattern as the disposition enum above; no local value mirror.
|
|
9
|
+
const ESCALATION_REASON_VALUES = Object.values(ESCALATION_REASONS);
|
|
7
10
|
import { callProductApi, successResult, validationError, buildFields, wrapHandler, LIST_INDEX_NOTE, } from "../shared.js";
|
|
8
11
|
/**
|
|
9
12
|
* A team executing inside a focus can no longer FILE a directed hold. An
|
|
@@ -14,6 +17,14 @@ import { callProductApi, successResult, validationError, buildFields, wrapHandle
|
|
|
14
17
|
* or null when the disposition is fileable (agent_resolvable / needs_operator /
|
|
15
18
|
* external_wait / unset). Pure so the refusal is unit-tested without the network.
|
|
16
19
|
*/
|
|
20
|
+
// Field keys the escalate action forwards to product-api. Exported so the
|
|
21
|
+
// wire-contract drift test can bind them to the generated manifest projection
|
|
22
|
+
// (../wire-contract.generated.ts). `issueId` is the escalation's anchor
|
|
23
|
+
// identifier, not a wire field -- the drift test declares it as such.
|
|
24
|
+
export const ESCALATION_CREATE_FIELD_KEYS = [
|
|
25
|
+
'reasonType', 'description', 'issueId', 'whatWasTried', 'helpNeeded',
|
|
26
|
+
'productId', 'focusId', 'deliveryId', 'disposition',
|
|
27
|
+
];
|
|
17
28
|
export function directedHoldFilingRefusal(disposition) {
|
|
18
29
|
if (disposition === ESCALATION_DISPOSITIONS.NEEDS_INTENT ||
|
|
19
30
|
disposition === ESCALATION_DISPOSITIONS.NEEDS_CLARIFICATION) {
|
|
@@ -159,10 +170,8 @@ export function registerAgentTools(server, getCreds) {
|
|
|
159
170
|
action: z.enum(["role_list", "escalate", "escalation_list", "escalation_get", "escalation_update"]).describe("Action to perform"),
|
|
160
171
|
escalationId: z.string().uuid().optional().describe("Escalation UUID (required for escalation_get, escalation_update)"),
|
|
161
172
|
issueId: z.string().uuid().optional().describe("Issue UUID being worked on (escalate only)"),
|
|
162
|
-
reasonType: z.enum([
|
|
163
|
-
"
|
|
164
|
-
"blocked_by_external", "needs_clarification", "security_concern",
|
|
165
|
-
]).optional().describe("Type of escalation (required for escalate)"),
|
|
173
|
+
reasonType: z.enum([...ESCALATION_REASON_VALUES])
|
|
174
|
+
.optional().describe("Type of escalation (required for escalate)"),
|
|
166
175
|
description: z.string().max(5000).optional().describe("What happened and why escalation is needed (required for escalate)"),
|
|
167
176
|
whatWasTried: z.string().max(5000).optional().describe("What approaches were attempted (escalate only)"),
|
|
168
177
|
helpNeeded: z.string().max(5000).optional().describe("Specific help or decision needed from human (escalate only)"),
|
|
@@ -240,10 +249,7 @@ export function registerAgentTools(server, getCreds) {
|
|
|
240
249
|
const humanActRefusal = humanOwningWithoutHumanActRefusal(params.disposition, { description: params.description, helpNeeded: params.helpNeeded });
|
|
241
250
|
if (humanActRefusal)
|
|
242
251
|
return validationError(humanActRefusal);
|
|
243
|
-
const fields = buildFields(params, [
|
|
244
|
-
'reasonType', 'description', 'issueId', 'whatWasTried', 'helpNeeded',
|
|
245
|
-
'productId', 'focusId', 'deliveryId', 'disposition',
|
|
246
|
-
]);
|
|
252
|
+
const fields = buildFields(params, [...ESCALATION_CREATE_FIELD_KEYS]);
|
|
247
253
|
// Stamp a recorded kind on every hand-filed escalation. This surface
|
|
248
254
|
// never set one, so hand-filed filings were the null-kind population
|
|
249
255
|
// the routing focus targets; 'agent_filed' makes each a classifiable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentHandlers.js","sourceRoot":"","sources":["../../src/handlers/agentHandlers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mDAAmD;AACnD,+FAA+F;AAC/F,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"agentHandlers.js","sourceRoot":"","sources":["../../src/handlers/agentHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,7 @@ export interface DeliveryCreateParams {
|
|
|
15
15
|
workFacing?: string;
|
|
16
16
|
returnFull?: boolean;
|
|
17
17
|
}
|
|
18
|
+
export declare const DELIVERY_CREATE_FIELD_KEYS: readonly ["name", "description", "targetDate", "acceptanceCriteria", "techContext", "workFacing"];
|
|
19
|
+
export declare const DELIVERY_UPDATE_FIELD_KEYS: readonly ["name", "description", "targetDate", "acceptanceCriteria", "techContext", "focusId", "executionStatus", "workFacing"];
|
|
18
20
|
export declare function handleDeliveryCreate(params: DeliveryCreateParams, callApi: (body: Record<string, unknown>) => Promise<unknown>): Promise<ReturnType<typeof successResult> | ReturnType<typeof validationError>>;
|
|
19
21
|
export declare function registerDeliveryTools(server: McpServer, getCreds: GetCreds, profile?: ToolProfile): void;
|
|
@@ -3,94 +3,34 @@
|
|
|
3
3
|
// telora_product_delivery (list | create | update | operationalize | delete | reorder)
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
import { z } from "zod";
|
|
6
|
-
import { EXECUTION_STATUSES,
|
|
6
|
+
import { EXECUTION_STATUSES, WORK_FACINGS } from "@telora/daemon-core";
|
|
7
7
|
import { callProductApi, successResult, validationError, buildFields, wrapHandler, compactEntity, LIST_INDEX_NOTE, } from "../shared.js";
|
|
8
8
|
import { focusRefSchema, isUuid, resolveFocusRef } from "./focusHandlers.js";
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// work to land in 'queued' so a team can pick it up — defaulting to 'planning'
|
|
20
|
-
// would leave the row invisible. Membership is checked via isPostPlanning().
|
|
21
|
-
// Page size for the focus_list lookup. focus_list has no by-id filter, so we
|
|
22
|
-
// walk pages until we find the focus or exhaust them.
|
|
23
|
-
const FOCUS_LOOKUP_PAGE_SIZE = 500;
|
|
24
|
-
// Hard cap on pages walked. 25 * 500 = 12500 focuses per product, well beyond
|
|
25
|
-
// any realistic product size; the cap is a defensive ceiling so a misbehaving
|
|
26
|
-
// backend cannot wedge the handler in an infinite loop.
|
|
27
|
-
const FOCUS_LOOKUP_MAX_PAGES = 25;
|
|
28
|
-
/**
|
|
29
|
-
* Resolve the default executionStatus for a new delivery based on its parent
|
|
30
|
-
* focus's current stage. Returns 'queued' when the focus is past planning,
|
|
31
|
-
* 'planning' otherwise (including when focusId is absent or the focus cannot
|
|
32
|
-
* be located).
|
|
33
|
-
*
|
|
34
|
-
* focus_list is the only available MCP read path (no focus_get by id), so we
|
|
35
|
-
* paginate through it until the focus is found or we exhaust the pages. The
|
|
36
|
-
* page size is generous; the page cap is a defensive ceiling.
|
|
37
|
-
*
|
|
38
|
-
* A lookup failure or genuinely missing focus falls back to 'planning' AND
|
|
39
|
-
* emits a console.warn so the fallback is visible in the daemon log -- the
|
|
40
|
-
* silent fallback was the harmful part of the prior behavior.
|
|
41
|
-
*/
|
|
42
|
-
async function resolveDefaultExecutionStatus(focusId, productId, callApi) {
|
|
43
|
-
if (!focusId)
|
|
44
|
-
return 'planning';
|
|
45
|
-
let pagesWalked = 0;
|
|
46
|
-
try {
|
|
47
|
-
for (let offset = 0; pagesWalked < FOCUS_LOOKUP_MAX_PAGES; offset += FOCUS_LOOKUP_PAGE_SIZE) {
|
|
48
|
-
const response = (await callApi({
|
|
49
|
-
action: 'focus_list',
|
|
50
|
-
productId,
|
|
51
|
-
detail: 'summary',
|
|
52
|
-
limit: FOCUS_LOOKUP_PAGE_SIZE,
|
|
53
|
-
offset,
|
|
54
|
-
}));
|
|
55
|
-
const focuses = response.focuses ?? [];
|
|
56
|
-
pagesWalked += 1;
|
|
57
|
-
const focus = focuses.find((f) => f.id === focusId);
|
|
58
|
-
if (focus) {
|
|
59
|
-
const stage = typeof focus.stage === 'string' ? focus.stage : null;
|
|
60
|
-
if (stage && isPostPlanning(stage))
|
|
61
|
-
return 'queued';
|
|
62
|
-
return 'planning';
|
|
63
|
-
}
|
|
64
|
-
// Last page reached -- no more pages to walk.
|
|
65
|
-
if (focuses.length < FOCUS_LOOKUP_PAGE_SIZE)
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
const exhausted = pagesWalked >= FOCUS_LOOKUP_MAX_PAGES;
|
|
69
|
-
console.warn(`[delivery_create] resolveDefaultExecutionStatus: focus ${focusId} not found in product ${productId} ` +
|
|
70
|
-
`after scanning ${pagesWalked} page(s) of focus_list` +
|
|
71
|
-
(exhausted ? ` (hit ${FOCUS_LOOKUP_MAX_PAGES}-page safety cap)` : '') +
|
|
72
|
-
`. Falling back to executionStatus='planning'. If the focus is past planning stage, ` +
|
|
73
|
-
`pass executionStatus explicitly to override.`);
|
|
74
|
-
return 'planning';
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
console.warn(`[delivery_create] resolveDefaultExecutionStatus: focus_list lookup failed for focus ${focusId} ` +
|
|
78
|
-
`in product ${productId}: ${err.message}. Falling back to executionStatus='planning'.`);
|
|
79
|
-
return 'planning';
|
|
80
|
-
}
|
|
81
|
-
}
|
|
9
|
+
// Field keys this tool forwards to product-api on create/update. Exported so
|
|
10
|
+
// the wire-contract drift test can bind them to the generated manifest
|
|
11
|
+
// projection (../wire-contract.generated.ts) -- an MCP key the manifest does
|
|
12
|
+
// not declare fails that test.
|
|
13
|
+
export const DELIVERY_CREATE_FIELD_KEYS = [
|
|
14
|
+
'name', 'description', 'targetDate', 'acceptanceCriteria', 'techContext', 'workFacing',
|
|
15
|
+
];
|
|
16
|
+
export const DELIVERY_UPDATE_FIELD_KEYS = [
|
|
17
|
+
'name', 'description', 'targetDate', 'acceptanceCriteria', 'techContext', 'focusId', 'executionStatus', 'workFacing',
|
|
18
|
+
];
|
|
82
19
|
export async function handleDeliveryCreate(params, callApi) {
|
|
83
20
|
if (!params.productId)
|
|
84
21
|
return validationError("productId required for create");
|
|
85
22
|
if (!params.name)
|
|
86
23
|
return validationError("name required for create");
|
|
87
|
-
const fields = buildFields(params, [
|
|
24
|
+
const fields = buildFields(params, [...DELIVERY_CREATE_FIELD_KEYS]);
|
|
25
|
+
// Pass executionStatus through ONLY when the caller supplied it. The
|
|
26
|
+
// stage-aware default ('queued' when the parent focus is past planning,
|
|
27
|
+
// else 'planning') is resolved SERVER-SIDE by the product-api
|
|
28
|
+
// delivery_create handler, which already holds the focus row -- the old
|
|
29
|
+
// client-side focus_list pagination walk (and its silent 'planning'
|
|
30
|
+
// fallback) is gone.
|
|
88
31
|
if (typeof params.executionStatus === 'string' && params.executionStatus.length > 0) {
|
|
89
32
|
fields.executionStatus = params.executionStatus;
|
|
90
33
|
}
|
|
91
|
-
else {
|
|
92
|
-
fields.executionStatus = await resolveDefaultExecutionStatus(params.focusId, params.productId, callApi);
|
|
93
|
-
}
|
|
94
34
|
const body = {
|
|
95
35
|
action: "delivery_create",
|
|
96
36
|
productId: params.productId,
|
|
@@ -196,7 +136,7 @@ export function registerDeliveryTools(server, getCreds, profile = 'full') {
|
|
|
196
136
|
case "update": {
|
|
197
137
|
if (!params.deliveryId)
|
|
198
138
|
return validationError("deliveryId required for update");
|
|
199
|
-
const fields = buildFields(params, [
|
|
139
|
+
const fields = buildFields(params, [...DELIVERY_UPDATE_FIELD_KEYS]);
|
|
200
140
|
const hasInjectionAnchor = params.injectionNodeId !== undefined;
|
|
201
141
|
if (Object.keys(fields).length === 0 && !hasInjectionAnchor) {
|
|
202
142
|
return validationError("Provide at least one field to update (or injectionNodeId to anchor)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveryHandlers.js","sourceRoot":"","sources":["../../src/handlers/deliveryHandlers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wCAAwC;AACxC,yFAAyF;AACzF,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"deliveryHandlers.js","sourceRoot":"","sources":["../../src/handlers/deliveryHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { type GetCreds, type ToolProfile } from "../shared.js";
|
|
4
4
|
/** True when `ref` is a focus UUID (vs. an ephemeral focusKey like "f3"). */
|
|
5
5
|
export declare function isUuid(ref: string): boolean;
|
|
6
|
+
export declare const FOCUS_CREATE_FIELD_KEYS: readonly ["name", "description", "acceptanceCriteria", "targetDate", "readOnly"];
|
|
7
|
+
export declare const FOCUS_UPDATE_FIELD_KEYS: readonly ["name", "description", "acceptanceCriteria", "targetDate", "status", "readOnly", "assignedAgentRoleId", "armNote", "pipelineConfig"];
|
|
6
8
|
/**
|
|
7
9
|
* Zod validator for a focus reference: a UUID OR an ordinal focusKey ("f3").
|
|
8
10
|
* Used wherever a focusId param previously demanded a strict UUID, so a terse
|
|
@@ -29,6 +29,16 @@ const FOCUS_LIST_STATUS_VALUES = [...FOCUS_STATUSES, OPEN_FOCUS_SELECTOR];
|
|
|
29
29
|
export function isUuid(ref) {
|
|
30
30
|
return UUID_RE.test(ref);
|
|
31
31
|
}
|
|
32
|
+
// Field keys this tool forwards to product-api on create/update. Exported so
|
|
33
|
+
// the wire-contract drift test can bind them to the generated manifest
|
|
34
|
+
// projection (../wire-contract.generated.ts) -- an MCP key the manifest does
|
|
35
|
+
// not declare fails that test.
|
|
36
|
+
export const FOCUS_CREATE_FIELD_KEYS = [
|
|
37
|
+
'name', 'description', 'acceptanceCriteria', 'targetDate', 'readOnly',
|
|
38
|
+
];
|
|
39
|
+
export const FOCUS_UPDATE_FIELD_KEYS = [
|
|
40
|
+
'name', 'description', 'acceptanceCriteria', 'targetDate', 'status', 'readOnly', 'assignedAgentRoleId', 'armNote', 'pipelineConfig',
|
|
41
|
+
];
|
|
32
42
|
/**
|
|
33
43
|
* Zod validator for a focus reference: a UUID OR an ordinal focusKey ("f3").
|
|
34
44
|
* Used wherever a focusId param previously demanded a strict UUID, so a terse
|
|
@@ -217,7 +227,7 @@ export function buildFocusHandler(getCreds, profile, callApi = (body) => callPro
|
|
|
217
227
|
// readOnly is honored at CREATE (audit focus by construction). It is NOT
|
|
218
228
|
// in the update field list -- the daemon is the sole writer that flips
|
|
219
229
|
// read_only=false on ratified release.
|
|
220
|
-
const fields = buildFields(params, [
|
|
230
|
+
const fields = buildFields(params, [...FOCUS_CREATE_FIELD_KEYS]);
|
|
221
231
|
const body = {
|
|
222
232
|
action: "focus_create",
|
|
223
233
|
productId: params.productId,
|
|
@@ -244,7 +254,7 @@ export function buildFocusHandler(getCreds, profile, callApi = (body) => callPro
|
|
|
244
254
|
if (params.assignedAgentRoleId && (params.armNote === undefined || params.armNote.trim().length === 0)) {
|
|
245
255
|
return validationError("arm_note_required: arming a focus is a declared act -- pass armNote stating the activation intent in the same call as assignedAgentRoleId.");
|
|
246
256
|
}
|
|
247
|
-
const fields = buildFields(params, [
|
|
257
|
+
const fields = buildFields(params, [...FOCUS_UPDATE_FIELD_KEYS]);
|
|
248
258
|
// clearReviewRequest is a write-only escape hatch: translate it to
|
|
249
259
|
// reviewRequestedAt=null on the wire. Idempotent -- calling against
|
|
250
260
|
// a focus where review_requested_at is already NULL is a no-op write.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focusHandlers.js","sourceRoot":"","sources":["../../src/handlers/focusHandlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focusHandlers.js","sourceRoot":"","sources":["../../src/handlers/focusHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { type GetCreds, type ToolProfile } from "../shared.js";
|
|
3
|
+
export declare const ISSUE_CREATE_FIELD_KEYS: readonly ["title", "issueType", "description", "status", "parentIssueId", "priority", "context", "relevantFiles", "dependsOn"];
|
|
4
|
+
export declare const ISSUE_UPDATE_FIELD_KEYS: readonly ["title", "description", "status", "issueType", "parentIssueId", "priority", "context", "relevantFiles", "dependsOn", "deliveryId"];
|
|
3
5
|
export declare function registerIssueTools(server: McpServer, getCreds: GetCreds, profile?: ToolProfile): void;
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { callProductApi, successResult, validationError, buildFields, wrapHandler, compactEntity, LIST_INDEX_NOTE, } from "../shared.js";
|
|
7
|
+
// Field keys this tool forwards to product-api on create/update. Exported so
|
|
8
|
+
// the wire-contract drift test can bind them to the generated manifest
|
|
9
|
+
// projection (../wire-contract.generated.ts) -- an MCP key the manifest does
|
|
10
|
+
// not declare fails that test.
|
|
11
|
+
export const ISSUE_CREATE_FIELD_KEYS = [
|
|
12
|
+
'title', 'issueType', 'description', 'status', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn',
|
|
13
|
+
];
|
|
14
|
+
export const ISSUE_UPDATE_FIELD_KEYS = [
|
|
15
|
+
'title', 'description', 'status', 'issueType', 'parentIssueId', 'priority', 'context', 'relevantFiles', 'dependsOn', 'deliveryId',
|
|
16
|
+
];
|
|
7
17
|
export function registerIssueTools(server, getCreds, profile = 'full') {
|
|
8
18
|
// Agents cannot delete issues — only humans can. Delete destroys planning data.
|
|
9
19
|
const allowDelete = profile === 'full' || profile === 'human';
|
|
@@ -64,7 +74,7 @@ export function registerIssueTools(server, getCreds, profile = 'full') {
|
|
|
64
74
|
return validationError("deliveryId required for create");
|
|
65
75
|
if (!params.title)
|
|
66
76
|
return validationError("title required for create");
|
|
67
|
-
const fields = buildFields(params, [
|
|
77
|
+
const fields = buildFields(params, [...ISSUE_CREATE_FIELD_KEYS]);
|
|
68
78
|
const result = await callProductApi(getCreds(), {
|
|
69
79
|
action: "issue_create",
|
|
70
80
|
deliveryId: params.deliveryId,
|
|
@@ -75,7 +85,7 @@ export function registerIssueTools(server, getCreds, profile = 'full') {
|
|
|
75
85
|
case "update": {
|
|
76
86
|
if (!params.issueId)
|
|
77
87
|
return validationError("issueId required for update");
|
|
78
|
-
const fields = buildFields(params, [
|
|
88
|
+
const fields = buildFields(params, [...ISSUE_UPDATE_FIELD_KEYS]);
|
|
79
89
|
if (Object.keys(fields).length === 0) {
|
|
80
90
|
return validationError("Provide at least one field to update");
|
|
81
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issueHandlers.js","sourceRoot":"","sources":["../../src/handlers/issueHandlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"issueHandlers.js","sourceRoot":"","sources":["../../src/handlers/issueHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized. An **obstacle**\n does NOT require a predicate. The frontier advances when an overcome's focus\n COMPLETES -- that is, when all of that focus's deliveries pass their own verify\n gates. Focus-completion is the single clearance signal; there is no per-obstacle\n predicate gate. A `clearancePredicate`, if supplied, is **advisory only**: it\n documents the author's notion of \"done\" but is NOT evaluated as a frontier gate,\n so you do not need to commit exact shell/test paths before the code exists.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## Selecting a starter (greenfield UI PRDs)\nA greenfield UI PRD should **select a starter repo** so the product begins ABOVE\nthe UX floor instead of scaffolding a frontend from zero. Set `starterRepoId`\non `telora_prd create`/`update` to a starter from the org library\n(telora_starter_repo list to browse, by look/archetype). At product genesis the\nfactory clones the starter's pinned ref as the product's initial commit and runs\nthe PRD against it (customize/extend) -- so do NOT author a \"scaffold the app\nfrom zero\" phase when a starter is selected; the base is already there. Leave\n`starterRepoId` null for non-UI / non-greenfield PRDs. The starter must be in\nthe same org as the product.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node (a clearancePredicate\nis optional/advisory, not required); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (a human go-signal, not an authoring step)\nAuthoring the tree is necessary but not sufficient -- and authoring ENDS at\n\"authored, un-armed\". Arming is a separate, human-owned go/no-go decision, NOT\nthe tail of your authoring pass. The daemon PRD controller only ARMS frontier\nfoci once the PRD is Played -- that is, once `prds.assigned_agent_role_id` is\nset to an agent_roles UUID, via the Factory PRD Play toggle or\n`telora_prd update assignedAgentRoleId=<uuid>` (pass null to pause). Playing\nthe PRD is the human go-signal (unless durably delegated); do not Play it\nyourself to \"finish\" authoring. An un-armed PRD is the correct resting state\nafter authoring, not a fault. When an active PRD has a frontier but no arm role,\nthe controller
|
|
1
|
+
export declare const PRD_AUTHORING_GUIDE = "# PRD Authoring Protocol (capture -> expand -> check)\n\nA PRD turns the human <-> AI dialog into a FULL product description. The core\nmove is **capture, then expand -- never transcribe.** A sparse dialog must not\nyield a sparse PRD: reason OUTWARD from what was said to every capability, flow,\nedge case, data implication, and non-functional a complete product requires,\nINCLUDING the ones nobody said aloud.\n\nTwo zones, two owners, marked by provenance:\n- **Captured intent (STATED, human-owned)** -- what the human actually said,\n preserved, not summarized away. The reference everything is checked against.\n- **AI expansion (INFERRED, machine-owned)** -- the full product derived from\n that intent. Must visibly EXCEED the capture, not reword it.\n\n## Rounds (distinct jobs -- not \"write more\")\n0. **Capture** the dialog as structured intent: every thread, in the human's\n terms. This is the reference.\n1. **Expand** it against the document shape below. Surface what the dialog\n IMPLIES but never stated. If it reads like the dialog reworded, it failed.\n2. **Check against capture** (ideally a fresh sub-agent that won't defend the\n draft): is every captured thread expanded? What does the intent imply that\n is still missing? Where is it transcription, or verbose-but-thin?\n3. **Close the gap.** Re-run round 2 for a real-sized product.\nSurface to the human only at round boundaries, and only for intent (\"did I\ncapture what you meant?\") -- never to fill expansion slots.\n\n## The expansion should cover\n- The realized product, end to end (a reader can picture using it).\n- Problem & users / jobs-to-be-done.\n- **Capabilities** -- each a SIGNIFICANT portion of the product (one capability\n with multiple phases ahead of it, NOT one shippable change). Per capability:\n behavior/flows, data-model implications, surfaces (UI/API/daemon/MCP), edge\n cases, a verifiable acceptance signal, dependencies, and the **>=2 phases** it\n decomposes into.\n- Cross-cutting / non-functional (authz/RLS, perf, security, observability).\n- System-level architecture & data model.\n- Sequencing & pathways (and alternatives held as options).\n- Obstacles & risks (a clearancePredicate is OPTIONAL and advisory only).\n\n## How this is enforced (the authoring gates)\n- `telora_prd create` REQUIRES **capturedIntent** + **expansion**. No PRD\n without the dialog anchor and a full expansion that exceeds it.\n- `telora_prd_tree node_create`: an **overcome** REQUIRES **phases (>=2)** --\n it materializes as a focus, so it must be capability-sized. An **obstacle**\n does NOT require a predicate. The frontier advances when an overcome's focus\n COMPLETES -- that is, when all of that focus's deliveries pass their own verify\n gates. Focus-completion is the single clearance signal; there is no per-obstacle\n predicate gate. A `clearancePredicate`, if supplied, is **advisory only**: it\n documents the author's notion of \"done\" but is NOT evaluated as a frontier gate,\n so you do not need to commit exact shell/test paths before the code exists.\nThese gates enforce STRUCTURE; the depth is on you -- run the rounds.\n\n## Selecting a starter (greenfield UI PRDs)\nA greenfield UI PRD should **select a starter repo** so the product begins ABOVE\nthe UX floor instead of scaffolding a frontend from zero. Set `starterRepoId`\non `telora_prd create`/`update` to a starter from the org library\n(telora_starter_repo list to browse, by look/archetype). At product genesis the\nfactory clones the starter's pinned ref as the product's initial commit and runs\nthe PRD against it (customize/extend) -- so do NOT author a \"scaffold the app\nfrom zero\" phase when a starter is selected; the base is already there. Leave\n`starterRepoId` null for non-UI / non-greenfield PRDs. The starter must be in\nthe same org as the product.\n\n## From document to tree\ngoal -> goal node; each capability -> an overcome node (>=2 phases) that later\nmaterializes as a focus; each obstacle -> an obstacle node (a clearancePredicate\nis optional/advisory, not required); dependencies -> prerequisite edges;\nalternatives -> pathways (commit one). A faithful capture, fully expanded, yields\ncapability-sized foci by construction -- which is the whole point.\n\n## Arming the run (a human go-signal, not an authoring step)\nAuthoring the tree is necessary but not sufficient -- and authoring ENDS at\n\"authored, un-armed\". Arming is a separate, human-owned go/no-go decision, NOT\nthe tail of your authoring pass. The daemon PRD controller only ARMS frontier\nfoci once the PRD is Played -- that is, once `prds.assigned_agent_role_id` is\nset to an agent_roles UUID, via the Factory PRD Play toggle or\n`telora_prd update assignedAgentRoleId=<uuid>` (pass null to pause). Playing\nthe PRD is the human go-signal (unless durably delegated); do not Play it\nyourself to \"finish\" authoring. An un-armed PRD is the correct resting state\nafter authoring, not a fault. When an active PRD has a frontier but no arm role,\nthe controller does NOT file an escalation: an unplayed frontier is a valid\nwaiting state, not a blockage, and filing one would mislabel a normal\nawaiting-go-signal state as blocked and flood the human inbox. Visibility of the\nawaiting-Play state comes from the daemon-log warning (driven off the\n`prdsBlockedNoRole` aggregate) plus the ready-to-Play UI affordance -- a human\nPlays the PRD when they decide the spend is authorized.";
|
|
@@ -90,7 +90,10 @@ set to an agent_roles UUID, via the Factory PRD Play toggle or
|
|
|
90
90
|
the PRD is the human go-signal (unless durably delegated); do not Play it
|
|
91
91
|
yourself to "finish" authoring. An un-armed PRD is the correct resting state
|
|
92
92
|
after authoring, not a fault. When an active PRD has a frontier but no arm role,
|
|
93
|
-
the controller
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
the controller does NOT file an escalation: an unplayed frontier is a valid
|
|
94
|
+
waiting state, not a blockage, and filing one would mislabel a normal
|
|
95
|
+
awaiting-go-signal state as blocked and flood the human inbox. Visibility of the
|
|
96
|
+
awaiting-Play state comes from the daemon-log warning (driven off the
|
|
97
|
+
\`prdsBlockedNoRole\` aggregate) plus the ready-to-Play UI affordance -- a human
|
|
98
|
+
Plays the PRD when they decide the spend is authorized.`;
|
|
96
99
|
//# sourceMappingURL=prdAuthoringGuide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"prdAuthoringGuide.js","sourceRoot":"","sources":["../../src/handlers/prdAuthoringGuide.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,sEAAsE;AACtE,2EAA2E;AAC3E,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAqFqB,CAAC"}
|
package/dist/shared.d.ts
CHANGED
|
@@ -30,14 +30,39 @@ export type McpErrorCode = (typeof MCP_ERROR_CODES)[keyof typeof MCP_ERROR_CODES
|
|
|
30
30
|
export declare class McpApiError extends Error {
|
|
31
31
|
readonly code: McpErrorCode;
|
|
32
32
|
readonly status?: number;
|
|
33
|
-
|
|
33
|
+
/** Raw machine-readable code from the edge error envelope, when one was present. */
|
|
34
|
+
readonly wireCode?: string;
|
|
35
|
+
constructor(message: string, code: McpErrorCode, status?: number, wireCode?: string);
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
|
-
* Map a
|
|
37
|
-
* structured `McpErrorCode`.
|
|
38
|
+
* Map a machine-readable wire code from the edge error envelope to a
|
|
39
|
+
* structured `McpErrorCode`. Returns undefined for unrecognized codes so the
|
|
40
|
+
* caller can fall back to prose sniffing. Pure -- safe to unit test.
|
|
41
|
+
*/
|
|
42
|
+
export declare function classifyWireCode(wireCode: string): McpErrorCode | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Classify a backend failure with the wire code as the PREFERRED channel: a
|
|
45
|
+
* recognized machine-readable envelope code wins outright; prose/status
|
|
46
|
+
* sniffing (`classifyApiError`) runs ONLY for codeless or unrecognized-code
|
|
47
|
+
* responses. This is the single precedence definition `callProductApi` uses.
|
|
48
|
+
* Pure -- safe to unit test.
|
|
49
|
+
*/
|
|
50
|
+
export declare function classifyBackendFailure(status: number, message: string, wireCode?: string): McpErrorCode;
|
|
51
|
+
/**
|
|
52
|
+
* FALLBACK-ONLY prose/status classifier for a backend product-api failure.
|
|
53
|
+
* Reached through `classifyBackendFailure` when the error envelope carried no
|
|
54
|
+
* recognized machine-readable code (legacy handlers, transport-level bodies).
|
|
55
|
+
* Do not add branches here for semantics a wire code already expresses --
|
|
56
|
+
* extend WIRE_CODE_TO_MCP instead. Pure -- safe to unit test.
|
|
38
57
|
*/
|
|
39
58
|
export declare function classifyApiError(status: number, message: string): McpErrorCode;
|
|
40
59
|
export declare function loadCredentials(): TrackerConfig;
|
|
60
|
+
/**
|
|
61
|
+
* The product-api edge-function path -- ONE declaration site. Both the live
|
|
62
|
+
* client below and the affordance renderer (affordances.ts) import this;
|
|
63
|
+
* never re-declare the path.
|
|
64
|
+
*/
|
|
65
|
+
export declare const PRODUCT_API_ENDPOINT = "/functions/v1/product-api";
|
|
41
66
|
export declare function callProductApi(creds: TrackerConfig, body: Record<string, unknown>): Promise<unknown>;
|
|
42
67
|
/**
|
|
43
68
|
* Standard sentence appended to tool descriptions for tools that expose a
|
package/dist/shared.js
CHANGED
|
@@ -45,16 +45,86 @@ export const MCP_ERROR_CODES = {
|
|
|
45
45
|
export class McpApiError extends Error {
|
|
46
46
|
code;
|
|
47
47
|
status;
|
|
48
|
-
|
|
48
|
+
/** Raw machine-readable code from the edge error envelope, when one was present. */
|
|
49
|
+
wireCode;
|
|
50
|
+
constructor(message, code, status, wireCode) {
|
|
49
51
|
super(message);
|
|
50
52
|
this.name = "McpApiError";
|
|
51
53
|
this.code = code;
|
|
52
54
|
this.status = status;
|
|
55
|
+
this.wireCode = wireCode;
|
|
53
56
|
}
|
|
54
57
|
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// Wire-code classification (preferred channel)
|
|
60
|
+
//
|
|
61
|
+
// The edge error envelope is { success: false, error: <prose>, code?: <code> }.
|
|
62
|
+
// The `code` values are members of the canonical registry at
|
|
63
|
+
// src/lib/vocabulary/error-codes.ts (mirrored here as an opaque-string map --
|
|
64
|
+
// MCP cannot import src/lib, it is a different package). When a code is
|
|
65
|
+
// present and recognized, it wins over prose sniffing; prose classification
|
|
66
|
+
// (`classifyApiError`) remains ONLY as the fallback for codeless or
|
|
67
|
+
// unrecognized-code responses (e.g. the legacy SCREAMING_SNAKE batch codes,
|
|
68
|
+
// which intentionally fall through to prose+status).
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
const WIRE_CODE_TO_MCP = {
|
|
71
|
+
// -- class codes --
|
|
72
|
+
validation_failed: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
73
|
+
not_found: MCP_ERROR_CODES.ERR_NOT_FOUND,
|
|
74
|
+
// The action string is not in the handler registry: the caller sent a bad
|
|
75
|
+
// call, and fixing the call is exactly ERR_VALIDATION's semantics.
|
|
76
|
+
unknown_action: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
77
|
+
// Auth-shaped failures: MCP_ERROR_CODES has no auth member. They are not
|
|
78
|
+
// call-shape problems (ERR_VALIDATION would tell the agent to edit params,
|
|
79
|
+
// which cannot fix a credential), so classify as ERR_BACKEND -- the
|
|
80
|
+
// environment/server side is what must change (re-register / re-connect).
|
|
81
|
+
unauthenticated: MCP_ERROR_CODES.ERR_BACKEND,
|
|
82
|
+
org_scope_denied: MCP_ERROR_CODES.ERR_BACKEND,
|
|
83
|
+
daemon_credential_required: MCP_ERROR_CODES.ERR_BACKEND,
|
|
84
|
+
state_conflict: MCP_ERROR_CODES.ERR_STATE_CONFLICT,
|
|
85
|
+
backend_error: MCP_ERROR_CODES.ERR_BACKEND,
|
|
86
|
+
// Rate limiting is transient and retry-after-backoff -- ERR_TIMEOUT's
|
|
87
|
+
// "transient; safe to retry" semantics fit; ERR_BACKEND would be read as a
|
|
88
|
+
// server fault.
|
|
89
|
+
rate_limited: MCP_ERROR_CODES.ERR_TIMEOUT,
|
|
90
|
+
// -- domain refusal codes --
|
|
91
|
+
// Anchoring refusals arrive as 400s whose prose classified to
|
|
92
|
+
// ERR_VALIDATION before codes existed; the remedy is to fix the call
|
|
93
|
+
// (supply injectionNodeId / allowUnanchored+unanchoredReason), so the
|
|
94
|
+
// class is preserved.
|
|
95
|
+
unanchored_delivery: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
96
|
+
tree_required: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
97
|
+
override_reason_required: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
98
|
+
acceptance_criteria_human_subject: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
99
|
+
out_of_reach_node_type: MCP_ERROR_CODES.ERR_VALIDATION,
|
|
100
|
+
token_not_found: MCP_ERROR_CODES.ERR_NOT_FOUND,
|
|
101
|
+
redeem_failed: MCP_ERROR_CODES.ERR_BACKEND,
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Map a machine-readable wire code from the edge error envelope to a
|
|
105
|
+
* structured `McpErrorCode`. Returns undefined for unrecognized codes so the
|
|
106
|
+
* caller can fall back to prose sniffing. Pure -- safe to unit test.
|
|
107
|
+
*/
|
|
108
|
+
export function classifyWireCode(wireCode) {
|
|
109
|
+
return WIRE_CODE_TO_MCP[wireCode];
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Classify a backend failure with the wire code as the PREFERRED channel: a
|
|
113
|
+
* recognized machine-readable envelope code wins outright; prose/status
|
|
114
|
+
* sniffing (`classifyApiError`) runs ONLY for codeless or unrecognized-code
|
|
115
|
+
* responses. This is the single precedence definition `callProductApi` uses.
|
|
116
|
+
* Pure -- safe to unit test.
|
|
117
|
+
*/
|
|
118
|
+
export function classifyBackendFailure(status, message, wireCode) {
|
|
119
|
+
return ((wireCode !== undefined ? classifyWireCode(wireCode) : undefined) ??
|
|
120
|
+
classifyApiError(status, message));
|
|
121
|
+
}
|
|
55
122
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
123
|
+
* FALLBACK-ONLY prose/status classifier for a backend product-api failure.
|
|
124
|
+
* Reached through `classifyBackendFailure` when the error envelope carried no
|
|
125
|
+
* recognized machine-readable code (legacy handlers, transport-level bodies).
|
|
126
|
+
* Do not add branches here for semantics a wire code already expresses --
|
|
127
|
+
* extend WIRE_CODE_TO_MCP instead. Pure -- safe to unit test.
|
|
58
128
|
*/
|
|
59
129
|
export function classifyApiError(status, message) {
|
|
60
130
|
const m = (message || "").toLowerCase();
|
|
@@ -128,6 +198,12 @@ export function loadCredentials() {
|
|
|
128
198
|
// ---------------------------------------------------------------------------
|
|
129
199
|
// API client
|
|
130
200
|
// ---------------------------------------------------------------------------
|
|
201
|
+
/**
|
|
202
|
+
* The product-api edge-function path -- ONE declaration site. Both the live
|
|
203
|
+
* client below and the affordance renderer (affordances.ts) import this;
|
|
204
|
+
* never re-declare the path.
|
|
205
|
+
*/
|
|
206
|
+
export const PRODUCT_API_ENDPOINT = "/functions/v1/product-api";
|
|
131
207
|
let httpWarned = false;
|
|
132
208
|
export async function callProductApi(creds, body) {
|
|
133
209
|
if (!httpWarned && creds.teloraUrl.startsWith('http://')) {
|
|
@@ -145,7 +221,7 @@ export async function callProductApi(creds, body) {
|
|
|
145
221
|
// Invalid URL -- will fail on fetch below
|
|
146
222
|
}
|
|
147
223
|
}
|
|
148
|
-
const url = `${creds.teloraUrl}
|
|
224
|
+
const url = `${creds.teloraUrl}${PRODUCT_API_ENDPOINT}`;
|
|
149
225
|
let response;
|
|
150
226
|
try {
|
|
151
227
|
response = await fetch(url, {
|
|
@@ -168,8 +244,14 @@ export async function callProductApi(creds, body) {
|
|
|
168
244
|
const data = await response.json();
|
|
169
245
|
if (!response.ok || !data.success) {
|
|
170
246
|
// Keep the human message verbatim; attach a machine-branchable code.
|
|
247
|
+
// Classification order: the envelope's machine-readable `code` wins when
|
|
248
|
+
// present and recognized; prose+status sniffing is the fallback for
|
|
249
|
+
// codeless (or unrecognized-code) responses. The raw wire code rides
|
|
250
|
+
// along on the error for downstream diagnostics.
|
|
171
251
|
const message = data.error || `API error (${response.status})`;
|
|
172
|
-
|
|
252
|
+
const wireCode = typeof data.code === "string" ? data.code : undefined;
|
|
253
|
+
const mcpCode = classifyBackendFailure(response.status, message, wireCode);
|
|
254
|
+
throw new McpApiError(message, mcpCode, response.status, wireCode);
|
|
173
255
|
}
|
|
174
256
|
return data;
|
|
175
257
|
}
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBlC,8EAA8E;AAC9E,yBAAyB;AACzB,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,oEAAoE;AACpE,+EAA+E;AAC/E,EAAE;AACF,wEAAwE;AACxE,6EAA6E;AAC7E,uEAAuE;AACvE,+EAA+E;AAC/E,uEAAuE;AACvE,0EAA0E;AAC1E,wEAAwE;AACxE,gEAAgE;AAChE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,mEAAmE;IACnE,cAAc,EAAE,gBAAgB;IAChC,yGAAyG;IACzG,kBAAkB,EAAE,oBAAoB;IACxC,sFAAsF;IACtF,aAAa,EAAE,eAAe;IAC9B,qEAAqE;IACrE,WAAW,EAAE,aAAa;IAC1B,kFAAkF;IAClF,cAAc,EAAE,gBAAgB;IAChC,6EAA6E;IAC7E,WAAW,EAAE,aAAa;IAC1B,4BAA4B;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAe;IACnB,MAAM,CAAU;IACzB,YAAY,OAAe,EAAE,IAAkB,EAAE,MAAe;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED FILE -- DO NOT EDIT.
|
|
3
|
+
*
|
|
4
|
+
* Produced by `npm run gen:wire-contract` from the per-entity wire-contract
|
|
5
|
+
* manifest (scripts/wire-contract-manifest.json) -- the SINGLE declaration
|
|
6
|
+
* site for the cross-runtime entity wire contracts. Edit the manifest and
|
|
7
|
+
* regenerate; the drift gate (`npm run lint:wire-contract`) fails CI when
|
|
8
|
+
* this file differs from what generation would produce.
|
|
9
|
+
*
|
|
10
|
+
* @module wire-contract.generated
|
|
11
|
+
*/
|
|
12
|
+
/** delivery fields the MCP tool surface forwards to product-api. */
|
|
13
|
+
export declare const DELIVERY_MCP_FIELDS: readonly ["name", "description", "targetDate", "acceptanceCriteria", "techContext", "executionStatus", "focusId", "workFacing"];
|
|
14
|
+
/** focus fields the MCP tool surface forwards to product-api. */
|
|
15
|
+
export declare const FOCUS_MCP_FIELDS: readonly ["name", "description", "targetDate", "acceptanceCriteria", "armNote", "status", "assignedAgentRoleId", "pipelineConfig", "readOnly"];
|
|
16
|
+
/** issue fields the MCP tool surface forwards to product-api. */
|
|
17
|
+
export declare const ISSUE_MCP_FIELDS: readonly ["title", "description", "issueType", "parentIssueId", "priority", "status", "context", "relevantFiles", "dependsOn", "deliveryId"];
|
|
18
|
+
/** escalation fields the MCP tool surface forwards to product-api. */
|
|
19
|
+
export declare const ESCALATION_MCP_FIELDS: readonly ["reasonType", "description", "whatWasTried", "helpNeeded", "escalationKind", "productId", "focusId", "deliveryId", "disposition", "status", "resolutionNotes", "answer"];
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED FILE -- DO NOT EDIT.
|
|
3
|
+
*
|
|
4
|
+
* Produced by `npm run gen:wire-contract` from the per-entity wire-contract
|
|
5
|
+
* manifest (scripts/wire-contract-manifest.json) -- the SINGLE declaration
|
|
6
|
+
* site for the cross-runtime entity wire contracts. Edit the manifest and
|
|
7
|
+
* regenerate; the drift gate (`npm run lint:wire-contract`) fails CI when
|
|
8
|
+
* this file differs from what generation would produce.
|
|
9
|
+
*
|
|
10
|
+
* @module wire-contract.generated
|
|
11
|
+
*/
|
|
12
|
+
/** delivery fields the MCP tool surface forwards to product-api. */
|
|
13
|
+
export const DELIVERY_MCP_FIELDS = [
|
|
14
|
+
'name',
|
|
15
|
+
'description',
|
|
16
|
+
'targetDate',
|
|
17
|
+
'acceptanceCriteria',
|
|
18
|
+
'techContext',
|
|
19
|
+
'executionStatus',
|
|
20
|
+
'focusId',
|
|
21
|
+
'workFacing',
|
|
22
|
+
];
|
|
23
|
+
/** focus fields the MCP tool surface forwards to product-api. */
|
|
24
|
+
export const FOCUS_MCP_FIELDS = [
|
|
25
|
+
'name',
|
|
26
|
+
'description',
|
|
27
|
+
'targetDate',
|
|
28
|
+
'acceptanceCriteria',
|
|
29
|
+
'armNote',
|
|
30
|
+
'status',
|
|
31
|
+
'assignedAgentRoleId',
|
|
32
|
+
'pipelineConfig',
|
|
33
|
+
'readOnly',
|
|
34
|
+
];
|
|
35
|
+
/** issue fields the MCP tool surface forwards to product-api. */
|
|
36
|
+
export const ISSUE_MCP_FIELDS = [
|
|
37
|
+
'title',
|
|
38
|
+
'description',
|
|
39
|
+
'issueType',
|
|
40
|
+
'parentIssueId',
|
|
41
|
+
'priority',
|
|
42
|
+
'status',
|
|
43
|
+
'context',
|
|
44
|
+
'relevantFiles',
|
|
45
|
+
'dependsOn',
|
|
46
|
+
'deliveryId',
|
|
47
|
+
];
|
|
48
|
+
/** escalation fields the MCP tool surface forwards to product-api. */
|
|
49
|
+
export const ESCALATION_MCP_FIELDS = [
|
|
50
|
+
'reasonType',
|
|
51
|
+
'description',
|
|
52
|
+
'whatWasTried',
|
|
53
|
+
'helpNeeded',
|
|
54
|
+
'escalationKind',
|
|
55
|
+
'productId',
|
|
56
|
+
'focusId',
|
|
57
|
+
'deliveryId',
|
|
58
|
+
'disposition',
|
|
59
|
+
'status',
|
|
60
|
+
'resolutionNotes',
|
|
61
|
+
'answer',
|
|
62
|
+
];
|
|
63
|
+
//# sourceMappingURL=wire-contract.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire-contract.generated.js","sourceRoot":"","sources":["../src/wire-contract.generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM;IACN,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,aAAa;IACb,iBAAiB;IACjB,SAAS;IACT,YAAY;CACJ,CAAC;AAEX,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM;IACN,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,SAAS;IACT,QAAQ;IACR,qBAAqB;IACrB,gBAAgB;IAChB,UAAU;CACF,CAAC;AAEX,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO;IACP,aAAa;IACb,WAAW;IACX,eAAe;IACf,UAAU;IACV,QAAQ;IACR,SAAS;IACT,eAAe;IACf,WAAW;IACX,YAAY;CACJ,CAAC;AAEX,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,aAAa;IACb,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,SAAS;IACT,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,iBAAiB;IACjB,QAAQ;CACA,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/mcp-products",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.130",
|
|
4
4
|
"description": "MCP server exposing Telora product operations to Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
41
|
-
"@telora/daemon-core": "^0.2.
|
|
41
|
+
"@telora/daemon-core": "^0.2.86",
|
|
42
42
|
"ts-morph": "^28.0.0",
|
|
43
43
|
"zod": "^4.3.6"
|
|
44
44
|
},
|