@tiangong-ai/cli 0.0.30 → 0.0.32
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/AGENTS.md +2 -2
- package/README.md +127 -97
- package/dist/edge-search.js +57 -16
- package/dist/edge-search.js.map +1 -1
- package/dist/http.js +17 -1
- package/dist/http.js.map +1 -1
- package/dist/research/orchestration.js +153 -4
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/broker.d.ts +5 -0
- package/dist/research/workspace/broker.js +130 -19
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/companion-readiness.d.ts +11 -0
- package/dist/research/workspace/companion-readiness.js +75 -0
- package/dist/research/workspace/companion-readiness.js.map +1 -0
- package/dist/research/workspace/external-skills.d.ts +95 -0
- package/dist/research/workspace/external-skills.js +79 -25
- package/dist/research/workspace/external-skills.js.map +1 -1
- package/dist/research/workspace/preflight.d.ts +22 -0
- package/dist/research/workspace/preflight.js +54 -5
- package/dist/research/workspace/preflight.js.map +1 -1
- package/dist/research/workspace/projects.js +27 -0
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +68 -2
- package/dist/research/workspace/runtime.js +652 -14
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/setup-catalog.d.ts +20 -2
- package/dist/research/workspace/setup-catalog.js +202 -5
- package/dist/research/workspace/setup-catalog.js.map +1 -1
- package/dist/research/workspace/setup-wizard.js +35 -13
- package/dist/research/workspace/setup-wizard.js.map +1 -1
- package/dist/research/workspace/setup.d.ts +30 -5
- package/dist/research/workspace/setup.js +500 -114
- package/dist/research/workspace/setup.js.map +1 -1
- package/dist/research/workspace/types.d.ts +9 -0
- package/dist/research/workspace/workspace.d.ts +2 -0
- package/dist/research/workspace/workspace.js +83 -20
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { isAbsolute } from "node:path";
|
|
1
|
+
import { lstat, readFile } from "node:fs/promises";
|
|
2
|
+
import { isAbsolute, resolve } from "node:path";
|
|
3
3
|
import { CliError } from "../errors.js";
|
|
4
4
|
import { stringifyJson, write } from "../io.js";
|
|
5
5
|
import { parseStrictArgs, strictBoolean, strictString } from "../strict-args.js";
|
|
@@ -9,10 +9,11 @@ import { inspectResearchContext } from "./workspace/context.js";
|
|
|
9
9
|
import { setCapabilityCredentialFromEnvironment } from "./workspace/credentials.js";
|
|
10
10
|
import { configureExternalSkillProfile, doctorExternalCapabilities, EXTERNAL_SKILL_CONTEXT_PROFILE, EXTERNAL_SKILL_MEDIA_PROFILE, EXTERNAL_SKILL_PROFILE, importExternalCapability, inspectExternalSkillCatalog, } from "./workspace/external-skills.js";
|
|
11
11
|
import { appendJournalEvent } from "./workspace/journal.js";
|
|
12
|
+
import { fetchNativeCandidateSource } from "./workspace/broker.js";
|
|
12
13
|
import { readAndVerifyProjectInputPlan } from "./workspace/input-plan.js";
|
|
13
14
|
import { addProjectInput, initializeProject, forkProject, listProjects, loadProject, nextReadyPackage, normalizeEvidenceRequirements, refreshProject, retryProjectPackage, } from "./workspace/projects.js";
|
|
14
15
|
import { evaluateProjectPreflight } from "./workspace/preflight.js";
|
|
15
|
-
import { runResearchWorkspace } from "./workspace/runtime.js";
|
|
16
|
+
import { abortNativeResearchStage, prepareNativeResearchStage, runResearchWorkspace, submitNativeResearchStage, } from "./workspace/runtime.js";
|
|
16
17
|
import { schemaForStage } from "./workspace/schemas.js";
|
|
17
18
|
import { sha256Text, workspacePaths } from "./workspace/storage.js";
|
|
18
19
|
import { doctorResearchWorkspace, initializeResearchWorkspace, requireResearchWorkspace, withWorkspaceLock, } from "./workspace/workspace.js";
|
|
@@ -56,6 +57,10 @@ export function researchOrchestrationHelp() {
|
|
|
56
57
|
tiangong-ai research project input add <project-id> --path <absolute-file> [--role primary|reference|replication] [--workspace <path>] [--json]
|
|
57
58
|
tiangong-ai research project retry <project-id> [--package <package-id>] [--workspace <path>] [--json]
|
|
58
59
|
tiangong-ai research project fork <source-project-id> --to <target-project-id> [--resume-through discover|analyze|synthesize] [--workspace <path>] [--json]
|
|
60
|
+
tiangong-ai research project stage prepare <project-id> --stage discover|analyze|synthesize --host-agent codex|claude [--workspace <path>] [--json]
|
|
61
|
+
tiangong-ai research project stage submit <project-id> --session <id> --output <absolute-json> [--confirm-model <id>] [--workspace <path>] [--json]
|
|
62
|
+
tiangong-ai research project stage abort <project-id> --session <id> [--workspace <path>] [--json]
|
|
63
|
+
tiangong-ai research project evidence fetch <project-id> --request <absolute-json> [--workspace <path>] [--json]
|
|
59
64
|
tiangong-ai research schema show <discover|analyze|synthesize|review|doctor> [--json]
|
|
60
65
|
tiangong-ai research status [--project <project-id>] [--workspace <absolute-path>] [--json]
|
|
61
66
|
tiangong-ai research run [--project <project-id>] [--max-parallel <1-8>] [--max-cycles <1-100>] [--dry-run] [--progress-jsonl] [--workspace <absolute-path>] [--json]
|
|
@@ -276,6 +281,90 @@ async function runProject(argv, io) {
|
|
|
276
281
|
const [action, ...rest] = argv;
|
|
277
282
|
if (!action || action === "--help" || action === "-h")
|
|
278
283
|
return writeHelp(io);
|
|
284
|
+
if (action === "stage") {
|
|
285
|
+
const [stageAction, ...stageRest] = rest;
|
|
286
|
+
if (stageAction === "prepare") {
|
|
287
|
+
const args = parseStrictArgs(stageRest, { ...WORKSPACE_OPTIONS, stage: "string", "host-agent": "string" }, "research project stage prepare");
|
|
288
|
+
if (strictBoolean(args, "help"))
|
|
289
|
+
return writeHelp(io);
|
|
290
|
+
const projectId = onePositional(args.positionals, "research project stage prepare");
|
|
291
|
+
const stage = nativeProducerStage(strictString(args, "stage"));
|
|
292
|
+
const hostAgent = nativeHostAgent(strictString(args, "host-agent"));
|
|
293
|
+
const root = await workspaceFromArgs(args);
|
|
294
|
+
const result = await prepareNativeResearchStage({ root, projectId, stage, hostAgent });
|
|
295
|
+
writeJson(io, result, args);
|
|
296
|
+
return 0;
|
|
297
|
+
}
|
|
298
|
+
if (stageAction === "submit") {
|
|
299
|
+
const args = parseStrictArgs(stageRest, {
|
|
300
|
+
...WORKSPACE_OPTIONS,
|
|
301
|
+
session: "string",
|
|
302
|
+
output: "string",
|
|
303
|
+
"confirm-model": "string",
|
|
304
|
+
}, "research project stage submit");
|
|
305
|
+
if (strictBoolean(args, "help"))
|
|
306
|
+
return writeHelp(io);
|
|
307
|
+
const projectId = onePositional(args.positionals, "research project stage submit");
|
|
308
|
+
const sessionId = strictString(args, "session");
|
|
309
|
+
const outputPath = strictString(args, "output");
|
|
310
|
+
if (!sessionId || !outputPath) {
|
|
311
|
+
throw new CliError("stage submit requires --session and --output.", {
|
|
312
|
+
code: "RESEARCH_NATIVE_STAGE_OUTPUT_INVALID",
|
|
313
|
+
exitCode: 2,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
const root = await workspaceFromArgs(args);
|
|
317
|
+
const result = await submitNativeResearchStage({
|
|
318
|
+
root,
|
|
319
|
+
projectId,
|
|
320
|
+
sessionId,
|
|
321
|
+
outputPath,
|
|
322
|
+
confirmedModel: strictString(args, "confirm-model") ?? null,
|
|
323
|
+
});
|
|
324
|
+
writeJson(io, result, args);
|
|
325
|
+
return 0;
|
|
326
|
+
}
|
|
327
|
+
if (stageAction === "abort") {
|
|
328
|
+
const args = parseStrictArgs(stageRest, { ...WORKSPACE_OPTIONS, session: "string" }, "research project stage abort");
|
|
329
|
+
if (strictBoolean(args, "help"))
|
|
330
|
+
return writeHelp(io);
|
|
331
|
+
const projectId = onePositional(args.positionals, "research project stage abort");
|
|
332
|
+
const sessionId = strictString(args, "session");
|
|
333
|
+
if (!sessionId) {
|
|
334
|
+
throw new CliError("stage abort requires --session.", {
|
|
335
|
+
code: "RESEARCH_NATIVE_STAGE_SESSION_REQUIRED",
|
|
336
|
+
exitCode: 2,
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
const root = await workspaceFromArgs(args);
|
|
340
|
+
const result = await abortNativeResearchStage({ root, projectId, sessionId });
|
|
341
|
+
writeJson(io, result, args);
|
|
342
|
+
return 0;
|
|
343
|
+
}
|
|
344
|
+
throw unknownAction("research project stage", stageAction ?? "");
|
|
345
|
+
}
|
|
346
|
+
if (action === "evidence") {
|
|
347
|
+
const [evidenceAction, ...evidenceRest] = rest;
|
|
348
|
+
if (evidenceAction !== "fetch") {
|
|
349
|
+
throw unknownAction("research project evidence", evidenceAction ?? "");
|
|
350
|
+
}
|
|
351
|
+
const args = parseStrictArgs(evidenceRest, { ...WORKSPACE_OPTIONS, request: "string" }, "research project evidence fetch");
|
|
352
|
+
if (strictBoolean(args, "help"))
|
|
353
|
+
return writeHelp(io);
|
|
354
|
+
const projectId = onePositional(args.positionals, "research project evidence fetch");
|
|
355
|
+
const requestPath = strictString(args, "request");
|
|
356
|
+
if (!requestPath) {
|
|
357
|
+
throw new CliError("evidence fetch requires --request.", {
|
|
358
|
+
code: "RESEARCH_BROKER_REQUEST_INVALID",
|
|
359
|
+
exitCode: 2,
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
const request = await readNativeEvidenceRequest(requestPath);
|
|
363
|
+
const root = await workspaceFromArgs(args);
|
|
364
|
+
const result = await withWorkspaceLock(root, "research.native-evidence.fetch", () => fetchNativeCandidateSource({ root, projectId, request }));
|
|
365
|
+
writeJson(io, result, args);
|
|
366
|
+
return 0;
|
|
367
|
+
}
|
|
279
368
|
if (action === "init") {
|
|
280
369
|
const args = parseStrictArgs(rest, {
|
|
281
370
|
...WORKSPACE_OPTIONS,
|
|
@@ -455,6 +544,12 @@ async function readEvidenceRequirements(path) {
|
|
|
455
544
|
Array.isArray(value) ||
|
|
456
545
|
!Array.isArray(value.dimensions) ||
|
|
457
546
|
!Array.isArray(value.sourceTypes) ||
|
|
547
|
+
(value.requiredCapabilityIds !== undefined &&
|
|
548
|
+
!Array.isArray(value.requiredCapabilityIds)) ||
|
|
549
|
+
(value.requiredCompanionIds !== undefined &&
|
|
550
|
+
!Array.isArray(value.requiredCompanionIds)) ||
|
|
551
|
+
(value.requiredDiscoveryScopes !== undefined &&
|
|
552
|
+
!Array.isArray(value.requiredDiscoveryScopes)) ||
|
|
458
553
|
typeof value.minSources !== "number" ||
|
|
459
554
|
typeof value.minFullTextSources !== "number" ||
|
|
460
555
|
typeof value.minDatedSources !== "number" ||
|
|
@@ -467,7 +562,12 @@ async function readEvidenceRequirements(path) {
|
|
|
467
562
|
exitCode: 2,
|
|
468
563
|
});
|
|
469
564
|
}
|
|
470
|
-
return normalizeEvidenceRequirements(
|
|
565
|
+
return normalizeEvidenceRequirements({
|
|
566
|
+
...value,
|
|
567
|
+
requiredCapabilityIds: value.requiredCapabilityIds ?? [],
|
|
568
|
+
requiredCompanionIds: value.requiredCompanionIds ?? [],
|
|
569
|
+
requiredDiscoveryScopes: value.requiredDiscoveryScopes ?? [],
|
|
570
|
+
});
|
|
471
571
|
}
|
|
472
572
|
function researchMode(value) {
|
|
473
573
|
if (!value || value === "smoke-test")
|
|
@@ -489,6 +589,55 @@ function resumeStage(value) {
|
|
|
489
589
|
exitCode: 2,
|
|
490
590
|
});
|
|
491
591
|
}
|
|
592
|
+
function nativeProducerStage(value) {
|
|
593
|
+
if (value === "discover" || value === "analyze" || value === "synthesize")
|
|
594
|
+
return value;
|
|
595
|
+
throw new CliError("--stage must be discover, analyze, or synthesize.", {
|
|
596
|
+
code: "RESEARCH_NATIVE_STAGE_INVALID",
|
|
597
|
+
exitCode: 2,
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
function nativeHostAgent(value) {
|
|
601
|
+
if (value === "codex" || value === "claude")
|
|
602
|
+
return value;
|
|
603
|
+
throw new CliError("--host-agent must be codex or claude.", {
|
|
604
|
+
code: "RESEARCH_NATIVE_HOST_INVALID",
|
|
605
|
+
exitCode: 2,
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
async function readNativeEvidenceRequest(path) {
|
|
609
|
+
if (!isAbsolute(path)) {
|
|
610
|
+
throw new CliError("--request must be an absolute JSON file path.", {
|
|
611
|
+
code: "RESEARCH_BROKER_REQUEST_INVALID",
|
|
612
|
+
exitCode: 2,
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
const selected = resolve(path);
|
|
616
|
+
const info = await lstat(selected).catch(() => undefined);
|
|
617
|
+
if (!info?.isFile() || info.isSymbolicLink() || info.size > 1024 * 1024) {
|
|
618
|
+
throw new CliError("--request must be a bounded regular non-symlink JSON file.", {
|
|
619
|
+
code: "RESEARCH_BROKER_REQUEST_INVALID",
|
|
620
|
+
exitCode: 2,
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
let value;
|
|
624
|
+
try {
|
|
625
|
+
value = JSON.parse(await readFile(selected, "utf8"));
|
|
626
|
+
}
|
|
627
|
+
catch {
|
|
628
|
+
throw new CliError("--request contains invalid JSON.", {
|
|
629
|
+
code: "RESEARCH_BROKER_REQUEST_INVALID",
|
|
630
|
+
exitCode: 2,
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
634
|
+
throw new CliError("--request must contain one JSON object.", {
|
|
635
|
+
code: "RESEARCH_BROKER_REQUEST_INVALID",
|
|
636
|
+
exitCode: 2,
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
return value;
|
|
640
|
+
}
|
|
492
641
|
async function workspaceFromArgs(args) {
|
|
493
642
|
return requireResearchWorkspace(strictString(args, "workspace") ?? process.cwd());
|
|
494
643
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/research/orchestration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestration.js","sourceRoot":"","sources":["../../src/research/orchestration.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,9 @@ export interface CapabilityBroker {
|
|
|
7
7
|
};
|
|
8
8
|
stop(): Promise<void>;
|
|
9
9
|
}
|
|
10
|
+
export declare function fetchNativeCandidateSource(input: {
|
|
11
|
+
root: string;
|
|
12
|
+
projectId: string;
|
|
13
|
+
request: Record<string, unknown>;
|
|
14
|
+
}): Promise<Record<string, unknown>>;
|
|
10
15
|
export declare function startCapabilityBroker(root: string, projectId: string, capsuleProject: string): Promise<CapabilityBroker | undefined>;
|
|
@@ -6,7 +6,8 @@ import { CliError } from "../../errors.js";
|
|
|
6
6
|
import { loadCapabilityDeclarations, verifyCapabilities } from "./capabilities.js";
|
|
7
7
|
import { loadCapabilityCredentialMap } from "./credentials.js";
|
|
8
8
|
import { loadBrokerEvidenceCache, persistBrokerEvidence, storeBrokerEvidenceCache, } from "./evidence.js";
|
|
9
|
-
import { appendJournalEvent } from "./journal.js";
|
|
9
|
+
import { appendJournalEvent, readJournal } from "./journal.js";
|
|
10
|
+
import { loadProject } from "./projects.js";
|
|
10
11
|
import { sanitizeResearchRecord, sanitizeResearchText } from "./sanitization.js";
|
|
11
12
|
import { canonicalJson, ensureDirectory, isObject, resolveContained, sha256Text, workspacePaths, } from "./storage.js";
|
|
12
13
|
import { loadWorkspaceConfig } from "./workspace.js";
|
|
@@ -16,6 +17,61 @@ const BROKER_CONTEXT_BYTES_PER_TOKEN = 3;
|
|
|
16
17
|
const MAX_RATE_LIMIT_RETRIES = 1;
|
|
17
18
|
const MAX_INLINE_RETRY_DELAY_SECONDS = 5;
|
|
18
19
|
const DEFAULT_RATE_LIMIT_RETRY_SECONDS = 1;
|
|
20
|
+
export async function fetchNativeCandidateSource(input) {
|
|
21
|
+
const project = await loadProject(input.root, input.projectId);
|
|
22
|
+
const discover = project.packages.find((workPackage) => workPackage.stage === "discover");
|
|
23
|
+
if (discover?.status !== "running" || discover.executor !== "producer") {
|
|
24
|
+
throw new CliError("Native evidence fetch is allowed only during an active discover stage.", {
|
|
25
|
+
code: "RESEARCH_NATIVE_STAGE_REQUIRED",
|
|
26
|
+
exitCode: 3,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const declarations = await loadCapabilityDeclarations(input.root);
|
|
30
|
+
const capabilities = declarations.capabilities.filter((capability) => capability.permissions.includes("brokered-network"));
|
|
31
|
+
const verification = await verifyCapabilities(input.root);
|
|
32
|
+
if (verification.status !== "verified") {
|
|
33
|
+
throw new CliError("Native evidence fetch requires verified capability locks.", {
|
|
34
|
+
code: "RESEARCH_CAPABILITY_DRIFT",
|
|
35
|
+
exitCode: 3,
|
|
36
|
+
details: verification,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const config = await loadWorkspaceConfig(input.root);
|
|
40
|
+
const priorCalls = (await readJournal(workspacePaths(input.root).journal)).filter((event) => event.scope === input.projectId && event.type === "capability.fetch.attempted").length;
|
|
41
|
+
if (priorCalls >= config.budget.maxBrokerCalls) {
|
|
42
|
+
await appendJournalEvent(workspacePaths(input.root).journal, "capability.fetch.rejected", input.projectId, {
|
|
43
|
+
projectId: input.projectId,
|
|
44
|
+
code: "RESEARCH_BROKER_CALL_LIMIT_EXCEEDED",
|
|
45
|
+
maxCalls: config.budget.maxBrokerCalls,
|
|
46
|
+
startedCalls: priorCalls,
|
|
47
|
+
});
|
|
48
|
+
throw new CliError("The bounded broker call budget is exhausted.", {
|
|
49
|
+
code: "RESEARCH_BROKER_CALL_LIMIT_EXCEEDED",
|
|
50
|
+
exitCode: 3,
|
|
51
|
+
details: { maxCalls: config.budget.maxBrokerCalls, startedCalls: priorCalls },
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const credentialMap = await loadCapabilityCredentialMap(input.root, declarations.capabilities);
|
|
55
|
+
const receipt = await fetchCandidateSource({
|
|
56
|
+
root: input.root,
|
|
57
|
+
projectId: input.projectId,
|
|
58
|
+
capsuleProject: null,
|
|
59
|
+
capabilities,
|
|
60
|
+
credentialMap,
|
|
61
|
+
workspaceResponseBytes: config.budget.maxBrokerResponseBytes,
|
|
62
|
+
workspaceContextTokens: config.budget.maxBrokerContextTokens,
|
|
63
|
+
workspaceMaxItems: config.budget.maxBrokerItems,
|
|
64
|
+
arguments: input.request,
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
...receipt,
|
|
68
|
+
brokerBudget: {
|
|
69
|
+
maxCalls: config.budget.maxBrokerCalls,
|
|
70
|
+
startedCalls: priorCalls + 1,
|
|
71
|
+
remainingCalls: Math.max(0, config.budget.maxBrokerCalls - priorCalls - 1),
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
19
75
|
export async function startCapabilityBroker(root, projectId, capsuleProject) {
|
|
20
76
|
const declarations = await loadCapabilityDeclarations(root);
|
|
21
77
|
const networkCapabilities = declarations.capabilities.filter((capability) => capability.permissions.includes("brokered-network"));
|
|
@@ -239,32 +295,46 @@ async function fetchCandidateSource(input) {
|
|
|
239
295
|
throw new Error('cache_mode must be "prefer" or "bypass"');
|
|
240
296
|
}
|
|
241
297
|
const capability = input.capabilities.find((candidate) => candidate.id === capabilityId);
|
|
242
|
-
if (!capability)
|
|
243
|
-
throw
|
|
244
|
-
|
|
245
|
-
if (!capability.http)
|
|
246
|
-
throw
|
|
247
|
-
|
|
248
|
-
|
|
298
|
+
if (!capability) {
|
|
299
|
+
throw brokerDiagnosticError("CAPABILITY_NOT_DECLARED", "The requested evidence capability is not present in the locked manifest.", false, "Have the workspace owner select or import the exact reviewed capability, configure it, rebuild the capability lock, and pass doctor before retrying.", { capabilityId });
|
|
300
|
+
}
|
|
301
|
+
if (!capability.http) {
|
|
302
|
+
throw brokerDiagnosticError("CAPABILITY_NOT_DECLARED", "The requested capability has no locked broker HTTP policy.", false, "Replace the capability declaration with a reviewed brokered-network capability and rebuild the lock.", { capabilityId });
|
|
303
|
+
}
|
|
304
|
+
let target;
|
|
305
|
+
let encodedRequestBody;
|
|
306
|
+
try {
|
|
307
|
+
target = validateHttpsUrl(rawUrl);
|
|
308
|
+
assertEndpointScope(target, capability.http.endpoint);
|
|
309
|
+
encodedRequestBody = validateBrokerRequestBody(capability.http.method, requestBody, capability.http.maxRequestBytes);
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_INJECTION_REJECTED", "The broker rejected the request before credential injection because it does not match the locked endpoint or method policy.", false, "Use only the exact locked capability ID, endpoint, HTTP method, and non-secret request shape.", { capabilityId });
|
|
313
|
+
}
|
|
249
314
|
const credential = credentialId
|
|
250
315
|
? capability.credentials.find((candidate) => candidate.id === credentialId)
|
|
251
316
|
: capability.credentials.length === 1
|
|
252
317
|
? capability.credentials[0]
|
|
253
318
|
: undefined;
|
|
254
319
|
if (credentialId && !credential) {
|
|
255
|
-
throw
|
|
320
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_INJECTION_REJECTED", "The requested logical credential is not declared by the locked capability.", false, "Use the logical credential ID declared by the capability manifest; never pass credential values through tool arguments.", { capabilityId, credentialId });
|
|
256
321
|
}
|
|
257
322
|
if (!credentialId && capability.credentials.length > 1) {
|
|
258
|
-
throw
|
|
323
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_INJECTION_REJECTED", "The capability declares multiple logical credentials and requires an explicit credential ID.", false, "Select one logical credential ID from the locked capability declaration without including its value.", { capabilityId });
|
|
259
324
|
}
|
|
260
325
|
const effectiveCredentialId = credential?.id ?? null;
|
|
261
326
|
const cacheMode = requestedCacheMode ?? (credential ? "bypass" : "prefer");
|
|
262
327
|
if (credential && cacheMode === "prefer") {
|
|
263
|
-
throw
|
|
328
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_INJECTION_REJECTED", "Credentialed broker requests cannot use the shared response cache.", false, "Retry the locked capability request with cache_mode=bypass.", { capabilityId, credentialId: credential.id });
|
|
329
|
+
}
|
|
330
|
+
try {
|
|
331
|
+
assertAllowedHost(target, capability.allowedHosts, "capability");
|
|
332
|
+
if (credential)
|
|
333
|
+
assertAllowedHost(target, credential.allowedHosts, "credential");
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_INJECTION_REJECTED", "The broker refused credential injection because the target host is outside the locked policy.", false, "Use the exact credential-free HTTPS endpoint and host declared by the locked capability.", { capabilityId, credentialId: credential?.id ?? null });
|
|
264
337
|
}
|
|
265
|
-
assertAllowedHost(target, capability.allowedHosts, "capability");
|
|
266
|
-
if (credential)
|
|
267
|
-
assertAllowedHost(target, credential.allowedHosts, "credential");
|
|
268
338
|
const attemptId = randomUUID();
|
|
269
339
|
const maxItems = Math.min(requestedMaxItems ?? capability.http.maxItems, capability.http.maxItems, input.workspaceMaxItems);
|
|
270
340
|
const cacheKeySha256 = sha256Text(canonicalJson({
|
|
@@ -307,7 +377,9 @@ async function fetchCandidateSource(input) {
|
|
|
307
377
|
retrievedAt: cached.retrievedAt,
|
|
308
378
|
cacheHit: true,
|
|
309
379
|
}, raw, context.bytes);
|
|
310
|
-
|
|
380
|
+
if (input.capsuleProject) {
|
|
381
|
+
await stageContextObject(input.capsuleProject, receipt.contextLocator, context.bytes);
|
|
382
|
+
}
|
|
311
383
|
await appendCompletedReceipt(input.root, input.projectId, receipt, cacheKeySha256);
|
|
312
384
|
return brokerToolResult(receipt, context.bytes, cached.contentType);
|
|
313
385
|
}
|
|
@@ -318,8 +390,9 @@ async function fetchCandidateSource(input) {
|
|
|
318
390
|
headers.set("Content-Type", "application/json");
|
|
319
391
|
if (credential) {
|
|
320
392
|
const value = input.credentialMap.get(credential.id);
|
|
321
|
-
if (!value)
|
|
322
|
-
throw
|
|
393
|
+
if (!value) {
|
|
394
|
+
throw brokerDiagnosticError("BROKER_CREDENTIAL_NOT_CONFIGURED", "The locked capability's logical credential is not configured in the broker store.", false, "Use research setup credential set with hidden input, stdin, or an owner environment variable, then rerun capability doctor.", { capabilityId, credentialId: credential.id });
|
|
395
|
+
}
|
|
323
396
|
headers.set(credential.headerName, `${credential.prefix}${value}`);
|
|
324
397
|
}
|
|
325
398
|
const responseLimit = Math.min(capability.http.maxResponseBytes, input.workspaceResponseBytes);
|
|
@@ -366,10 +439,24 @@ async function fetchCandidateSource(input) {
|
|
|
366
439
|
if (!response.ok) {
|
|
367
440
|
const retryAfterSeconds = parseRetryAfter(response.headers.get("retry-after"));
|
|
368
441
|
const excerpt = safeResponseExcerpt(bytes, contentType, [...input.credentialMap.values()]);
|
|
442
|
+
if (response.status === 401 || response.status === 403) {
|
|
443
|
+
throw brokerDiagnosticError("PROVIDER_AUTHENTICATION_FAILED", "The provider rejected the broker-injected logical credential or entitlement.", true, "Verify the configured logical credential and provider entitlement, then rerun capability doctor before retrying research.", {
|
|
444
|
+
capabilityId,
|
|
445
|
+
credentialId: effectiveCredentialId,
|
|
446
|
+
status: response.status,
|
|
447
|
+
requestId: safeResponseId(response.headers),
|
|
448
|
+
});
|
|
449
|
+
}
|
|
369
450
|
throw new CliError(`HTTPS source returned status ${response.status}.`, {
|
|
370
451
|
code: "RESEARCH_BROKER_HTTP_ERROR",
|
|
371
452
|
exitCode: 3,
|
|
372
453
|
details: {
|
|
454
|
+
executionMode: "broker",
|
|
455
|
+
credentialScope: "broker",
|
|
456
|
+
networkAttempted: true,
|
|
457
|
+
minimumAction: response.status === 429
|
|
458
|
+
? "Honor Retry-After or the provider quota reset, then retry through the same locked broker capability."
|
|
459
|
+
: "Resolve the provider response or capability contract, then retry through the same locked broker capability.",
|
|
373
460
|
status: response.status,
|
|
374
461
|
retryAfterSeconds,
|
|
375
462
|
responseExcerpt: excerpt,
|
|
@@ -402,7 +489,9 @@ async function fetchCandidateSource(input) {
|
|
|
402
489
|
retrievedAt: new Date().toISOString(),
|
|
403
490
|
cacheHit: false,
|
|
404
491
|
}, bytes, context.bytes);
|
|
405
|
-
|
|
492
|
+
if (input.capsuleProject) {
|
|
493
|
+
await stageContextObject(input.capsuleProject, receipt.contextLocator, context.bytes);
|
|
494
|
+
}
|
|
406
495
|
if (!credential)
|
|
407
496
|
await storeBrokerEvidenceCache(input.root, cacheKeySha256, receipt);
|
|
408
497
|
await appendCompletedReceipt(input.root, input.projectId, receipt, cacheKeySha256);
|
|
@@ -786,7 +875,23 @@ function parseRetryAfter(value) {
|
|
|
786
875
|
const date = Date.parse(value);
|
|
787
876
|
return Number.isFinite(date) ? Math.max(0, Math.ceil((date - Date.now()) / 1000)) : null;
|
|
788
877
|
}
|
|
878
|
+
function brokerDiagnosticError(code, message, networkAttempted, minimumAction, extra = {}) {
|
|
879
|
+
return new CliError(message, {
|
|
880
|
+
code,
|
|
881
|
+
exitCode: 3,
|
|
882
|
+
details: {
|
|
883
|
+
executionMode: "broker",
|
|
884
|
+
credentialScope: "broker",
|
|
885
|
+
networkAttempted,
|
|
886
|
+
minimumAction,
|
|
887
|
+
...extra,
|
|
888
|
+
},
|
|
889
|
+
});
|
|
890
|
+
}
|
|
789
891
|
function brokerFailureKind(error) {
|
|
892
|
+
if (error instanceof CliError && error.code === "PROVIDER_AUTHENTICATION_FAILED") {
|
|
893
|
+
return "deterministic";
|
|
894
|
+
}
|
|
790
895
|
if (error instanceof CliError && error.code === "RESEARCH_BROKER_HTTP_ERROR") {
|
|
791
896
|
const status = isObject(error.details) ? error.details.status : undefined;
|
|
792
897
|
if (status === 429)
|
|
@@ -799,7 +904,13 @@ function brokerFailureKind(error) {
|
|
|
799
904
|
}
|
|
800
905
|
function validateHttpsUrl(value) {
|
|
801
906
|
const url = new URL(value);
|
|
802
|
-
|
|
907
|
+
const sensitive = /^(access_token|api[_-]?key|apikey|auth|authorization|cookie|key|password|secret|session|sig|signature|token)$/i;
|
|
908
|
+
if (url.protocol !== "https:" ||
|
|
909
|
+
url.username ||
|
|
910
|
+
url.password ||
|
|
911
|
+
url.hash ||
|
|
912
|
+
!url.hostname ||
|
|
913
|
+
[...url.searchParams.keys()].some((key) => sensitive.test(key))) {
|
|
803
914
|
throw new Error("broker URL must be credential-free HTTPS");
|
|
804
915
|
}
|
|
805
916
|
return url;
|