@xfey/tutti 0.1.16 → 0.1.18
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/collaboration-state/run-recording.js +3 -0
- package/dist/collaboration-state/run-results.js +3 -0
- package/dist/collaboration-state/types.d.ts +1 -0
- package/dist/control-plane/index.js +3 -0
- package/dist/control-plane/task-compile-start.d.ts +3 -0
- package/dist/control-plane/task-compile-start.js +47 -11
- package/dist/control-plane/types.d.ts +1 -0
- package/dist/control-plane/worklist-terminal-feedback.d.ts +1 -0
- package/dist/control-plane/worklist-terminal-feedback.js +109 -0
- package/dist/run-pipeline/openai.js +6 -0
- package/dist/run-pipeline/promotion-reconcile.d.ts +2 -2
- package/dist/run-pipeline/promotion-reconcile.js +3 -0
- package/dist/run-pipeline/result-projections.d.ts +1 -0
- package/dist/run-pipeline/result-projections.js +3 -0
- package/dist/run-pipeline/task-run-output.d.ts +9 -3
- package/dist/run-pipeline/task-run-output.js +24 -4
- package/dist/server-shell/cli/cli.js +3 -22
- package/dist/server-shell/cli/machine-local.d.ts +4 -0
- package/dist/server-shell/cli/machine-local.js +15 -1
- package/dist/server-shell/cli/project-resolver.d.ts +8 -0
- package/dist/server-shell/cli/project-resolver.js +67 -5
- package/dist/server-shell/cli/provider-tui.d.ts +12 -0
- package/dist/server-shell/cli/provider-tui.js +15 -20
- package/dist/server-shell/cli/runtime-commands.d.ts +10 -1
- package/dist/server-shell/cli/runtime-commands.js +45 -7
- package/dist/server-shell/http/routes/project-api/openapi-execution-routes.d.ts +1 -0
- package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.d.ts +2 -0
- package/dist/server-shell/http/routes/project-api/openapi.d.ts +1 -0
- package/dist/server-shell/http/routes/project-api/reference-files.js +9 -3
- package/dist/workspace-ops/constants.d.ts +1 -0
- package/dist/workspace-ops/constants.js +1 -0
- package/dist/workspace-ops/index.d.ts +2 -2
- package/dist/workspace-ops/index.js +2 -2
- package/dist/workspace-ops/reference-metadata.d.ts +2 -0
- package/dist/workspace-ops/reference-metadata.js +26 -1
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +9 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +1 -1
- package/node_modules/@tutti/shared/dist/schemas/api/index.js +1 -1
- package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +52 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.js +10 -0
- package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.d.ts +1 -0
- package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +2 -1
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +14 -0
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.d.ts +3 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.js +2 -0
- package/package.json +1 -1
- package/prompts/prompt-flow-map.md +2 -2
- package/prompts/runs/README.md +2 -1
- package/prompts/runs/task-continuation.md +8 -2
- package/prompts/runs/task-retry.md +8 -2
- package/prompts/runs/task-run.md +8 -2
- package/web/assets/index-4JInvPEN.js +29 -0
- package/web/assets/index-P5uZBm0s.css +1 -0
- package/web/index.html +2 -2
- package/web/assets/index-DoZOFmIq.js +0 -29
- package/web/assets/index-mXkNKFjm.css +0 -1
|
@@ -70,28 +70,50 @@ function resolveSingleTargetMatch(target, matches) {
|
|
|
70
70
|
throw new LaunchError("project_target_not_found", `Project target was not found: ${target}`, "Run `tutti ps` to list known projects, or pass a project workspace path.");
|
|
71
71
|
}
|
|
72
72
|
function resolveProjectTargetWorkspaceRoot(options) {
|
|
73
|
+
return resolveProjectTargetEntry(options).workspace_root;
|
|
74
|
+
}
|
|
75
|
+
function resolveProjectTargetEntry(options) {
|
|
73
76
|
const target = options.target.trim();
|
|
74
77
|
if (target === "") {
|
|
75
|
-
return resolve(options.cwd, ".");
|
|
78
|
+
return readProjectTargetEntryFromWorkspace(resolve(options.cwd, "."));
|
|
76
79
|
}
|
|
77
80
|
const pathCandidate = resolve(options.cwd, target);
|
|
78
81
|
if (existsSync(pathCandidate)) {
|
|
79
|
-
return pathCandidate;
|
|
82
|
+
return readProjectTargetEntryFromWorkspace(pathCandidate);
|
|
80
83
|
}
|
|
81
84
|
const entries = listProjectTargetEntries(options.tuttiHome);
|
|
85
|
+
const pathMatches = entries.filter((entry) => resolve(entry.workspace_root) === pathCandidate);
|
|
86
|
+
if (pathMatches.length > 0) {
|
|
87
|
+
return resolveSingleTargetMatch(target, pathMatches);
|
|
88
|
+
}
|
|
82
89
|
const exactId = entries.filter((entry) => entry.project_id === target);
|
|
83
90
|
if (exactId.length > 0) {
|
|
84
|
-
return resolveSingleTargetMatch(target, exactId)
|
|
91
|
+
return resolveSingleTargetMatch(target, exactId);
|
|
85
92
|
}
|
|
86
93
|
if (target.startsWith(ID_PREFIXES.project)) {
|
|
87
94
|
const idPrefix = entries.filter((entry) => entry.project_id.startsWith(target));
|
|
88
95
|
if (idPrefix.length > 0) {
|
|
89
|
-
return resolveSingleTargetMatch(target, idPrefix)
|
|
96
|
+
return resolveSingleTargetMatch(target, idPrefix);
|
|
90
97
|
}
|
|
91
98
|
}
|
|
92
99
|
const normalizedTarget = normalizeTargetName(target);
|
|
93
100
|
const nameMatches = entries.filter((entry) => entry.aliases.some((alias) => normalizeTargetName(alias) === normalizedTarget));
|
|
94
|
-
return resolveSingleTargetMatch(target, nameMatches)
|
|
101
|
+
return resolveSingleTargetMatch(target, nameMatches);
|
|
102
|
+
}
|
|
103
|
+
function readProjectTargetEntryFromWorkspace(workspaceRoot) {
|
|
104
|
+
assertSafeProjectRoot(workspaceRoot);
|
|
105
|
+
const identity = readProjectIdentity(workspaceRoot);
|
|
106
|
+
if (identity.kind !== "present") {
|
|
107
|
+
throw new LaunchError("project_identity_conflict", "Current directory is not a Tutti project", "Run `tutti launch` from a project root first.");
|
|
108
|
+
}
|
|
109
|
+
const workspaceName = basename(workspaceRoot) || identity.project_id;
|
|
110
|
+
const displayName = readProjectDisplayName(workspaceRoot) ?? workspaceName;
|
|
111
|
+
return {
|
|
112
|
+
project_id: identity.project_id,
|
|
113
|
+
workspace_root: workspaceRoot,
|
|
114
|
+
display_name: displayName,
|
|
115
|
+
aliases: Array.from(new Set([displayName, workspaceName].filter((alias) => alias.trim() !== ""))),
|
|
116
|
+
};
|
|
95
117
|
}
|
|
96
118
|
export function resolveLaunchWorkspacePath(options) {
|
|
97
119
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -154,4 +176,44 @@ export function resolveExistingProjectContext(options) {
|
|
|
154
176
|
: {}),
|
|
155
177
|
};
|
|
156
178
|
}
|
|
179
|
+
export function resolveManagedProjectContext(options) {
|
|
180
|
+
const cwd = options.cwd ?? process.cwd();
|
|
181
|
+
const env = options.env ?? process.env;
|
|
182
|
+
const tuttiHome = resolveTuttiHome(env.TUTTI_HOME, cwd);
|
|
183
|
+
if (options.target === undefined || existsSync(resolve(cwd, options.target))) {
|
|
184
|
+
const existing = resolveExistingProjectContext({
|
|
185
|
+
...(options.target === undefined ? {} : { target: options.target }),
|
|
186
|
+
cwd,
|
|
187
|
+
env,
|
|
188
|
+
});
|
|
189
|
+
return {
|
|
190
|
+
...existing,
|
|
191
|
+
workspace_exists: true,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
const entry = resolveProjectTargetEntry({
|
|
195
|
+
target: options.target,
|
|
196
|
+
cwd,
|
|
197
|
+
tuttiHome,
|
|
198
|
+
});
|
|
199
|
+
const binding = readBinding(tuttiHome, entry.project_id);
|
|
200
|
+
const runtimeEndpoint = readRuntimeEndpoint(tuttiHome, entry.project_id);
|
|
201
|
+
const projectConfig = readProjectOpenAiProviderConfig(tuttiHome, entry.project_id);
|
|
202
|
+
return {
|
|
203
|
+
workspace_root: entry.workspace_root,
|
|
204
|
+
workspace_exists: existsSync(entry.workspace_root),
|
|
205
|
+
tutti_home: tuttiHome,
|
|
206
|
+
project_id: entry.project_id,
|
|
207
|
+
display_name: entry.display_name,
|
|
208
|
+
binding,
|
|
209
|
+
runtime_endpoint: runtimeEndpoint,
|
|
210
|
+
provider_config: readOpenAiProviderConfigProjection({
|
|
211
|
+
tuttiHome,
|
|
212
|
+
projectId: entry.project_id,
|
|
213
|
+
}),
|
|
214
|
+
...(projectConfig.kind === "ok" && projectConfig.config.api_base_url !== undefined
|
|
215
|
+
? { provider_base_url: projectConfig.config.api_base_url }
|
|
216
|
+
: {}),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
157
219
|
//# sourceMappingURL=project-resolver.js.map
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type ConfigureProjectOpenAiProviderResult } from "../../providers/openai/index.js";
|
|
2
2
|
import type { ProjectId } from "@tutti/shared/ids";
|
|
3
|
+
type ProviderSetupStep = "base-url" | "api-key";
|
|
4
|
+
type ProviderFormState = {
|
|
5
|
+
step: ProviderSetupStep;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
apiKey: string;
|
|
8
|
+
error: string | undefined;
|
|
9
|
+
};
|
|
3
10
|
type ProviderSetupLogEvent = {
|
|
4
11
|
ts: string;
|
|
5
12
|
level: "error";
|
|
@@ -17,6 +24,11 @@ export type ProviderSetupResult = {
|
|
|
17
24
|
default_model: string;
|
|
18
25
|
validated_at: string;
|
|
19
26
|
};
|
|
27
|
+
export declare function renderProviderForm(options: {
|
|
28
|
+
state: ProviderFormState;
|
|
29
|
+
footer?: string;
|
|
30
|
+
tty?: boolean;
|
|
31
|
+
}): string;
|
|
20
32
|
export declare function providerValidationFailureMessage(result: ConfigureProjectOpenAiProviderResult): string;
|
|
21
33
|
export declare function writeProviderSetupValidationLog(options: {
|
|
22
34
|
tuttiHome: string;
|
|
@@ -9,54 +9,51 @@ const SHOW_CURSOR = "\u001B[?25h";
|
|
|
9
9
|
const BLINK_ON = "\u001B[5m";
|
|
10
10
|
const BLINK_OFF = "\u001B[25m";
|
|
11
11
|
const CLEAR = "\u001B[2J\u001B[H";
|
|
12
|
-
const
|
|
12
|
+
const FIELD_UNDERLINE = "------------------------------------------------------------";
|
|
13
13
|
function providerSetupCancelled() {
|
|
14
14
|
return new LaunchError("provider_setup_cancelled", "Provider setup cancelled.", "Run the command again when you are ready.");
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function renderFieldInput(options) {
|
|
17
17
|
const value = options.secret && options.value.length > 0 ? "*".repeat(options.value.length) : options.value;
|
|
18
|
-
return
|
|
18
|
+
return [options.label, `${value}${BLINK_ON}_${BLINK_OFF}`, FIELD_UNDERLINE];
|
|
19
19
|
}
|
|
20
20
|
function renderProviderField(state) {
|
|
21
21
|
if (state.step === "base-url") {
|
|
22
22
|
return [
|
|
23
|
-
"Step 1
|
|
24
|
-
"
|
|
23
|
+
"Step 1/2 Base URL",
|
|
24
|
+
"OpenAI-compatible Responses API base URL; must expose POST /responses.",
|
|
25
25
|
"",
|
|
26
|
-
|
|
26
|
+
...renderFieldInput({
|
|
27
27
|
label: "Base URL",
|
|
28
28
|
value: state.baseUrl,
|
|
29
29
|
}),
|
|
30
30
|
"",
|
|
31
|
-
"[Enter]
|
|
31
|
+
"[Enter] Continue [Esc] Cancel",
|
|
32
32
|
];
|
|
33
33
|
}
|
|
34
34
|
return [
|
|
35
|
-
"Step 2
|
|
36
|
-
"
|
|
35
|
+
"Step 2/2 API Key",
|
|
36
|
+
"Stored only in the machine-local Tutti credential store.",
|
|
37
37
|
"",
|
|
38
|
-
|
|
38
|
+
...renderFieldInput({
|
|
39
39
|
label: "API Key",
|
|
40
40
|
value: state.apiKey,
|
|
41
41
|
secret: true,
|
|
42
42
|
}),
|
|
43
43
|
"",
|
|
44
44
|
state.error === undefined
|
|
45
|
-
? "[Enter]
|
|
46
|
-
: "[Enter]
|
|
45
|
+
? "[Enter] Validate [Esc] Back to Base URL"
|
|
46
|
+
: "[Enter] Retry [Esc] Back to Base URL",
|
|
47
47
|
];
|
|
48
48
|
}
|
|
49
|
-
function renderProviderForm(options) {
|
|
49
|
+
export function renderProviderForm(options) {
|
|
50
50
|
const lines = [
|
|
51
51
|
CLEAR,
|
|
52
52
|
HIDE_CURSOR,
|
|
53
53
|
renderTuttiTerminalLogo({ tty: options.tty === true }),
|
|
54
54
|
"",
|
|
55
55
|
"Provider setup",
|
|
56
|
-
|
|
57
|
-
"Tutti uses an OpenAI-compatible Responses API provider.",
|
|
58
|
-
"The base URL should expose POST /responses under the entered URL.",
|
|
59
|
-
DIVIDER,
|
|
56
|
+
"Connect a provider compatible with OpenAI's Responses API.",
|
|
60
57
|
"",
|
|
61
58
|
...renderProviderField(options.state),
|
|
62
59
|
"",
|
|
@@ -209,9 +206,7 @@ function renderChecking(frame, tty) {
|
|
|
209
206
|
renderTuttiTerminalLogo({ tty }),
|
|
210
207
|
"",
|
|
211
208
|
"Provider setup",
|
|
212
|
-
|
|
213
|
-
"Validating the provider with the configured Responses API endpoint.",
|
|
214
|
-
DIVIDER,
|
|
209
|
+
"Validating the configured Responses API endpoint.",
|
|
215
210
|
"",
|
|
216
211
|
`${indicator} Checking provider connection with ${DEFAULT_OPENAI_MODEL}...`,
|
|
217
212
|
].join("\n");
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ProjectId } from "@tutti/shared/ids";
|
|
2
2
|
import { type FetchLike } from "./host-runtime-endpoint.js";
|
|
3
3
|
import { type MachineRuntimeEndpointRecord } from "./machine-local.js";
|
|
4
|
+
import type { LocalControlFetch } from "./local-control-client.js";
|
|
4
5
|
export type RuntimeProjectRow = {
|
|
5
6
|
project_id: ProjectId;
|
|
6
7
|
status: "online" | "stale";
|
|
@@ -22,10 +23,18 @@ export declare function runPsManageCommand(options?: {
|
|
|
22
23
|
stdin?: NodeJS.ReadStream;
|
|
23
24
|
stdout?: NodeJS.WriteStream;
|
|
24
25
|
}): Promise<void>;
|
|
25
|
-
export declare function runStopCommand(target?: string
|
|
26
|
+
export declare function runStopCommand(target?: string, options?: {
|
|
27
|
+
cwd?: string;
|
|
28
|
+
env?: NodeJS.ProcessEnv;
|
|
29
|
+
fetchImpl?: LocalControlFetch;
|
|
30
|
+
}): Promise<string>;
|
|
26
31
|
export declare function runInviteCommand(target?: string): Promise<string>;
|
|
27
32
|
export declare function runProviderStatusCommand(target?: string): string;
|
|
28
33
|
export declare function runLogsCommand(target?: string, tailLines?: number): string;
|
|
34
|
+
export declare function runDoctorCommand(target?: string, options?: {
|
|
35
|
+
cwd?: string;
|
|
36
|
+
env?: NodeJS.ProcessEnv;
|
|
37
|
+
}): string;
|
|
29
38
|
export declare function readRuntimeEndpointForProject(tuttiHome: string, projectId: ProjectId): MachineRuntimeEndpointRecord | null;
|
|
30
39
|
export declare function runtimeEndpointPathForProject(tuttiHome: string, projectId: ProjectId): string;
|
|
31
40
|
export declare function projectLocalStoreRoot(tuttiHome: string, projectId: ProjectId): string;
|
|
@@ -4,16 +4,19 @@ import { emitKeypressEvents } from "node:readline";
|
|
|
4
4
|
import { ID_PREFIXES, isPrefixedId } from "@tutti/shared/ids";
|
|
5
5
|
import { redactText } from "@tutti/shared/utils";
|
|
6
6
|
import { createRuntimeEndpointProbe } from "./host-runtime-endpoint.js";
|
|
7
|
-
import { getHostLogFilePath, getMachineRuntimeEndpointPath, getProjectLocalStoreRoot, readMachineProjectBinding, readMachineRuntimeEndpoint, } from "./machine-local.js";
|
|
7
|
+
import { deleteMachineProjectLocalState, getHostLogFilePath, getMachineRuntimeEndpointPath, getProjectLocalStoreRoot, readMachineProjectBinding, readMachineRuntimeEndpoint, } from "./machine-local.js";
|
|
8
8
|
import { readHostLocalLaunchStatus, readHostLocalProject, readHostLocalProviderConfig, requestHostLocalShutdown, rotateHostLocalInvite, } from "./local-control-client.js";
|
|
9
9
|
import { formatCliErrorReason, LaunchError } from "./errors.js";
|
|
10
|
-
import {
|
|
10
|
+
import { resolveManagedProjectContext } from "./project-resolver.js";
|
|
11
11
|
import { formatJoinLinkValidity, renderTerminalQr } from "./terminal-qr.js";
|
|
12
12
|
import { resolveTuttiHome } from "../../providers/openai/index.js";
|
|
13
|
+
import { readCliVersion } from "./version.js";
|
|
13
14
|
const PROJECT_ID_DISPLAY_MIN_LENGTH = 12;
|
|
14
|
-
function resolveProject(target) {
|
|
15
|
-
return
|
|
15
|
+
function resolveProject(target, options = {}) {
|
|
16
|
+
return resolveManagedProjectContext({
|
|
16
17
|
...(target === undefined ? {} : { target }),
|
|
18
|
+
...(options.cwd === undefined ? {} : { cwd: options.cwd }),
|
|
19
|
+
...(options.env === undefined ? {} : { env: options.env }),
|
|
17
20
|
});
|
|
18
21
|
}
|
|
19
22
|
function projectIdsFromTuttiHome(tuttiHome) {
|
|
@@ -271,18 +274,35 @@ export async function runPsManageCommand(options = {}) {
|
|
|
271
274
|
stdout.write(SHOW_CURSOR);
|
|
272
275
|
}
|
|
273
276
|
}
|
|
274
|
-
export async function runStopCommand(target) {
|
|
275
|
-
const project = resolveProject(target);
|
|
277
|
+
export async function runStopCommand(target, options = {}) {
|
|
278
|
+
const project = resolveProject(target, options);
|
|
276
279
|
const endpoint = project.runtime_endpoint;
|
|
277
280
|
if (endpoint === null) {
|
|
281
|
+
if (!project.workspace_exists) {
|
|
282
|
+
deleteMachineProjectLocalState({
|
|
283
|
+
tuttiHome: project.tutti_home,
|
|
284
|
+
projectId: project.project_id,
|
|
285
|
+
});
|
|
286
|
+
return `Deleted ${project.display_name}; the workspace no longer exists.`;
|
|
287
|
+
}
|
|
278
288
|
return "Tutti host is not running for this project.";
|
|
279
289
|
}
|
|
280
290
|
try {
|
|
281
|
-
await requestHostLocalShutdown({
|
|
291
|
+
await requestHostLocalShutdown({
|
|
292
|
+
endpoint,
|
|
293
|
+
...(options.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
|
|
294
|
+
});
|
|
282
295
|
}
|
|
283
296
|
catch (error) {
|
|
284
297
|
throw new LaunchError("existing_server_unhealthy", `Could not stop the host: ${formatCliErrorReason(error)}`, "Run `tutti ps` to inspect the runtime state, or stop the host process manually.");
|
|
285
298
|
}
|
|
299
|
+
if (!project.workspace_exists) {
|
|
300
|
+
deleteMachineProjectLocalState({
|
|
301
|
+
tuttiHome: project.tutti_home,
|
|
302
|
+
projectId: project.project_id,
|
|
303
|
+
});
|
|
304
|
+
return `Stopped and deleted ${project.display_name}; the workspace no longer exists.`;
|
|
305
|
+
}
|
|
286
306
|
return `Stopped ${project.display_name}.`;
|
|
287
307
|
}
|
|
288
308
|
export async function runInviteCommand(target) {
|
|
@@ -339,6 +359,24 @@ export function runLogsCommand(target, tailLines = 120) {
|
|
|
339
359
|
const lines = readFileSync(logPath, "utf8").split(/\r?\n/u).filter(Boolean).slice(-tailLines);
|
|
340
360
|
return lines.length === 0 ? "Host log is empty." : lines.join("\n");
|
|
341
361
|
}
|
|
362
|
+
export function runDoctorCommand(target, options = {}) {
|
|
363
|
+
const checks = [];
|
|
364
|
+
checks.push(`Node: ${process.version}`);
|
|
365
|
+
checks.push(`Tutti: ${readCliVersion()}`);
|
|
366
|
+
try {
|
|
367
|
+
const project = resolveProject(target, options);
|
|
368
|
+
checks.push(`Project: ${project.display_name}`);
|
|
369
|
+
checks.push(`Project ID: ${project.project_id}`);
|
|
370
|
+
checks.push(`Workspace: ${project.workspace_exists ? redactText(project.workspace_root) : "missing"}`);
|
|
371
|
+
checks.push(`Provider: ${project.provider_config.status}`);
|
|
372
|
+
checks.push(`Host: ${project.runtime_endpoint === null ? "not running" : project.runtime_endpoint.base_url}`);
|
|
373
|
+
}
|
|
374
|
+
catch (error) {
|
|
375
|
+
checks.push("Project: unavailable");
|
|
376
|
+
checks.push(`Project detail: ${formatCliErrorReason(error)}`);
|
|
377
|
+
}
|
|
378
|
+
return checks.join("\n");
|
|
379
|
+
}
|
|
342
380
|
export function readRuntimeEndpointForProject(tuttiHome, projectId) {
|
|
343
381
|
return readEndpointFile(tuttiHome, projectId);
|
|
344
382
|
}
|
|
@@ -78,6 +78,7 @@ export declare const HOST_PROJECT_EXECUTION_OPENAPI_ROUTES: ({
|
|
|
78
78
|
finished_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
79
79
|
}>>>;
|
|
80
80
|
changed_paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
81
|
+
user_note_candidate: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
81
82
|
promotion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
82
83
|
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"promoted">, import("@sinclair/typebox").TLiteral<"not_promoted">, import("@sinclair/typebox").TLiteral<"not_attempted">]>;
|
|
83
84
|
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -283,12 +283,14 @@ export declare const HOST_PROJECT_VIEWER_OPENAPI_ROUTES: ({
|
|
|
283
283
|
index_path: import("@sinclair/typebox").TLiteral<"docs/reference/README.md">;
|
|
284
284
|
files_path: import("@sinclair/typebox").TLiteral<"docs/reference/files">;
|
|
285
285
|
images_path: import("@sinclair/typebox").TLiteral<"docs/reference/images">;
|
|
286
|
+
tutti_path: import("@sinclair/typebox").TLiteral<"docs/reference/tutti">;
|
|
286
287
|
index_status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"available">, import("@sinclair/typebox").TLiteral<"missing">, import("@sinclair/typebox").TLiteral<"unreadable">]>;
|
|
287
288
|
index_unreadable_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"restricted_path">, import("@sinclair/typebox").TLiteral<"secret_like">, import("@sinclair/typebox").TLiteral<"binary">, import("@sinclair/typebox").TLiteral<"unsupported_encoding">, import("@sinclair/typebox").TLiteral<"too_large">]>>;
|
|
288
289
|
}>;
|
|
289
290
|
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
290
291
|
path: import("@sinclair/typebox").TString;
|
|
291
292
|
name: import("@sinclair/typebox").TString;
|
|
293
|
+
source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"human_upload">, import("@sinclair/typebox").TLiteral<"tutti_output">]>;
|
|
292
294
|
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"file">, import("@sinclair/typebox").TLiteral<"image">]>;
|
|
293
295
|
size_bytes: import("@sinclair/typebox").TInteger;
|
|
294
296
|
media_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -701,6 +701,7 @@ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
|
|
|
701
701
|
finished_at: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
702
702
|
}>>>;
|
|
703
703
|
changed_paths: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
704
|
+
user_note_candidate: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
704
705
|
promotion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
705
706
|
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"promoted">, import("@sinclair/typebox").TLiteral<"not_promoted">, import("@sinclair/typebox").TLiteral<"not_attempted">]>;
|
|
706
707
|
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, VIEWER_HARD_READ_LIMIT_BYTES, WorkspaceOpsError, readViewerFile, readViewerSnapshot, readViewerTree, readReferenceSummaryIndex, referenceFileCategoryForPath, referenceMediaTypeForPath, referenceSummaryProjectionForEntry, } from "../../../../workspace-ops/index.js";
|
|
1
|
+
import { REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, REFERENCE_TUTTI_DIRECTORY_PATH, VIEWER_HARD_READ_LIMIT_BYTES, WorkspaceOpsError, readViewerFile, readViewerSnapshot, readViewerTree, readReferenceSummaryIndex, referenceFileCategoryForPath, referenceFileSourceForPath, referenceMediaTypeForPath, referenceSummaryProjectionForEntry, } from "../../../../workspace-ops/index.js";
|
|
2
2
|
import { paginateViewerItems, viewerPageLimit } from "./viewer-projections.js";
|
|
3
3
|
function unreadableReasonForReferenceContent(content) {
|
|
4
4
|
if (content.kind === "text") {
|
|
@@ -34,6 +34,7 @@ export function toReferenceFileProjection(options) {
|
|
|
34
34
|
path: options.entry.path,
|
|
35
35
|
name: options.entry.name,
|
|
36
36
|
category,
|
|
37
|
+
source: referenceFileSourceForPath(options.entry.path) ?? "human_upload",
|
|
37
38
|
size_bytes: options.entry.size_bytes ?? 0,
|
|
38
39
|
text_read: referenceTextReadProjection(options.workspaceRoot, options.entry, options.now),
|
|
39
40
|
summary: referenceSummaryProjectionForEntry({
|
|
@@ -64,6 +65,7 @@ function referenceDirectoryProjection(options) {
|
|
|
64
65
|
index_path: REFERENCE_INDEX_PATH,
|
|
65
66
|
files_path: REFERENCE_FILES_DIRECTORY_PATH,
|
|
66
67
|
images_path: REFERENCE_IMAGES_DIRECTORY_PATH,
|
|
68
|
+
tutti_path: REFERENCE_TUTTI_DIRECTORY_PATH,
|
|
67
69
|
index_status: "missing",
|
|
68
70
|
};
|
|
69
71
|
}
|
|
@@ -80,6 +82,7 @@ function referenceDirectoryProjection(options) {
|
|
|
80
82
|
index_path: REFERENCE_INDEX_PATH,
|
|
81
83
|
files_path: REFERENCE_FILES_DIRECTORY_PATH,
|
|
82
84
|
images_path: REFERENCE_IMAGES_DIRECTORY_PATH,
|
|
85
|
+
tutti_path: REFERENCE_TUTTI_DIRECTORY_PATH,
|
|
83
86
|
index_status: "available",
|
|
84
87
|
};
|
|
85
88
|
}
|
|
@@ -89,6 +92,7 @@ function referenceDirectoryProjection(options) {
|
|
|
89
92
|
index_path: REFERENCE_INDEX_PATH,
|
|
90
93
|
files_path: REFERENCE_FILES_DIRECTORY_PATH,
|
|
91
94
|
images_path: REFERENCE_IMAGES_DIRECTORY_PATH,
|
|
95
|
+
tutti_path: REFERENCE_TUTTI_DIRECTORY_PATH,
|
|
92
96
|
index_status: "unreadable",
|
|
93
97
|
index_unreadable_reason: file.content.reason,
|
|
94
98
|
};
|
|
@@ -101,6 +105,7 @@ function referenceDirectoryProjection(options) {
|
|
|
101
105
|
index_path: REFERENCE_INDEX_PATH,
|
|
102
106
|
files_path: REFERENCE_FILES_DIRECTORY_PATH,
|
|
103
107
|
images_path: REFERENCE_IMAGES_DIRECTORY_PATH,
|
|
108
|
+
tutti_path: REFERENCE_TUTTI_DIRECTORY_PATH,
|
|
104
109
|
index_status: "missing",
|
|
105
110
|
};
|
|
106
111
|
}
|
|
@@ -119,7 +124,7 @@ export function readReferenceFilesResponse(options, query) {
|
|
|
119
124
|
tree = readViewerTree({
|
|
120
125
|
workspaceRoot,
|
|
121
126
|
path: REFERENCE_DIRECTORY_PATH,
|
|
122
|
-
depth:
|
|
127
|
+
depth: 3,
|
|
123
128
|
...(now === undefined ? {} : { now }),
|
|
124
129
|
});
|
|
125
130
|
}
|
|
@@ -147,7 +152,7 @@ export function readReferenceFilesResponse(options, query) {
|
|
|
147
152
|
.filter((entry) => entry.kind === "file")
|
|
148
153
|
.filter((entry) => includeIndex || entry.path !== REFERENCE_INDEX_PATH)
|
|
149
154
|
.filter((entry) => entry.path === REFERENCE_INDEX_PATH ||
|
|
150
|
-
|
|
155
|
+
referenceFileSourceForPath(entry.path) !== undefined)
|
|
151
156
|
.sort((left, right) => {
|
|
152
157
|
const leftCategory = referenceFileCategoryForPath(left.path) ?? "file";
|
|
153
158
|
const rightCategory = referenceFileCategoryForPath(right.path) ?? "file";
|
|
@@ -197,6 +202,7 @@ export function referenceFileMessageRef(file) {
|
|
|
197
202
|
const ref = {
|
|
198
203
|
path: file.path,
|
|
199
204
|
name: file.name,
|
|
205
|
+
source: file.source,
|
|
200
206
|
category: file.category,
|
|
201
207
|
size_bytes: file.size_bytes,
|
|
202
208
|
text_read: file.text_read,
|
|
@@ -5,6 +5,7 @@ export declare const VIEWER_HARD_READ_LIMIT_BYTES: number;
|
|
|
5
5
|
export declare const REFERENCE_DIRECTORY_PATH: "docs/reference";
|
|
6
6
|
export declare const REFERENCE_FILES_DIRECTORY_PATH: "docs/reference/files";
|
|
7
7
|
export declare const REFERENCE_IMAGES_DIRECTORY_PATH: "docs/reference/images";
|
|
8
|
+
export declare const REFERENCE_TUTTI_DIRECTORY_PATH: "docs/reference/tutti";
|
|
8
9
|
export declare const REFERENCE_INDEX_PATH: "docs/reference/README.md";
|
|
9
10
|
export declare const MAX_REFERENCE_UPLOAD_BYTES: number;
|
|
10
11
|
export declare const VIEWER_ASSET_READ_LIMIT_BYTES: number;
|
|
@@ -5,6 +5,7 @@ export const VIEWER_HARD_READ_LIMIT_BYTES = 5 * 1024 * 1024;
|
|
|
5
5
|
export const REFERENCE_DIRECTORY_PATH = "docs/reference";
|
|
6
6
|
export const REFERENCE_FILES_DIRECTORY_PATH = "docs/reference/files";
|
|
7
7
|
export const REFERENCE_IMAGES_DIRECTORY_PATH = "docs/reference/images";
|
|
8
|
+
export const REFERENCE_TUTTI_DIRECTORY_PATH = "docs/reference/tutti";
|
|
8
9
|
export const REFERENCE_INDEX_PATH = "docs/reference/README.md";
|
|
9
10
|
export const MAX_REFERENCE_UPLOAD_BYTES = 10 * 1024 * 1024;
|
|
10
11
|
export const VIEWER_ASSET_READ_LIMIT_BYTES = MAX_REFERENCE_UPLOAD_BYTES;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { DEFAULT_VIEWER_MAX_BYTES, MAX_REFERENCE_UPLOAD_BYTES, MAX_VIEWER_MAX_BYTES, PROJECT_DOC_PATHS, REFERENCE_IMAGE_ASSET_CACHE_VERSION, REFERENCE_IMAGE_PREVIEW_MAX_EDGE_PX, REFERENCE_IMAGE_THUMBNAIL_MAX_EDGE_PX, REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, VIEWER_ASSET_READ_LIMIT_BYTES, VIEWER_HARD_READ_LIMIT_BYTES, WORKSPACE_OPS_MAINLINE_BRANCH, } from "./constants.js";
|
|
1
|
+
export { DEFAULT_VIEWER_MAX_BYTES, MAX_REFERENCE_UPLOAD_BYTES, MAX_VIEWER_MAX_BYTES, PROJECT_DOC_PATHS, REFERENCE_IMAGE_ASSET_CACHE_VERSION, REFERENCE_IMAGE_PREVIEW_MAX_EDGE_PX, REFERENCE_IMAGE_THUMBNAIL_MAX_EDGE_PX, REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, REFERENCE_TUTTI_DIRECTORY_PATH, VIEWER_ASSET_READ_LIMIT_BYTES, VIEWER_HARD_READ_LIMIT_BYTES, WORKSPACE_OPS_MAINLINE_BRANCH, } from "./constants.js";
|
|
2
2
|
export { WorkspaceOpsError } from "./errors.js";
|
|
3
3
|
export { initializeProjectDocs, readProjectDocsInitializationStatus, syncProjectDocs, } from "./project-docs.js";
|
|
4
4
|
export { uploadReferenceFile } from "./reference-files.js";
|
|
5
|
-
export { referenceFileCategoryForPath, referenceMediaTypeForPath } from "./reference-metadata.js";
|
|
5
|
+
export { referenceFileCategoryForPath, referenceFileSourceForPath, referenceMediaTypeForPath, referenceTuttiGroupForPath, } from "./reference-metadata.js";
|
|
6
6
|
export { readReferenceSummaryIndex, readReferenceSummaryTargets, referenceSummaryProjectionForEntry, updateReferenceSummaries, } from "./reference-summaries.js";
|
|
7
7
|
export { applyRunResultToMergeWorkspace, cleanupMergeWorkspace, cleanupRunWorkspace, cleanupStaleRunWorkspaces, collectMergeDiff, collectRunDiff, createMergeCandidateCommit, createResultCommit, prepareMergeWorkspace, prepareRunWorkspace, promoteMergeCandidate, promoteRunResult, } from "./run-workspaces.js";
|
|
8
8
|
export { readViewerAsset, readViewerFile, readViewerSnapshot, readViewerTree } from "./viewer.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { DEFAULT_VIEWER_MAX_BYTES, MAX_REFERENCE_UPLOAD_BYTES, MAX_VIEWER_MAX_BYTES, PROJECT_DOC_PATHS, REFERENCE_IMAGE_ASSET_CACHE_VERSION, REFERENCE_IMAGE_PREVIEW_MAX_EDGE_PX, REFERENCE_IMAGE_THUMBNAIL_MAX_EDGE_PX, REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, VIEWER_ASSET_READ_LIMIT_BYTES, VIEWER_HARD_READ_LIMIT_BYTES, WORKSPACE_OPS_MAINLINE_BRANCH, } from "./constants.js";
|
|
1
|
+
export { DEFAULT_VIEWER_MAX_BYTES, MAX_REFERENCE_UPLOAD_BYTES, MAX_VIEWER_MAX_BYTES, PROJECT_DOC_PATHS, REFERENCE_IMAGE_ASSET_CACHE_VERSION, REFERENCE_IMAGE_PREVIEW_MAX_EDGE_PX, REFERENCE_IMAGE_THUMBNAIL_MAX_EDGE_PX, REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, REFERENCE_TUTTI_DIRECTORY_PATH, VIEWER_ASSET_READ_LIMIT_BYTES, VIEWER_HARD_READ_LIMIT_BYTES, WORKSPACE_OPS_MAINLINE_BRANCH, } from "./constants.js";
|
|
2
2
|
export { WorkspaceOpsError } from "./errors.js";
|
|
3
3
|
export { initializeProjectDocs, readProjectDocsInitializationStatus, syncProjectDocs, } from "./project-docs.js";
|
|
4
4
|
export { uploadReferenceFile } from "./reference-files.js";
|
|
5
|
-
export { referenceFileCategoryForPath, referenceMediaTypeForPath } from "./reference-metadata.js";
|
|
5
|
+
export { referenceFileCategoryForPath, referenceFileSourceForPath, referenceMediaTypeForPath, referenceTuttiGroupForPath, } from "./reference-metadata.js";
|
|
6
6
|
export { readReferenceSummaryIndex, readReferenceSummaryTargets, referenceSummaryProjectionForEntry, updateReferenceSummaries, } from "./reference-summaries.js";
|
|
7
7
|
export { applyRunResultToMergeWorkspace, cleanupMergeWorkspace, cleanupRunWorkspace, cleanupStaleRunWorkspaces, collectMergeDiff, collectRunDiff, createMergeCandidateCommit, createResultCommit, prepareMergeWorkspace, prepareRunWorkspace, promoteMergeCandidate, promoteRunResult, } from "./run-workspaces.js";
|
|
8
8
|
export { readViewerAsset, readViewerFile, readViewerSnapshot, readViewerTree } from "./viewer.js";
|
|
@@ -9,5 +9,7 @@ export declare function classifyReferenceUpload(options: {
|
|
|
9
9
|
directoryPath: string;
|
|
10
10
|
};
|
|
11
11
|
export declare function referenceFileCategoryForPath(path: string): ReferenceFileCategory | undefined;
|
|
12
|
+
export declare function referenceFileSourceForPath(path: string): "human_upload" | "tutti_output" | undefined;
|
|
13
|
+
export declare function referenceTuttiGroupForPath(path: string): string | undefined;
|
|
12
14
|
export declare function referenceMediaTypeForPath(path: string): string | undefined;
|
|
13
15
|
//# sourceMappingURL=reference-metadata.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { extname, posix } from "node:path";
|
|
2
|
-
import { REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, } from "./constants.js";
|
|
2
|
+
import { REFERENCE_DIRECTORY_PATH, REFERENCE_FILES_DIRECTORY_PATH, REFERENCE_IMAGES_DIRECTORY_PATH, REFERENCE_INDEX_PATH, REFERENCE_TUTTI_DIRECTORY_PATH, } from "./constants.js";
|
|
3
3
|
const REFERENCE_IMAGE_EXTENSIONS = new Set([".png", ".jpg", ".jpeg", ".webp", ".gif"]);
|
|
4
4
|
const REFERENCE_IMAGE_MEDIA_TYPES = new Set(["image/png", "image/jpeg", "image/webp", "image/gif"]);
|
|
5
5
|
function normalizeMediaType(mediaType) {
|
|
@@ -57,11 +57,36 @@ export function referenceFileCategoryForPath(path) {
|
|
|
57
57
|
if (path.startsWith(`${REFERENCE_FILES_DIRECTORY_PATH}/`)) {
|
|
58
58
|
return "file";
|
|
59
59
|
}
|
|
60
|
+
if (path.startsWith(`${REFERENCE_TUTTI_DIRECTORY_PATH}/`)) {
|
|
61
|
+
return "file";
|
|
62
|
+
}
|
|
60
63
|
if (posix.dirname(path) === REFERENCE_DIRECTORY_PATH && path !== REFERENCE_INDEX_PATH) {
|
|
61
64
|
return "file";
|
|
62
65
|
}
|
|
63
66
|
return undefined;
|
|
64
67
|
}
|
|
68
|
+
export function referenceFileSourceForPath(path) {
|
|
69
|
+
if (path.startsWith(`${REFERENCE_TUTTI_DIRECTORY_PATH}/`)) {
|
|
70
|
+
return "tutti_output";
|
|
71
|
+
}
|
|
72
|
+
if (path.startsWith(`${REFERENCE_FILES_DIRECTORY_PATH}/`) ||
|
|
73
|
+
path.startsWith(`${REFERENCE_IMAGES_DIRECTORY_PATH}/`) ||
|
|
74
|
+
(posix.dirname(path) === REFERENCE_DIRECTORY_PATH && path !== REFERENCE_INDEX_PATH)) {
|
|
75
|
+
return "human_upload";
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
export function referenceTuttiGroupForPath(path) {
|
|
80
|
+
if (!path.startsWith(`${REFERENCE_TUTTI_DIRECTORY_PATH}/`)) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const rest = path.slice(REFERENCE_TUTTI_DIRECTORY_PATH.length + 1);
|
|
84
|
+
const [first, second] = rest.split("/");
|
|
85
|
+
if (first === undefined || first.length === 0 || second === undefined) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return first;
|
|
89
|
+
}
|
|
65
90
|
export function referenceMediaTypeForPath(path) {
|
|
66
91
|
const extension = extname(path).toLowerCase();
|
|
67
92
|
switch (extension) {
|
|
@@ -516,6 +516,7 @@ export declare const SendClarificationRoundMessageResultSchema: import("@sinclai
|
|
|
516
516
|
reference_file: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
517
517
|
path: import("@sinclair/typebox").TString;
|
|
518
518
|
name: import("@sinclair/typebox").TString;
|
|
519
|
+
source: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"human_upload">, import("@sinclair/typebox").TLiteral<"tutti_output">]>;
|
|
519
520
|
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"file">, import("@sinclair/typebox").TLiteral<"image">]>;
|
|
520
521
|
blob_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
521
522
|
media_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -544,6 +545,14 @@ export declare const SendClarificationRoundMessageResultSchema: import("@sinclai
|
|
|
544
545
|
module_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
545
546
|
latest_run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
546
547
|
}>>;
|
|
548
|
+
final_note: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
549
|
+
generated_files: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
550
|
+
path: import("@sinclair/typebox").TString;
|
|
551
|
+
name: import("@sinclair/typebox").TString;
|
|
552
|
+
group: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
553
|
+
size_bytes: import("@sinclair/typebox").TInteger;
|
|
554
|
+
media_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
555
|
+
}>>>;
|
|
547
556
|
primary_task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
548
557
|
}>>;
|
|
549
558
|
}>>;
|
|
@@ -6,7 +6,7 @@ export { ProviderUsageBreakdownProjectionSchema, ProviderUsageCategorySchema, Pr
|
|
|
6
6
|
export { ProjectTimelineItemKindSchema, ProjectTimelineItemSchema, ProjectTimelineItemStatusSchema, ProjectTimelineResponseSchema, } from "./project-timeline.js";
|
|
7
7
|
export { MAX_REFERENCE_STAGED_UPLOAD_BYTES, MAX_SKILL_ZIP_STAGED_UPLOAD_BYTES, MAX_STAGED_UPLOAD_BYTES, PresignedUploadPutSchema, ReferenceFileStartRelayUploadPayloadSchema, ReferenceStagedUploadReferenceProperties, RelayUploadProjectionSchema, RelayUploadPurposeSchema, Sha256DigestSchema, SkillZipStartRelayUploadPayloadSchema, SkillZipStagedUploadReferenceProperties, StagedUploadReferenceProperties, StagedUploadReferenceSchema, StartRelayUploadBodySchema, StartRelayUploadDispositionSchema, StartRelayUploadPayloadSchema, StartRelayUploadResponseSchema, StartRelayUploadResultSchema, maxStagedUploadBytesForPurpose, } from "./uploads.js";
|
|
8
8
|
export { MarkReadBodySchema, MarkReadDispositionSchema, MarkReadPayloadSchema, MarkReadResponseSchema, MarkReadResultSchema, ReadStateScopeProjectionSchema, ReadStateScopeSchema, ReadStateSummaryProjectionSchema, } from "./read-state.js";
|
|
9
|
-
export { GetMessagesRequestSchema, MessageAuthorSchema, MessageCreatedEventPayloadSchema, MessageKindSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, MessageRefsSchema, MessageScopeSchema, MessageWindowSchema, ReferenceFileCategorySchema, SendMainChatMessageBodySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResponseSchema, SendMainChatMessageResultSchema, WorklistFeedbackItemSchema, WorklistFeedbackRefSchema, } from "./messages.js";
|
|
9
|
+
export { GetMessagesRequestSchema, MessageAuthorSchema, MessageCreatedEventPayloadSchema, MessageKindSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, MessageRefsSchema, MessageScopeSchema, MessageWindowSchema, ReferenceFileCategorySchema, SendMainChatMessageBodySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResponseSchema, SendMainChatMessageResultSchema, WorklistFeedbackItemSchema, WorklistFeedbackGeneratedFileSchema, WorklistFeedbackRefSchema, } from "./messages.js";
|
|
10
10
|
export { CheckSkipReasonCodeSchema, ExternalSideEffectSummaryProjectionSchema, GetRecoverySummariesRequestSchema, GetRecoverySummariesResponseSchema, GetRecoverySummaryResponseSchema, RecoverySummaryProjectionSchema, ResultAnchorSchema, RunLineageSchema, RunResultProjectionSchema, ScratchpadProjectionSchema, ScratchpadReceiptProjectionSchema, TaskContractProjectionSchema, TaskDetailProjectionSchema, TaskDetailResultProjectionSchema, TaskModuleProjectionSchema, TaskProjectionSchema, TaskRunResultsPageSchema, TaskStatusSchema, WorklistProjectionSchema, } from "./work-items.js";
|
|
11
11
|
export { ActiveApprovalProjectionSchema, ApprovalCommandProjectionSchema, ApprovalDecisionKindSchema, ApprovalDecisionOptionProjectionSchema, ApprovalDecisionToneSchema, ApprovalFileChangeProjectionSchema, ApprovalPermissionsProjectionSchema, ApprovalRequestKindSchema, ApprovalRequestProjectionSchema, ApprovalResolutionOutcomeSchema, ApprovalResolutionProjectionSchema, DecideApprovalBodySchema, DecideApprovalDispositionSchema, DecideApprovalPayloadSchema, DecideApprovalResponseSchema, DecideApprovalResultSchema, } from "./approvals.js";
|
|
12
12
|
export { ActiveClarificationProjectionSchema, ClarificationChangedEventPayloadSchema, ClarificationOwnerProjectionSchema, ClarificationRequestPayloadSchema, ClarificationRoundProjectionSchema, ClarificationRoundSummaryProjectionSchema, ClarificationSuccessorRefSchema, ClarificationThreadProjectionSchema, ContextRefSchema, GetClarificationRoundMessagesRequestSchema, GetClarificationRoundResponseSchema, GetClarificationThreadResponseSchema, HumanInteractionPayloadSchema, HumanRequestPayloadSchema, SendClarificationRoundMessageBodySchema, SendClarificationRoundMessageDispositionSchema, SendClarificationRoundMessagePayloadSchema, SendClarificationRoundMessageResponseSchema, SendClarificationRoundMessageResultSchema, SubmitClarificationRoundBodySchema, SubmitClarificationRoundDispositionSchema, SubmitClarificationRoundPayloadSchema, SubmitClarificationRoundResponseSchema, SubmitClarificationRoundResultSchema, } from "./clarifications.js";
|
|
@@ -5,7 +5,7 @@ export { ProviderUsageBreakdownProjectionSchema, ProviderUsageCategorySchema, Pr
|
|
|
5
5
|
export { ProjectTimelineItemKindSchema, ProjectTimelineItemSchema, ProjectTimelineItemStatusSchema, ProjectTimelineResponseSchema, } from "./project-timeline.js";
|
|
6
6
|
export { MAX_REFERENCE_STAGED_UPLOAD_BYTES, MAX_SKILL_ZIP_STAGED_UPLOAD_BYTES, MAX_STAGED_UPLOAD_BYTES, PresignedUploadPutSchema, ReferenceFileStartRelayUploadPayloadSchema, ReferenceStagedUploadReferenceProperties, RelayUploadProjectionSchema, RelayUploadPurposeSchema, Sha256DigestSchema, SkillZipStartRelayUploadPayloadSchema, SkillZipStagedUploadReferenceProperties, StagedUploadReferenceProperties, StagedUploadReferenceSchema, StartRelayUploadBodySchema, StartRelayUploadDispositionSchema, StartRelayUploadPayloadSchema, StartRelayUploadResponseSchema, StartRelayUploadResultSchema, maxStagedUploadBytesForPurpose, } from "./uploads.js";
|
|
7
7
|
export { MarkReadBodySchema, MarkReadDispositionSchema, MarkReadPayloadSchema, MarkReadResponseSchema, MarkReadResultSchema, ReadStateScopeProjectionSchema, ReadStateScopeSchema, ReadStateSummaryProjectionSchema, } from "./read-state.js";
|
|
8
|
-
export { GetMessagesRequestSchema, MessageAuthorSchema, MessageCreatedEventPayloadSchema, MessageKindSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, MessageRefsSchema, MessageScopeSchema, MessageWindowSchema, ReferenceFileCategorySchema, SendMainChatMessageBodySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResponseSchema, SendMainChatMessageResultSchema, WorklistFeedbackItemSchema, WorklistFeedbackRefSchema, } from "./messages.js";
|
|
8
|
+
export { GetMessagesRequestSchema, MessageAuthorSchema, MessageCreatedEventPayloadSchema, MessageKindSchema, MessageProjectionSchema, MessageReferenceFileRefSchema, MessageRefsSchema, MessageScopeSchema, MessageWindowSchema, ReferenceFileCategorySchema, SendMainChatMessageBodySchema, SendMainChatMessageCreatedDispositionSchema, SendMainChatMessageDispositionSchema, SendMainChatMessagePayloadSchema, SendMainChatMessageResponseSchema, SendMainChatMessageResultSchema, WorklistFeedbackItemSchema, WorklistFeedbackGeneratedFileSchema, WorklistFeedbackRefSchema, } from "./messages.js";
|
|
9
9
|
export { CheckSkipReasonCodeSchema, ExternalSideEffectSummaryProjectionSchema, GetRecoverySummariesRequestSchema, GetRecoverySummariesResponseSchema, GetRecoverySummaryResponseSchema, RecoverySummaryProjectionSchema, ResultAnchorSchema, RunLineageSchema, RunResultProjectionSchema, ScratchpadProjectionSchema, ScratchpadReceiptProjectionSchema, TaskContractProjectionSchema, TaskDetailProjectionSchema, TaskDetailResultProjectionSchema, TaskModuleProjectionSchema, TaskProjectionSchema, TaskRunResultsPageSchema, TaskStatusSchema, WorklistProjectionSchema, } from "./work-items.js";
|
|
10
10
|
export { ActiveApprovalProjectionSchema, ApprovalCommandProjectionSchema, ApprovalDecisionKindSchema, ApprovalDecisionOptionProjectionSchema, ApprovalDecisionToneSchema, ApprovalFileChangeProjectionSchema, ApprovalPermissionsProjectionSchema, ApprovalRequestKindSchema, ApprovalRequestProjectionSchema, ApprovalResolutionOutcomeSchema, ApprovalResolutionProjectionSchema, DecideApprovalBodySchema, DecideApprovalDispositionSchema, DecideApprovalPayloadSchema, DecideApprovalResponseSchema, DecideApprovalResultSchema, } from "./approvals.js";
|
|
11
11
|
export { ActiveClarificationProjectionSchema, ClarificationChangedEventPayloadSchema, ClarificationOwnerProjectionSchema, ClarificationRequestPayloadSchema, ClarificationRoundProjectionSchema, ClarificationRoundSummaryProjectionSchema, ClarificationSuccessorRefSchema, ClarificationThreadProjectionSchema, ContextRefSchema, GetClarificationRoundMessagesRequestSchema, GetClarificationRoundResponseSchema, GetClarificationThreadResponseSchema, HumanInteractionPayloadSchema, HumanRequestPayloadSchema, SendClarificationRoundMessageBodySchema, SendClarificationRoundMessageDispositionSchema, SendClarificationRoundMessagePayloadSchema, SendClarificationRoundMessageResponseSchema, SendClarificationRoundMessageResultSchema, SubmitClarificationRoundBodySchema, SubmitClarificationRoundDispositionSchema, SubmitClarificationRoundPayloadSchema, SubmitClarificationRoundResponseSchema, SubmitClarificationRoundResultSchema, } from "./clarifications.js";
|