@tiangong-ai/cli 0.0.23 → 0.0.25
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 -1
- package/README.md +44 -32
- package/dist/io.d.ts +3 -0
- package/dist/io.js.map +1 -1
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/dist/research/orchestration.js +7 -0
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/setup-command.d.ts +3 -0
- package/dist/research/setup-command.js +487 -0
- package/dist/research/setup-command.js.map +1 -0
- package/dist/research/workspace/broker.js +39 -4
- package/dist/research/workspace/broker.js.map +1 -1
- package/dist/research/workspace/capabilities.js +64 -0
- package/dist/research/workspace/capabilities.js.map +1 -1
- package/dist/research/workspace/constants.d.ts +3 -2
- package/dist/research/workspace/constants.js +19 -0
- package/dist/research/workspace/constants.js.map +1 -1
- package/dist/research/workspace/context.js +26 -1
- package/dist/research/workspace/context.js.map +1 -1
- package/dist/research/workspace/external-skills.d.ts +20 -1
- package/dist/research/workspace/external-skills.js +143 -2
- package/dist/research/workspace/external-skills.js.map +1 -1
- package/dist/research/workspace/runtime.js +1 -1
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/setup-catalog.d.ts +175 -0
- package/dist/research/workspace/setup-catalog.js +588 -0
- package/dist/research/workspace/setup-catalog.js.map +1 -0
- package/dist/research/workspace/setup-wizard.d.ts +24 -0
- package/dist/research/workspace/setup-wizard.js +476 -0
- package/dist/research/workspace/setup-wizard.js.map +1 -0
- package/dist/research/workspace/setup.d.ts +468 -0
- package/dist/research/workspace/setup.js +3000 -0
- package/dist/research/workspace/setup.js.map +1 -0
- package/dist/research/workspace/storage.js +7 -0
- package/dist/research/workspace/storage.js.map +1 -1
- package/dist/research/workspace/types.d.ts +13 -1
- package/dist/research/workspace/workspace.js +56 -7
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
import { EXTERNAL_SKILL_CONTEXT_PROFILE, EXTERNAL_SKILL_MEDIA_PROFILE, EXTERNAL_SKILL_PROFILE } from "./external-skills.js";
|
|
2
|
+
import { RESEARCH_SETUP_INSTALLER, type ResearchSetupAgent, type ResearchSetupCredential, type ResearchSetupScope, type ResearchSetupSkill } from "./setup-catalog.js";
|
|
3
|
+
import type { AgentPricing, ResearchMode } from "./types.js";
|
|
4
|
+
export type ResearchSetupEvidenceProfile = "none" | typeof EXTERNAL_SKILL_PROFILE | typeof EXTERNAL_SKILL_CONTEXT_PROFILE | typeof EXTERNAL_SKILL_MEDIA_PROFILE;
|
|
5
|
+
export interface ResearchSetupAgentRoutePlan {
|
|
6
|
+
producerModel: string | null;
|
|
7
|
+
reviewerModel: string | null;
|
|
8
|
+
producerPricing: AgentPricing | null;
|
|
9
|
+
reviewerPricing: AgentPricing | null;
|
|
10
|
+
}
|
|
11
|
+
export interface ResearchSetupPlan {
|
|
12
|
+
schemaVersion: 1;
|
|
13
|
+
kind: "tiangong-research-setup-plan";
|
|
14
|
+
planId: string;
|
|
15
|
+
createdAt: string;
|
|
16
|
+
cli: {
|
|
17
|
+
package: "@tiangong-ai/cli";
|
|
18
|
+
version: string;
|
|
19
|
+
};
|
|
20
|
+
workspace: {
|
|
21
|
+
path: string;
|
|
22
|
+
name: string;
|
|
23
|
+
mode: ResearchMode;
|
|
24
|
+
};
|
|
25
|
+
install: {
|
|
26
|
+
scope: ResearchSetupScope;
|
|
27
|
+
agents: ResearchSetupAgent[];
|
|
28
|
+
mode: "copy";
|
|
29
|
+
installer: typeof RESEARCH_SETUP_INSTALLER;
|
|
30
|
+
targets: Array<{
|
|
31
|
+
agent: ResearchSetupAgent;
|
|
32
|
+
root: string;
|
|
33
|
+
}>;
|
|
34
|
+
};
|
|
35
|
+
selection: {
|
|
36
|
+
evidenceProfile: ResearchSetupEvidenceProfile;
|
|
37
|
+
skillIds: string[];
|
|
38
|
+
};
|
|
39
|
+
sources: Array<{
|
|
40
|
+
id: string;
|
|
41
|
+
repository: string;
|
|
42
|
+
locator: string;
|
|
43
|
+
immutableRef: string;
|
|
44
|
+
}>;
|
|
45
|
+
skills: Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
skillName: string;
|
|
48
|
+
sourceId: string;
|
|
49
|
+
sourceRelativePath: string;
|
|
50
|
+
expectedTreeSha256: string;
|
|
51
|
+
role: ResearchSetupSkill["role"];
|
|
52
|
+
licenseId: string;
|
|
53
|
+
}>;
|
|
54
|
+
acceptedLicenses: Array<{
|
|
55
|
+
skillId: string;
|
|
56
|
+
licenseId: string;
|
|
57
|
+
accepted: true;
|
|
58
|
+
}>;
|
|
59
|
+
credentialSources: Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
fromEnvironment: string;
|
|
62
|
+
storage: ResearchSetupCredential["storage"];
|
|
63
|
+
}>;
|
|
64
|
+
settings: Record<string, string>;
|
|
65
|
+
agentRoutes: ResearchSetupAgentRoutePlan;
|
|
66
|
+
checks: {
|
|
67
|
+
live: boolean;
|
|
68
|
+
allowSyntheticUnstructureUpload: boolean;
|
|
69
|
+
agentSmoke: boolean;
|
|
70
|
+
};
|
|
71
|
+
confirmations: {
|
|
72
|
+
networkDownloads: true;
|
|
73
|
+
globalMutation: boolean;
|
|
74
|
+
agentSmokeCost: boolean;
|
|
75
|
+
};
|
|
76
|
+
mutations: Array<{
|
|
77
|
+
step: string;
|
|
78
|
+
target: string;
|
|
79
|
+
reason: string;
|
|
80
|
+
}>;
|
|
81
|
+
planSha256: string;
|
|
82
|
+
}
|
|
83
|
+
export interface ResearchSetupState {
|
|
84
|
+
schemaVersion: 1;
|
|
85
|
+
planSha256: string;
|
|
86
|
+
status: "pending" | "applying" | "partially-ready" | "ready" | "blocked";
|
|
87
|
+
currentStep: string | null;
|
|
88
|
+
completedSteps: string[];
|
|
89
|
+
attempts: number;
|
|
90
|
+
updatedAt: string;
|
|
91
|
+
lastError: {
|
|
92
|
+
code: string;
|
|
93
|
+
step: string;
|
|
94
|
+
reason: string;
|
|
95
|
+
minimumAction: string;
|
|
96
|
+
retryCommand: string;
|
|
97
|
+
} | null;
|
|
98
|
+
}
|
|
99
|
+
export interface ResearchSetupPlanInput {
|
|
100
|
+
workspace: string;
|
|
101
|
+
name?: string;
|
|
102
|
+
mode: ResearchMode;
|
|
103
|
+
evidenceProfile: ResearchSetupEvidenceProfile;
|
|
104
|
+
skillIds: string[];
|
|
105
|
+
scope?: ResearchSetupScope;
|
|
106
|
+
agents?: ResearchSetupAgent[];
|
|
107
|
+
acceptedLicenseIds: string[];
|
|
108
|
+
credentialEnvironment?: Record<string, string>;
|
|
109
|
+
settings?: Record<string, string>;
|
|
110
|
+
agentRoutes?: Partial<ResearchSetupAgentRoutePlan>;
|
|
111
|
+
liveChecks?: boolean;
|
|
112
|
+
allowSyntheticUnstructureUpload?: boolean;
|
|
113
|
+
agentSmoke?: boolean;
|
|
114
|
+
confirmNetworkDownloads: boolean;
|
|
115
|
+
confirmGlobalMutation?: boolean;
|
|
116
|
+
confirmAgentSmokeCost?: boolean;
|
|
117
|
+
replacePlan?: boolean;
|
|
118
|
+
environment?: NodeJS.ProcessEnv;
|
|
119
|
+
targetRoots?: Partial<Record<ResearchSetupAgent, string>>;
|
|
120
|
+
}
|
|
121
|
+
export interface SetupCommandResult {
|
|
122
|
+
exitCode: number;
|
|
123
|
+
stdout: string;
|
|
124
|
+
stderr: string;
|
|
125
|
+
}
|
|
126
|
+
export type SetupCommandRunner = (input: {
|
|
127
|
+
command: string;
|
|
128
|
+
args: string[];
|
|
129
|
+
cwd: string;
|
|
130
|
+
environment: NodeJS.ProcessEnv;
|
|
131
|
+
timeoutMs: number;
|
|
132
|
+
}) => Promise<SetupCommandResult>;
|
|
133
|
+
export interface ApplyResearchSetupOptions {
|
|
134
|
+
environment?: NodeJS.ProcessEnv;
|
|
135
|
+
runner?: SetupCommandRunner;
|
|
136
|
+
fetcher?: typeof fetch;
|
|
137
|
+
sleeper?: (milliseconds: number) => Promise<unknown>;
|
|
138
|
+
skipDoctor?: boolean;
|
|
139
|
+
}
|
|
140
|
+
export type ResearchSetupCompanionInput = {
|
|
141
|
+
workspace: string;
|
|
142
|
+
skillId: "tiangong.document-granular-decompose";
|
|
143
|
+
inputPath: string;
|
|
144
|
+
outputPath: string;
|
|
145
|
+
timeoutSeconds?: number;
|
|
146
|
+
} | {
|
|
147
|
+
workspace: string;
|
|
148
|
+
skillId: "tiangong.academic-paper-download";
|
|
149
|
+
outputDirectory: string;
|
|
150
|
+
doi?: string;
|
|
151
|
+
title?: string;
|
|
152
|
+
author?: string;
|
|
153
|
+
year?: number;
|
|
154
|
+
timeoutSeconds?: number;
|
|
155
|
+
};
|
|
156
|
+
export interface RunResearchSetupCompanionOptions {
|
|
157
|
+
environment?: NodeJS.ProcessEnv;
|
|
158
|
+
runner?: SetupCommandRunner;
|
|
159
|
+
}
|
|
160
|
+
export declare function createResearchSetupPlan(input: ResearchSetupPlanInput): Promise<ResearchSetupPlan>;
|
|
161
|
+
export declare function loadAndVerifyResearchSetupPlan(planPath: string): Promise<ResearchSetupPlan>;
|
|
162
|
+
export declare function createResearchSetupUpgradePlan(input: {
|
|
163
|
+
workspace: string;
|
|
164
|
+
acceptedLicenseIds: string[];
|
|
165
|
+
confirmUpgrade: boolean;
|
|
166
|
+
environment?: NodeJS.ProcessEnv;
|
|
167
|
+
}): Promise<ResearchSetupPlan>;
|
|
168
|
+
export declare function applyResearchSetupPlan(planPath: string, options?: ApplyResearchSetupOptions): Promise<{
|
|
169
|
+
schemaVersion: 1;
|
|
170
|
+
plan: ResearchSetupPlan;
|
|
171
|
+
state: ResearchSetupState;
|
|
172
|
+
report: null;
|
|
173
|
+
} | {
|
|
174
|
+
schemaVersion: 1;
|
|
175
|
+
plan: ResearchSetupPlan;
|
|
176
|
+
state: ResearchSetupState;
|
|
177
|
+
report: Record<string, unknown> & {
|
|
178
|
+
readiness: "READY" | "PARTIALLY_READY" | "BLOCKED";
|
|
179
|
+
};
|
|
180
|
+
}>;
|
|
181
|
+
export declare function inspectResearchSetupStatus(workspace: string, environment?: NodeJS.ProcessEnv): Promise<{
|
|
182
|
+
schemaVersion: 1;
|
|
183
|
+
workspace: string;
|
|
184
|
+
plan: {
|
|
185
|
+
planId: string;
|
|
186
|
+
planSha256: string;
|
|
187
|
+
cliVersion: string;
|
|
188
|
+
mode: ResearchMode;
|
|
189
|
+
scope: ResearchSetupScope;
|
|
190
|
+
agents: ResearchSetupAgent[];
|
|
191
|
+
selectedSkillIds: string[];
|
|
192
|
+
};
|
|
193
|
+
state: ResearchSetupState;
|
|
194
|
+
installations: {
|
|
195
|
+
skillId: string;
|
|
196
|
+
skillName: string;
|
|
197
|
+
agent: ResearchSetupAgent;
|
|
198
|
+
path: string;
|
|
199
|
+
status: "missing" | "installed" | "drifted" | "blocked";
|
|
200
|
+
observedTreeSha256: string | null;
|
|
201
|
+
detail: string;
|
|
202
|
+
}[];
|
|
203
|
+
report: unknown;
|
|
204
|
+
next: {
|
|
205
|
+
code: string;
|
|
206
|
+
step: string;
|
|
207
|
+
reason: string;
|
|
208
|
+
minimumAction: string;
|
|
209
|
+
retryCommand: string;
|
|
210
|
+
} | {
|
|
211
|
+
minimumAction: string;
|
|
212
|
+
retryCommand: string;
|
|
213
|
+
} | null;
|
|
214
|
+
}>;
|
|
215
|
+
export declare function setResearchSetupCredentialFromEnvironment(input: {
|
|
216
|
+
workspace: string;
|
|
217
|
+
credentialId: string;
|
|
218
|
+
environmentName: string;
|
|
219
|
+
environment: NodeJS.ProcessEnv;
|
|
220
|
+
}): Promise<{
|
|
221
|
+
schemaVersion: 1;
|
|
222
|
+
workspace: string;
|
|
223
|
+
credentialId: string;
|
|
224
|
+
configured: true;
|
|
225
|
+
storage: "broker" | "adapter";
|
|
226
|
+
outputPolicy: "value-is-never-emitted";
|
|
227
|
+
}>;
|
|
228
|
+
export declare function runResearchSetupCompanion(input: Extract<ResearchSetupCompanionInput, {
|
|
229
|
+
skillId: "tiangong.document-granular-decompose";
|
|
230
|
+
}>, options?: RunResearchSetupCompanionOptions): ReturnType<typeof runDocumentGranularCompanion>;
|
|
231
|
+
export declare function runResearchSetupCompanion(input: Extract<ResearchSetupCompanionInput, {
|
|
232
|
+
skillId: "tiangong.academic-paper-download";
|
|
233
|
+
}>, options?: RunResearchSetupCompanionOptions): ReturnType<typeof runAcademicPaperCompanion>;
|
|
234
|
+
export declare function doctorResearchSetup(workspace: string, options?: {
|
|
235
|
+
live?: boolean;
|
|
236
|
+
allowSyntheticUnstructureUpload?: boolean;
|
|
237
|
+
agentSmoke?: boolean;
|
|
238
|
+
environment?: NodeJS.ProcessEnv;
|
|
239
|
+
runner?: SetupCommandRunner;
|
|
240
|
+
fetcher?: typeof fetch;
|
|
241
|
+
sleeper?: (milliseconds: number) => Promise<unknown>;
|
|
242
|
+
}): Promise<Record<string, unknown> & {
|
|
243
|
+
readiness: "READY" | "PARTIALLY_READY" | "BLOCKED";
|
|
244
|
+
}>;
|
|
245
|
+
export declare function retryResearchSetup(input: {
|
|
246
|
+
workspace: string;
|
|
247
|
+
step: string;
|
|
248
|
+
clearStaleLock?: boolean;
|
|
249
|
+
options?: ApplyResearchSetupOptions;
|
|
250
|
+
}): Promise<{
|
|
251
|
+
schemaVersion: 1;
|
|
252
|
+
plan: ResearchSetupPlan;
|
|
253
|
+
state: ResearchSetupState;
|
|
254
|
+
report: null;
|
|
255
|
+
} | {
|
|
256
|
+
schemaVersion: 1;
|
|
257
|
+
plan: ResearchSetupPlan;
|
|
258
|
+
state: ResearchSetupState;
|
|
259
|
+
report: Record<string, unknown> & {
|
|
260
|
+
readiness: "READY" | "PARTIALLY_READY" | "BLOCKED";
|
|
261
|
+
};
|
|
262
|
+
}>;
|
|
263
|
+
export declare function checkResearchSetupUpdates(workspace: string, environment?: NodeJS.ProcessEnv): Promise<{
|
|
264
|
+
schemaVersion: 1;
|
|
265
|
+
workspace: string;
|
|
266
|
+
checkedAt: string;
|
|
267
|
+
updateAvailable: boolean;
|
|
268
|
+
cliVersionDrift: {
|
|
269
|
+
planned: string;
|
|
270
|
+
active: string;
|
|
271
|
+
} | null;
|
|
272
|
+
drift: ({
|
|
273
|
+
skillId: string;
|
|
274
|
+
status: "removed";
|
|
275
|
+
} | {
|
|
276
|
+
skillId: string;
|
|
277
|
+
status: "catalog-updated";
|
|
278
|
+
plannedTreeSha256: string;
|
|
279
|
+
currentTreeSha256: string;
|
|
280
|
+
})[];
|
|
281
|
+
currentInstaller: {
|
|
282
|
+
readonly package: "skills";
|
|
283
|
+
readonly version: "1.5.22";
|
|
284
|
+
readonly npmIntegrity: "sha512-cHiLjwZEawWFvudIqeeMZlvZayTLbRouydMbblyrdiyH7ZLbqUrSrEEr+Tg+X265iztRlVMsyOYRwpD5JxBsvg==";
|
|
285
|
+
readonly npmShasum: "ec0a7897ba2ef06e01f3b41007886f3a92cf4d05";
|
|
286
|
+
readonly gitHead: "a4d243c3d4f86cdf9385dd1b6a0733f6937e70b5";
|
|
287
|
+
readonly runtimeInstall: false;
|
|
288
|
+
};
|
|
289
|
+
catalog: {
|
|
290
|
+
schemaVersion: 1;
|
|
291
|
+
catalog: string;
|
|
292
|
+
policy: {
|
|
293
|
+
bundledSkills: boolean;
|
|
294
|
+
userInitiatedOnly: boolean;
|
|
295
|
+
runtimeInstall: boolean;
|
|
296
|
+
defaultScope: string;
|
|
297
|
+
defaultInstallMode: string;
|
|
298
|
+
floatingUpdates: boolean;
|
|
299
|
+
automaticSystemPackageInstall: boolean;
|
|
300
|
+
automaticPythonPackageInstall: boolean;
|
|
301
|
+
};
|
|
302
|
+
installer: {
|
|
303
|
+
readonly package: "skills";
|
|
304
|
+
readonly version: "1.5.22";
|
|
305
|
+
readonly npmIntegrity: "sha512-cHiLjwZEawWFvudIqeeMZlvZayTLbRouydMbblyrdiyH7ZLbqUrSrEEr+Tg+X265iztRlVMsyOYRwpD5JxBsvg==";
|
|
306
|
+
readonly npmShasum: "ec0a7897ba2ef06e01f3b41007886f3a92cf4d05";
|
|
307
|
+
readonly gitHead: "a4d243c3d4f86cdf9385dd1b6a0733f6937e70b5";
|
|
308
|
+
readonly runtimeInstall: false;
|
|
309
|
+
};
|
|
310
|
+
workspace: string;
|
|
311
|
+
scope: ResearchSetupScope;
|
|
312
|
+
agents: ResearchSetupAgent[];
|
|
313
|
+
sources: readonly import("./setup-catalog.js").ResearchSetupSource[];
|
|
314
|
+
entries: {
|
|
315
|
+
source: import("./setup-catalog.js").ResearchSetupSource;
|
|
316
|
+
installations: {
|
|
317
|
+
status: "missing" | "installed" | "drifted" | "blocked";
|
|
318
|
+
observedTreeSha256: string | null;
|
|
319
|
+
detail: string;
|
|
320
|
+
agent: ResearchSetupAgent;
|
|
321
|
+
root: string;
|
|
322
|
+
path: string;
|
|
323
|
+
}[];
|
|
324
|
+
id: string;
|
|
325
|
+
skillName: string;
|
|
326
|
+
sourceId: string;
|
|
327
|
+
sourceRelativePath: string;
|
|
328
|
+
expectedTreeSha256: string;
|
|
329
|
+
tier: import("./setup-catalog.js").ResearchSetupTier;
|
|
330
|
+
role: import("./setup-catalog.js").ResearchSetupRole;
|
|
331
|
+
purpose: string;
|
|
332
|
+
recommendedFor: string[];
|
|
333
|
+
defaultSelected: boolean;
|
|
334
|
+
credentialIds: string[];
|
|
335
|
+
settingIds: string[];
|
|
336
|
+
dependencies: import("./setup-catalog.js").ResearchSetupDependency[];
|
|
337
|
+
license: import("./setup-catalog.js").ResearchSetupLicense;
|
|
338
|
+
conflictGroup: string | null;
|
|
339
|
+
capabilityKind: "brave-public-internet" | "tiangong-sci" | null;
|
|
340
|
+
bundled: false;
|
|
341
|
+
userInitiatedOnly: true;
|
|
342
|
+
}[];
|
|
343
|
+
credentials: readonly ResearchSetupCredential[];
|
|
344
|
+
settings: readonly import("./setup-catalog.js").ResearchSetupSetting[];
|
|
345
|
+
conflictGroups: never[];
|
|
346
|
+
selectionGuidance: {
|
|
347
|
+
readonly pptCreation: {
|
|
348
|
+
readonly preferredSkillId: "hugohe3.ppt-master";
|
|
349
|
+
readonly situationalSkillIds: readonly ["anthropic.pptx"];
|
|
350
|
+
readonly maySelectTogether: true;
|
|
351
|
+
readonly automaticSelection: false;
|
|
352
|
+
readonly guidance: "Prefer PPT Master for creating PPT presentations; use Anthropic PPTX when its workflow better fits the task. Both remain explicit post-closure choices.";
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
roles: {
|
|
356
|
+
evidenceCapabilities: string[];
|
|
357
|
+
inputPreprocessors: string[];
|
|
358
|
+
acquisitionAdapters: string[];
|
|
359
|
+
postClosureAuthoring: string[];
|
|
360
|
+
};
|
|
361
|
+
};
|
|
362
|
+
policy: {
|
|
363
|
+
automaticUpdate: boolean;
|
|
364
|
+
floatingUpdate: boolean;
|
|
365
|
+
minimumAction: string;
|
|
366
|
+
};
|
|
367
|
+
}>;
|
|
368
|
+
export declare function clearStaleSetupLock(workspace: string): Promise<void>;
|
|
369
|
+
declare function runDocumentGranularCompanion(input: {
|
|
370
|
+
root: string;
|
|
371
|
+
plan: ResearchSetupPlan;
|
|
372
|
+
skill: ResearchSetupSkill;
|
|
373
|
+
skillDirectory: string;
|
|
374
|
+
credentialDefinitions: ResearchSetupCredential[];
|
|
375
|
+
credentials: Map<string, string>;
|
|
376
|
+
input: Extract<ResearchSetupCompanionInput, {
|
|
377
|
+
skillId: "tiangong.document-granular-decompose";
|
|
378
|
+
}>;
|
|
379
|
+
environment: NodeJS.ProcessEnv;
|
|
380
|
+
runner: SetupCommandRunner;
|
|
381
|
+
}): Promise<{
|
|
382
|
+
schemaVersion: 1;
|
|
383
|
+
kind: "research-setup-companion-result";
|
|
384
|
+
status: "complete";
|
|
385
|
+
workspace: string;
|
|
386
|
+
skillId: string;
|
|
387
|
+
role: import("./setup-catalog.js").ResearchSetupRole;
|
|
388
|
+
input: {
|
|
389
|
+
path: string;
|
|
390
|
+
sha256: string;
|
|
391
|
+
bytes: number;
|
|
392
|
+
};
|
|
393
|
+
output: {
|
|
394
|
+
path: string;
|
|
395
|
+
sha256: string;
|
|
396
|
+
bytes: number;
|
|
397
|
+
};
|
|
398
|
+
provenance: {
|
|
399
|
+
planSha256: string;
|
|
400
|
+
sourceId: string;
|
|
401
|
+
sourceRef: string;
|
|
402
|
+
skillTreeSha256: string;
|
|
403
|
+
};
|
|
404
|
+
next: string;
|
|
405
|
+
}>;
|
|
406
|
+
declare function runAcademicPaperCompanion(input: {
|
|
407
|
+
root: string;
|
|
408
|
+
plan: ResearchSetupPlan;
|
|
409
|
+
skill: ResearchSetupSkill;
|
|
410
|
+
skillDirectory: string;
|
|
411
|
+
credentials: Map<string, string>;
|
|
412
|
+
input: Extract<ResearchSetupCompanionInput, {
|
|
413
|
+
skillId: "tiangong.academic-paper-download";
|
|
414
|
+
}>;
|
|
415
|
+
environment: NodeJS.ProcessEnv;
|
|
416
|
+
runner: SetupCommandRunner;
|
|
417
|
+
}): Promise<{
|
|
418
|
+
schemaVersion: 1;
|
|
419
|
+
kind: "research-setup-companion-result";
|
|
420
|
+
status: "browser-handoff-required";
|
|
421
|
+
workspace: string;
|
|
422
|
+
skillId: string;
|
|
423
|
+
role: import("./setup-catalog.js").ResearchSetupRole;
|
|
424
|
+
artifactCommitted: boolean;
|
|
425
|
+
sourcesTried: any[];
|
|
426
|
+
error: Record<string, unknown>;
|
|
427
|
+
provenance: {
|
|
428
|
+
planSha256: string;
|
|
429
|
+
sourceId: string;
|
|
430
|
+
sourceRef: string;
|
|
431
|
+
skillTreeSha256: string;
|
|
432
|
+
};
|
|
433
|
+
next: string;
|
|
434
|
+
artifact?: never;
|
|
435
|
+
manifest?: never;
|
|
436
|
+
source?: never;
|
|
437
|
+
validation?: never;
|
|
438
|
+
} | {
|
|
439
|
+
schemaVersion: 1;
|
|
440
|
+
kind: "research-setup-companion-result";
|
|
441
|
+
status: "complete";
|
|
442
|
+
workspace: string;
|
|
443
|
+
skillId: string;
|
|
444
|
+
role: import("./setup-catalog.js").ResearchSetupRole;
|
|
445
|
+
artifact: {
|
|
446
|
+
path: string;
|
|
447
|
+
sha256: string;
|
|
448
|
+
bytes: number;
|
|
449
|
+
};
|
|
450
|
+
manifest: {
|
|
451
|
+
path: string;
|
|
452
|
+
sha256: string;
|
|
453
|
+
bytes: number;
|
|
454
|
+
};
|
|
455
|
+
source: string | null;
|
|
456
|
+
provenance: {
|
|
457
|
+
planSha256: string;
|
|
458
|
+
sourceId: string;
|
|
459
|
+
sourceRef: string;
|
|
460
|
+
skillTreeSha256: string;
|
|
461
|
+
};
|
|
462
|
+
validation: string[];
|
|
463
|
+
next: string;
|
|
464
|
+
artifactCommitted?: never;
|
|
465
|
+
sourcesTried?: never;
|
|
466
|
+
error?: never;
|
|
467
|
+
}>;
|
|
468
|
+
export {};
|