@xfey/tutti 0.1.21 → 0.1.23
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/index.d.ts +1 -1
- package/dist/collaboration-state/index.js +1 -1
- package/dist/collaboration-state/messages.js +50 -1
- package/dist/collaboration-state/scratchpad.d.ts +2 -0
- package/dist/collaboration-state/scratchpad.js +63 -0
- package/dist/collaboration-state/storage-types.d.ts +5 -0
- package/dist/collaboration-state/types.d.ts +8 -1
- package/dist/control-plane/scratchpad-refresh-start.d.ts +2 -0
- package/dist/control-plane/scratchpad-refresh-start.js +10 -0
- package/dist/control-plane/scratchpad-refresh.d.ts +2 -0
- package/dist/control-plane/scratchpad-refresh.js +1 -0
- package/dist/project-timeline/index.d.ts +17 -3
- package/dist/server-shell/cli/host-lifecycle.js +2 -19
- package/dist/server-shell/cli/launch-command.d.ts +11 -0
- package/dist/server-shell/cli/launch-command.js +42 -6
- package/dist/server-shell/cli/terminal-qr.d.ts +3 -0
- package/dist/server-shell/cli/terminal-qr.js +17 -0
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +1 -0
- package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.d.ts +94 -5
- package/dist/server-shell/http/routes/project-api/openapi.d.ts +95 -5
- package/dist/server-shell/http/routes/project-api/payload-validation.d.ts +6 -2
- package/dist/server-shell/http/routes/project-api/payload-validation.js +3 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-projection.js +694 -502
- package/migrations/0013_scratchpad_receipt_sources.sql +24 -0
- package/migrations/README.md +3 -2
- 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 +1 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.js +1 -0
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.d.ts +313 -12
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.js +131 -14
- package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +5 -1
- package/package.json +1 -1
- package/web/assets/index-BfFYfzeO.js +29 -0
- package/web/assets/index-De6mK5Q2.css +1 -0
- package/web/index.html +2 -2
- package/web/assets/index-BtneECwp.js +0 -29
- package/web/assets/index-CM9mbbeW.css +0 -1
|
@@ -170,6 +170,7 @@ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
|
|
|
170
170
|
anchor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"latest">, import("@sinclair/typebox").TLiteral<"start">]>>;
|
|
171
171
|
before: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
172
172
|
after: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
173
|
+
around: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
173
174
|
}>;
|
|
174
175
|
responses: {
|
|
175
176
|
200: {
|
|
@@ -963,7 +964,7 @@ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
|
|
|
963
964
|
}>;
|
|
964
965
|
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
965
966
|
id: import("@sinclair/typebox").TString;
|
|
966
|
-
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"
|
|
967
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"task_accepted">, import("@sinclair/typebox").TLiteral<"task_update">, import("@sinclair/typebox").TLiteral<"checkpoint">]>;
|
|
967
968
|
occurred_at: import("@sinclair/typebox").TString;
|
|
968
969
|
title: import("@sinclair/typebox").TString;
|
|
969
970
|
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -971,9 +972,10 @@ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
|
|
|
971
972
|
task_title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
972
973
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
973
974
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"
|
|
975
|
+
run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
976
|
+
message_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
977
|
+
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"needs_human">]>>;
|
|
978
|
+
update_state: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"completed">, import("@sinclair/typebox").TLiteral<"failed">]>>;
|
|
977
979
|
token_usage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
978
980
|
input_tokens: import("@sinclair/typebox").TInteger;
|
|
979
981
|
cached_input_tokens: import("@sinclair/typebox").TInteger;
|
|
@@ -1002,7 +1004,95 @@ export declare const HOST_PROJECT_OPENAPI_ROUTES: ({
|
|
|
1002
1004
|
total_tokens: import("@sinclair/typebox").TInteger;
|
|
1003
1005
|
event_count: import("@sinclair/typebox").TInteger;
|
|
1004
1006
|
}>>>;
|
|
1005
|
-
|
|
1007
|
+
trace_card: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1008
|
+
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"success">, import("@sinclair/typebox").TLiteral<"warning">, import("@sinclair/typebox").TLiteral<"error">]>;
|
|
1009
|
+
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1010
|
+
origin: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1011
|
+
title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1012
|
+
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1013
|
+
snippets: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1014
|
+
message_id: import("@sinclair/typebox").TString;
|
|
1015
|
+
author: import("@sinclair/typebox").TString;
|
|
1016
|
+
body: import("@sinclair/typebox").TString;
|
|
1017
|
+
created_at: import("@sinclair/typebox").TString;
|
|
1018
|
+
}>>>;
|
|
1019
|
+
source_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
1020
|
+
unavailable_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1021
|
+
}>>;
|
|
1022
|
+
decisions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1023
|
+
title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1024
|
+
summary: import("@sinclair/typebox").TString;
|
|
1025
|
+
source: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"scratchpad">, import("@sinclair/typebox").TLiteral<"clarification">, import("@sinclair/typebox").TLiteral<"contract">]>>;
|
|
1026
|
+
}>>>;
|
|
1027
|
+
clarification: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1028
|
+
title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1029
|
+
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1030
|
+
request: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1031
|
+
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"resolved">]>>;
|
|
1032
|
+
answer_count: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
1033
|
+
answers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1034
|
+
message_id: import("@sinclair/typebox").TString;
|
|
1035
|
+
author: import("@sinclair/typebox").TString;
|
|
1036
|
+
body: import("@sinclair/typebox").TString;
|
|
1037
|
+
created_at: import("@sinclair/typebox").TString;
|
|
1038
|
+
}>>>;
|
|
1039
|
+
}>>;
|
|
1040
|
+
contract: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1041
|
+
goal: import("@sinclair/typebox").TString;
|
|
1042
|
+
scope: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
1043
|
+
truncated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
1044
|
+
}>>;
|
|
1045
|
+
result: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1046
|
+
summary: import("@sinclair/typebox").TString;
|
|
1047
|
+
error_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1048
|
+
}>>;
|
|
1049
|
+
changes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1050
|
+
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1051
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"added">, import("@sinclair/typebox").TLiteral<"modified">, import("@sinclair/typebox").TLiteral<"deleted">, import("@sinclair/typebox").TLiteral<"renamed">, import("@sinclair/typebox").TLiteral<"unknown">]>;
|
|
1052
|
+
path: import("@sinclair/typebox").TString;
|
|
1053
|
+
previous_path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1054
|
+
}>>;
|
|
1055
|
+
total_count: import("@sinclair/typebox").TInteger;
|
|
1056
|
+
truncated: import("@sinclair/typebox").TBoolean;
|
|
1057
|
+
}>>;
|
|
1058
|
+
verification: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1059
|
+
checks: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"passed">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"skipped">]>;
|
|
1060
|
+
skip_reason_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1061
|
+
skip_reason_summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1062
|
+
}>>;
|
|
1063
|
+
promotion: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1064
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"promoted">, import("@sinclair/typebox").TLiteral<"not_promoted">, import("@sinclair/typebox").TLiteral<"not_attempted">]>;
|
|
1065
|
+
commit_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1066
|
+
commit_short_oid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1067
|
+
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1068
|
+
reason_code: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1069
|
+
}>>;
|
|
1070
|
+
checkpoint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1071
|
+
counters: import("@sinclair/typebox").TObject<{
|
|
1072
|
+
completed: import("@sinclair/typebox").TInteger;
|
|
1073
|
+
failed: import("@sinclair/typebox").TInteger;
|
|
1074
|
+
remaining: import("@sinclair/typebox").TInteger;
|
|
1075
|
+
}>;
|
|
1076
|
+
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1077
|
+
task_id: import("@sinclair/typebox").TString;
|
|
1078
|
+
title: import("@sinclair/typebox").TString;
|
|
1079
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"done">, import("@sinclair/typebox").TLiteral<"failed">]>;
|
|
1080
|
+
summary: import("@sinclair/typebox").TString;
|
|
1081
|
+
}>>;
|
|
1082
|
+
generated_files: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1083
|
+
path: import("@sinclair/typebox").TString;
|
|
1084
|
+
name: import("@sinclair/typebox").TString;
|
|
1085
|
+
}>>>;
|
|
1086
|
+
truncated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
1087
|
+
}>>;
|
|
1088
|
+
links: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1089
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"worklist_task">, import("@sinclair/typebox").TLiteral<"chat_message">, import("@sinclair/typebox").TLiteral<"reference_file">, import("@sinclair/typebox").TLiteral<"repo_path">]>;
|
|
1090
|
+
label: import("@sinclair/typebox").TString;
|
|
1091
|
+
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1092
|
+
message_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1093
|
+
path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1094
|
+
}>>;
|
|
1095
|
+
}>>;
|
|
1006
1096
|
}>>;
|
|
1007
1097
|
}>;
|
|
1008
1098
|
};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function requireValidMessageWindowRequest
|
|
1
|
+
import type { SendClarificationRoundMessagePayload, SendMainChatMessagePayload, UpdateProjectDescriptionPayload, UpdateProjectDisplayNamePayload } from "@tutti/shared/schemas/api";
|
|
2
|
+
export declare function requireValidMessageWindowRequest<T extends {
|
|
3
|
+
before?: string;
|
|
4
|
+
after?: string;
|
|
5
|
+
around?: string;
|
|
6
|
+
}>(query: T): T;
|
|
3
7
|
export declare function requireValidSendMainChatPayload(payload: SendMainChatMessagePayload): SendMainChatMessagePayload;
|
|
4
8
|
export declare function requireValidRoundMessagePayload(payload: SendClarificationRoundMessagePayload): SendClarificationRoundMessagePayload;
|
|
5
9
|
export declare function requireValidProjectDisplayNamePayload(payload: UpdateProjectDisplayNamePayload): UpdateProjectDisplayNamePayload;
|
|
@@ -3,6 +3,9 @@ export function requireValidMessageWindowRequest(query) {
|
|
|
3
3
|
if (query.before !== undefined && query.after !== undefined) {
|
|
4
4
|
throw new HostProjectBadRequestError("before and after cursors cannot be used together");
|
|
5
5
|
}
|
|
6
|
+
if (query.around !== undefined && (query.before !== undefined || query.after !== undefined)) {
|
|
7
|
+
throw new HostProjectBadRequestError("around cannot be used with before or after cursors");
|
|
8
|
+
}
|
|
6
9
|
return query;
|
|
7
10
|
}
|
|
8
11
|
export function requireValidSendMainChatPayload(payload) {
|