@llm4ts/flow 0.8.0 → 0.9.1
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/BasecampTool.d.ts +33 -0
- package/dist/BasecampTool.d.ts.map +1 -1
- package/dist/BasecampTool.js +89 -4
- package/dist/BasecampTool.js.map +1 -1
- package/package.json +4 -4
- package/src/BasecampTool.ts +157 -7
package/dist/BasecampTool.d.ts
CHANGED
|
@@ -42,6 +42,27 @@ declare const CardStep_base: Schema.Class<CardStep, Schema.Struct<{
|
|
|
42
42
|
}>, {}>;
|
|
43
43
|
export declare class CardStep extends CardStep_base {
|
|
44
44
|
}
|
|
45
|
+
declare const Message_base: Schema.Class<Message, Schema.Struct<{
|
|
46
|
+
readonly id: Schema.Int;
|
|
47
|
+
readonly title: Schema.String;
|
|
48
|
+
readonly contentHtml: Schema.String;
|
|
49
|
+
readonly createdAt: Schema.String;
|
|
50
|
+
}>, {}>;
|
|
51
|
+
export declare class Message extends Message_base {
|
|
52
|
+
}
|
|
53
|
+
declare const Todolist_base: Schema.Class<Todolist, Schema.Struct<{
|
|
54
|
+
readonly id: Schema.Int;
|
|
55
|
+
readonly title: Schema.String;
|
|
56
|
+
}>, {}>;
|
|
57
|
+
export declare class Todolist extends Todolist_base {
|
|
58
|
+
}
|
|
59
|
+
declare const TodoItem_base: Schema.Class<TodoItem, Schema.Struct<{
|
|
60
|
+
readonly id: Schema.Int;
|
|
61
|
+
readonly title: Schema.String;
|
|
62
|
+
readonly completed: Schema.Boolean;
|
|
63
|
+
}>, {}>;
|
|
64
|
+
export declare class TodoItem extends TodoItem_base {
|
|
65
|
+
}
|
|
45
66
|
export declare const cardColumnsArgs: (board: BasecampProjectRef) => ReadonlyArray<string>;
|
|
46
67
|
export declare const cardListArgs: (board: BasecampProjectRef, column: Column) => ReadonlyArray<string>;
|
|
47
68
|
export declare const cardShowArgs: (board: BasecampProjectRef, cardId: number) => ReadonlyArray<string>;
|
|
@@ -52,11 +73,19 @@ export declare const cardCommentsArgs: (cardId: number) => ReadonlyArray<string>
|
|
|
52
73
|
export declare const cardCommentCreateArgs: (cardId: number, body: string) => ReadonlyArray<string>;
|
|
53
74
|
export declare const cardStepsArgs: (board: BasecampProjectRef, cardId: number) => ReadonlyArray<string>;
|
|
54
75
|
export declare const cardStepCompleteArgs: (board: BasecampProjectRef, stepId: number) => ReadonlyArray<string>;
|
|
76
|
+
export declare const messageListArgs: (board: BasecampProjectRef) => ReadonlyArray<string>;
|
|
77
|
+
export declare const messageCreateArgs: (board: BasecampProjectRef, title: string, body: string) => ReadonlyArray<string>;
|
|
78
|
+
export declare const todolistListArgs: (board: BasecampProjectRef) => ReadonlyArray<string>;
|
|
79
|
+
export declare const todoListArgs: (board: BasecampProjectRef, todolistId: number) => ReadonlyArray<string>;
|
|
55
80
|
export declare const parseColumns: (json: string) => Effect.Effect<ReadonlyArray<Column>, ProcessError>;
|
|
56
81
|
export declare const parseCard: (json: string) => Effect.Effect<Card, ProcessError>;
|
|
57
82
|
export declare const parseCards: (json: string) => Effect.Effect<ReadonlyArray<Card>, ProcessError>;
|
|
58
83
|
export declare const parseCardComments: (json: string) => Effect.Effect<ReadonlyArray<CardComment>, ProcessError>;
|
|
59
84
|
export declare const parseCardSteps: (json: string) => Effect.Effect<ReadonlyArray<CardStep>, ProcessError>;
|
|
85
|
+
export declare const parseMessage: (json: string) => Effect.Effect<Message, ProcessError>;
|
|
86
|
+
export declare const parseMessages: (json: string) => Effect.Effect<ReadonlyArray<Message>, ProcessError>;
|
|
87
|
+
export declare const parseTodolists: (json: string) => Effect.Effect<ReadonlyArray<Todolist>, ProcessError>;
|
|
88
|
+
export declare const parseTodos: (json: string) => Effect.Effect<ReadonlyArray<TodoItem>, ProcessError>;
|
|
60
89
|
export interface BasecampToolShape {
|
|
61
90
|
readonly listColumns: Effect.Effect<ReadonlyArray<Column>, FlowError>;
|
|
62
91
|
readonly resolveColumn: (title: string) => Effect.Effect<Column, FlowError>;
|
|
@@ -69,6 +98,10 @@ export interface BasecampToolShape {
|
|
|
69
98
|
readonly writeCardComment: (cardId: number, body: string) => Effect.Effect<void, FlowError>;
|
|
70
99
|
readonly listSteps: (cardId: number) => Effect.Effect<ReadonlyArray<CardStep>, FlowError>;
|
|
71
100
|
readonly completeStep: (stepId: number) => Effect.Effect<void, FlowError>;
|
|
101
|
+
readonly listMessages: Effect.Effect<ReadonlyArray<Message>, FlowError>;
|
|
102
|
+
readonly createMessage: (title: string, body: string) => Effect.Effect<Message, FlowError>;
|
|
103
|
+
readonly listTodolists: Effect.Effect<ReadonlyArray<Todolist>, FlowError>;
|
|
104
|
+
readonly listTodos: (todolistId: number) => Effect.Effect<ReadonlyArray<TodoItem>, FlowError>;
|
|
72
105
|
}
|
|
73
106
|
export declare const makeBasecampTool: (process: ProcessExecutorShape, workDir: string, events: FlowEventsShape, board: BasecampProjectRef) => Effect.Effect<BasecampToolShape, never, never>;
|
|
74
107
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasecampTool.d.ts","sourceRoot":"","sources":["../src/BasecampTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,oBAAoB,EAAiB,MAAM,8BAA8B,CAAA;AACvF,OAAO,EAAkB,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;;;;;AAKtD,qBAAa,kBAAmB,SAAQ,uBAGtC;CAAG;;;;;AAEL,qBAAa,MAAO,SAAQ,WAG1B;CAAG;;;;;;;;;;;AAGL,qBAAa,IAAK,SAAQ,SASxB;CAAG;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAK/B;CAAG;;;;;;AAEL,qBAAa,QAAS,SAAQ,aAI5B;CAAG;AAUL,eAAO,MAAM,eAAe,GAAI,OAAO,kBAAkB,KAAG,aAAa,CAAC,MAAM,CAK/E,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,kBAAkB,EAAE,QAAQ,MAAM,KAAG,aAAa,CAAC,MAAM,CAQ5F,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,kBAAkB,EAAE,QAAQ,MAAM,KAAG,aAAa,CAAC,MAAM,CAM5F,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,kBAAkB,EACzB,QAAQ,MAAM,EACd,QAAQ,MAAM,KACb,aAAa,CAAC,MAAM,CAQtB,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,EACzB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,SAAS,MAAM,EACf,WAAW,MAAM,KAChB,aAAa,CAAC,MAAM,CAUtB,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,EACzB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,aAAa,CAAC,MAAM,CAMrE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,aAAa,CAAC,MAAM,CAMxF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,EAAE,QAAQ,MAAM,KAAG,aAAa,CAAC,MAAM,CAM7F,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,OAAO,kBAAkB,EACzB,QAAQ,MAAM,KACb,aAAa,CAAC,MAAM,CAOtB,CAAA;
|
|
1
|
+
{"version":3,"file":"BasecampTool.d.ts","sourceRoot":"","sources":["../src/BasecampTool.ts"],"names":[],"mappings":"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"}
|
package/dist/BasecampTool.js
CHANGED
|
@@ -41,6 +41,24 @@ export class CardStep extends Schema.Class("CardStep")({
|
|
|
41
41
|
completed: Schema.Boolean
|
|
42
42
|
}) {
|
|
43
43
|
}
|
|
44
|
+
export class Message extends Schema.Class("Message")({
|
|
45
|
+
id: Schema.Int,
|
|
46
|
+
title: Schema.String,
|
|
47
|
+
contentHtml: Schema.String,
|
|
48
|
+
createdAt: Schema.String
|
|
49
|
+
}) {
|
|
50
|
+
}
|
|
51
|
+
export class Todolist extends Schema.Class("Todolist")({
|
|
52
|
+
id: Schema.Int,
|
|
53
|
+
title: Schema.String
|
|
54
|
+
}) {
|
|
55
|
+
}
|
|
56
|
+
export class TodoItem extends Schema.Class("TodoItem")({
|
|
57
|
+
id: Schema.Int,
|
|
58
|
+
title: Schema.String,
|
|
59
|
+
completed: Schema.Boolean
|
|
60
|
+
}) {
|
|
61
|
+
}
|
|
44
62
|
const projectFlags = (board) => [
|
|
45
63
|
"--project",
|
|
46
64
|
board.project,
|
|
@@ -128,6 +146,42 @@ export const cardStepCompleteArgs = (board, stepId) => [
|
|
|
128
146
|
...projectFlags(board),
|
|
129
147
|
"--quiet"
|
|
130
148
|
];
|
|
149
|
+
// Messages and todolists commands take --project only: --card-table
|
|
150
|
+
// belongs to the cards subcommands and is rejected elsewhere.
|
|
151
|
+
const projectOnlyFlags = (board) => [
|
|
152
|
+
"--project",
|
|
153
|
+
board.project
|
|
154
|
+
];
|
|
155
|
+
export const messageListArgs = (board) => [
|
|
156
|
+
"messages",
|
|
157
|
+
"list",
|
|
158
|
+
...projectOnlyFlags(board),
|
|
159
|
+
...jsonFlags
|
|
160
|
+
];
|
|
161
|
+
// --no-subscribe: agent-written memory must not notify humans per post.
|
|
162
|
+
export const messageCreateArgs = (board, title, body) => [
|
|
163
|
+
"messages",
|
|
164
|
+
"create",
|
|
165
|
+
title,
|
|
166
|
+
body,
|
|
167
|
+
"--no-subscribe",
|
|
168
|
+
...projectOnlyFlags(board),
|
|
169
|
+
...jsonFlags
|
|
170
|
+
];
|
|
171
|
+
export const todolistListArgs = (board) => [
|
|
172
|
+
"todolists",
|
|
173
|
+
"list",
|
|
174
|
+
...projectOnlyFlags(board),
|
|
175
|
+
...jsonFlags
|
|
176
|
+
];
|
|
177
|
+
export const todoListArgs = (board, todolistId) => [
|
|
178
|
+
"todos",
|
|
179
|
+
"list",
|
|
180
|
+
"--list",
|
|
181
|
+
String(todolistId),
|
|
182
|
+
...projectOnlyFlags(board),
|
|
183
|
+
...jsonFlags
|
|
184
|
+
];
|
|
131
185
|
const decodeJson = (operation, schema, json) => Schema.decodeUnknownEffect(schema)(json).pipe(Effect.mapError((error) => ProcessError.make({
|
|
132
186
|
message: operation,
|
|
133
187
|
detail: String(error)
|
|
@@ -136,7 +190,9 @@ const columnStruct = Schema.Struct({
|
|
|
136
190
|
id: Schema.Int,
|
|
137
191
|
title: Schema.String
|
|
138
192
|
});
|
|
139
|
-
|
|
193
|
+
// The CLI prints `null` (not `[]`) for every empty listing — columns,
|
|
194
|
+
// cards in a column, comments — so all list decoders tolerate it.
|
|
195
|
+
export const parseColumns = (json) => decodeJson("basecamp parse columns", Schema.fromJsonString(Schema.NullOr(Schema.Array(columnStruct))), json).pipe(Effect.map((columns) => (columns ?? []).map((column) => Column.make(column))));
|
|
140
196
|
const cardStruct = Schema.Struct({
|
|
141
197
|
id: Schema.Int,
|
|
142
198
|
title: Schema.String,
|
|
@@ -158,14 +214,14 @@ const toCard = (item) => Card.make({
|
|
|
158
214
|
url: item.app_url
|
|
159
215
|
});
|
|
160
216
|
export const parseCard = (json) => decodeJson("basecamp parse card", Schema.fromJsonString(cardStruct), json).pipe(Effect.map(toCard));
|
|
161
|
-
export const parseCards = (json) => decodeJson("basecamp parse cards", Schema.fromJsonString(Schema.Array(cardStruct)), json).pipe(Effect.map((items) => items.map(toCard)));
|
|
217
|
+
export const parseCards = (json) => decodeJson("basecamp parse cards", Schema.fromJsonString(Schema.NullOr(Schema.Array(cardStruct))), json).pipe(Effect.map((items) => (items ?? []).map(toCard)));
|
|
162
218
|
const commentStruct = Schema.Struct({
|
|
163
219
|
id: Schema.Int,
|
|
164
220
|
content: Schema.String,
|
|
165
221
|
creator: Schema.Struct({ name: Schema.String }),
|
|
166
222
|
created_at: Schema.String
|
|
167
223
|
});
|
|
168
|
-
export const parseCardComments = (json) => decodeJson("basecamp parse comments", Schema.fromJsonString(Schema.Array(commentStruct)), json).pipe(Effect.map((comments) => comments.map((comment) => CardComment.make({
|
|
224
|
+
export const parseCardComments = (json) => decodeJson("basecamp parse comments", Schema.fromJsonString(Schema.NullOr(Schema.Array(commentStruct))), json).pipe(Effect.map((comments) => (comments ?? []).map((comment) => CardComment.make({
|
|
169
225
|
id: comment.id,
|
|
170
226
|
author: comment.creator.name,
|
|
171
227
|
contentHtml: comment.content,
|
|
@@ -178,6 +234,31 @@ const stepStruct = Schema.Struct({
|
|
|
178
234
|
});
|
|
179
235
|
// A card without steps prints `null`, not `[]`.
|
|
180
236
|
export const parseCardSteps = (json) => decodeJson("basecamp parse steps", Schema.fromJsonString(Schema.NullOr(Schema.Array(stepStruct))), json).pipe(Effect.map((steps) => (steps ?? []).map((step) => CardStep.make(step))));
|
|
237
|
+
const messageStruct = Schema.Struct({
|
|
238
|
+
id: Schema.Int,
|
|
239
|
+
title: Schema.String,
|
|
240
|
+
content: Schema.optionalKey(Schema.NullOr(Schema.String)),
|
|
241
|
+
created_at: Schema.String
|
|
242
|
+
});
|
|
243
|
+
const toMessage = (item) => Message.make({
|
|
244
|
+
id: item.id,
|
|
245
|
+
title: item.title,
|
|
246
|
+
contentHtml: item.content ?? "",
|
|
247
|
+
createdAt: item.created_at
|
|
248
|
+
});
|
|
249
|
+
export const parseMessage = (json) => decodeJson("basecamp parse message", Schema.fromJsonString(messageStruct), json).pipe(Effect.map(toMessage));
|
|
250
|
+
export const parseMessages = (json) => decodeJson("basecamp parse messages", Schema.fromJsonString(Schema.NullOr(Schema.Array(messageStruct))), json).pipe(Effect.map((items) => (items ?? []).map(toMessage)));
|
|
251
|
+
const todolistStruct = Schema.Struct({
|
|
252
|
+
id: Schema.Int,
|
|
253
|
+
title: Schema.String
|
|
254
|
+
});
|
|
255
|
+
export const parseTodolists = (json) => decodeJson("basecamp parse todolists", Schema.fromJsonString(Schema.NullOr(Schema.Array(todolistStruct))), json).pipe(Effect.map((items) => (items ?? []).map((item) => Todolist.make(item))));
|
|
256
|
+
const todoStruct = Schema.Struct({
|
|
257
|
+
id: Schema.Int,
|
|
258
|
+
title: Schema.String,
|
|
259
|
+
completed: Schema.Boolean
|
|
260
|
+
});
|
|
261
|
+
export const parseTodos = (json) => decodeJson("basecamp parse todos", Schema.fromJsonString(Schema.NullOr(Schema.Array(todoStruct))), json).pipe(Effect.map((items) => (items ?? []).map((item) => TodoItem.make(item))));
|
|
181
262
|
const output = (result) => result.stdout.join("\n").trim();
|
|
182
263
|
export const makeBasecampTool = Effect.fn("@llm4ts/flow/BasecampTool.make")(function* (process, workDir, events, board) {
|
|
183
264
|
const columnsCache = yield* Ref.make(undefined);
|
|
@@ -216,7 +297,11 @@ export const makeBasecampTool = Effect.fn("@llm4ts/flow/BasecampTool.make")(func
|
|
|
216
297
|
readCardComments: (cardId) => read("basecamp comments list", run(cardCommentsArgs(cardId)).pipe(Effect.flatMap((result) => parseCardComments(output(result))))),
|
|
217
298
|
writeCardComment: (cardId, body) => write("basecamp comments create", run(cardCommentCreateArgs(cardId, body)).pipe(Effect.asVoid)),
|
|
218
299
|
listSteps: (cardId) => read("basecamp cards steps", run(cardStepsArgs(board, cardId)).pipe(Effect.flatMap((result) => parseCardSteps(output(result))))),
|
|
219
|
-
completeStep: (stepId) => write("basecamp cards step complete", run(cardStepCompleteArgs(board, stepId)).pipe(Effect.asVoid))
|
|
300
|
+
completeStep: (stepId) => write("basecamp cards step complete", run(cardStepCompleteArgs(board, stepId)).pipe(Effect.asVoid)),
|
|
301
|
+
listMessages: read("basecamp messages list", run(messageListArgs(board)).pipe(Effect.flatMap((result) => parseMessages(output(result))))),
|
|
302
|
+
createMessage: (title, body) => write("basecamp messages create", run(messageCreateArgs(board, title, body)).pipe(Effect.flatMap((result) => parseMessage(output(result))))),
|
|
303
|
+
listTodolists: read("basecamp todolists list", run(todolistListArgs(board)).pipe(Effect.flatMap((result) => parseTodolists(output(result))))),
|
|
304
|
+
listTodos: (todolistId) => read("basecamp todos list", run(todoListArgs(board, todolistId)).pipe(Effect.flatMap((result) => parseTodos(output(result)))))
|
|
220
305
|
};
|
|
221
306
|
});
|
|
222
307
|
//# sourceMappingURL=BasecampTool.js.map
|
package/dist/BasecampTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasecampTool.js","sourceRoot":"","sources":["../src/BasecampTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BasecampTool.js","sourceRoot":"","sources":["../src/BasecampTool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/flow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Effect-native LLM workflow, persistence, review, and repository automation",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -81,13 +81,13 @@
|
|
|
81
81
|
"typescript"
|
|
82
82
|
],
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@llm4ts/core": "0.
|
|
84
|
+
"@llm4ts/core": "0.9.1"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
|
-
"effect": "
|
|
87
|
+
"effect": "4.0.0-beta.102"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"effect": "
|
|
90
|
+
"effect": "4.0.0-beta.102"
|
|
91
91
|
},
|
|
92
92
|
"scripts": {
|
|
93
93
|
"clean": "tsc -b tsconfig.json --clean",
|
package/src/BasecampTool.ts
CHANGED
|
@@ -44,6 +44,24 @@ export class CardStep extends Schema.Class<CardStep>("CardStep")({
|
|
|
44
44
|
completed: Schema.Boolean
|
|
45
45
|
}) {}
|
|
46
46
|
|
|
47
|
+
export class Message extends Schema.Class<Message>("Message")({
|
|
48
|
+
id: Schema.Int,
|
|
49
|
+
title: Schema.String,
|
|
50
|
+
contentHtml: Schema.String,
|
|
51
|
+
createdAt: Schema.String
|
|
52
|
+
}) {}
|
|
53
|
+
|
|
54
|
+
export class Todolist extends Schema.Class<Todolist>("Todolist")({
|
|
55
|
+
id: Schema.Int,
|
|
56
|
+
title: Schema.String
|
|
57
|
+
}) {}
|
|
58
|
+
|
|
59
|
+
export class TodoItem extends Schema.Class<TodoItem>("TodoItem")({
|
|
60
|
+
id: Schema.Int,
|
|
61
|
+
title: Schema.String,
|
|
62
|
+
completed: Schema.Boolean
|
|
63
|
+
}) {}
|
|
64
|
+
|
|
47
65
|
const projectFlags = (board: BasecampProjectRef): ReadonlyArray<string> => [
|
|
48
66
|
"--project",
|
|
49
67
|
board.project,
|
|
@@ -160,6 +178,54 @@ export const cardStepCompleteArgs = (
|
|
|
160
178
|
"--quiet"
|
|
161
179
|
]
|
|
162
180
|
|
|
181
|
+
// Messages and todolists commands take --project only: --card-table
|
|
182
|
+
// belongs to the cards subcommands and is rejected elsewhere.
|
|
183
|
+
const projectOnlyFlags = (board: BasecampProjectRef): ReadonlyArray<string> => [
|
|
184
|
+
"--project",
|
|
185
|
+
board.project
|
|
186
|
+
]
|
|
187
|
+
|
|
188
|
+
export const messageListArgs = (board: BasecampProjectRef): ReadonlyArray<string> => [
|
|
189
|
+
"messages",
|
|
190
|
+
"list",
|
|
191
|
+
...projectOnlyFlags(board),
|
|
192
|
+
...jsonFlags
|
|
193
|
+
]
|
|
194
|
+
|
|
195
|
+
// --no-subscribe: agent-written memory must not notify humans per post.
|
|
196
|
+
export const messageCreateArgs = (
|
|
197
|
+
board: BasecampProjectRef,
|
|
198
|
+
title: string,
|
|
199
|
+
body: string
|
|
200
|
+
): ReadonlyArray<string> => [
|
|
201
|
+
"messages",
|
|
202
|
+
"create",
|
|
203
|
+
title,
|
|
204
|
+
body,
|
|
205
|
+
"--no-subscribe",
|
|
206
|
+
...projectOnlyFlags(board),
|
|
207
|
+
...jsonFlags
|
|
208
|
+
]
|
|
209
|
+
|
|
210
|
+
export const todolistListArgs = (board: BasecampProjectRef): ReadonlyArray<string> => [
|
|
211
|
+
"todolists",
|
|
212
|
+
"list",
|
|
213
|
+
...projectOnlyFlags(board),
|
|
214
|
+
...jsonFlags
|
|
215
|
+
]
|
|
216
|
+
|
|
217
|
+
export const todoListArgs = (
|
|
218
|
+
board: BasecampProjectRef,
|
|
219
|
+
todolistId: number
|
|
220
|
+
): ReadonlyArray<string> => [
|
|
221
|
+
"todos",
|
|
222
|
+
"list",
|
|
223
|
+
"--list",
|
|
224
|
+
String(todolistId),
|
|
225
|
+
...projectOnlyFlags(board),
|
|
226
|
+
...jsonFlags
|
|
227
|
+
]
|
|
228
|
+
|
|
163
229
|
const decodeJson = <A, S extends Schema.Codec<A, string>>(
|
|
164
230
|
operation: string,
|
|
165
231
|
schema: S,
|
|
@@ -179,12 +245,14 @@ const columnStruct = Schema.Struct({
|
|
|
179
245
|
title: Schema.String
|
|
180
246
|
})
|
|
181
247
|
|
|
248
|
+
// The CLI prints `null` (not `[]`) for every empty listing — columns,
|
|
249
|
+
// cards in a column, comments — so all list decoders tolerate it.
|
|
182
250
|
export const parseColumns = (json: string): Effect.Effect<ReadonlyArray<Column>, ProcessError> =>
|
|
183
251
|
decodeJson(
|
|
184
252
|
"basecamp parse columns",
|
|
185
|
-
Schema.fromJsonString(Schema.Array(columnStruct)),
|
|
253
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(columnStruct))),
|
|
186
254
|
json
|
|
187
|
-
).pipe(Effect.map((columns) => columns.map((column) => Column.make(column))))
|
|
255
|
+
).pipe(Effect.map((columns) => (columns ?? []).map((column) => Column.make(column))))
|
|
188
256
|
|
|
189
257
|
const cardStruct = Schema.Struct({
|
|
190
258
|
id: Schema.Int,
|
|
@@ -217,9 +285,11 @@ export const parseCard = (json: string): Effect.Effect<Card, ProcessError> =>
|
|
|
217
285
|
)
|
|
218
286
|
|
|
219
287
|
export const parseCards = (json: string): Effect.Effect<ReadonlyArray<Card>, ProcessError> =>
|
|
220
|
-
decodeJson(
|
|
221
|
-
|
|
222
|
-
|
|
288
|
+
decodeJson(
|
|
289
|
+
"basecamp parse cards",
|
|
290
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(cardStruct))),
|
|
291
|
+
json
|
|
292
|
+
).pipe(Effect.map((items) => (items ?? []).map(toCard)))
|
|
223
293
|
|
|
224
294
|
const commentStruct = Schema.Struct({
|
|
225
295
|
id: Schema.Int,
|
|
@@ -233,11 +303,11 @@ export const parseCardComments = (
|
|
|
233
303
|
): Effect.Effect<ReadonlyArray<CardComment>, ProcessError> =>
|
|
234
304
|
decodeJson(
|
|
235
305
|
"basecamp parse comments",
|
|
236
|
-
Schema.fromJsonString(Schema.Array(commentStruct)),
|
|
306
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(commentStruct))),
|
|
237
307
|
json
|
|
238
308
|
).pipe(
|
|
239
309
|
Effect.map((comments) =>
|
|
240
|
-
comments.map((comment) =>
|
|
310
|
+
(comments ?? []).map((comment) =>
|
|
241
311
|
CardComment.make({
|
|
242
312
|
id: comment.id,
|
|
243
313
|
author: comment.creator.name,
|
|
@@ -264,6 +334,60 @@ export const parseCardSteps = (
|
|
|
264
334
|
json
|
|
265
335
|
).pipe(Effect.map((steps) => (steps ?? []).map((step) => CardStep.make(step))))
|
|
266
336
|
|
|
337
|
+
const messageStruct = Schema.Struct({
|
|
338
|
+
id: Schema.Int,
|
|
339
|
+
title: Schema.String,
|
|
340
|
+
content: Schema.optionalKey(Schema.NullOr(Schema.String)),
|
|
341
|
+
created_at: Schema.String
|
|
342
|
+
})
|
|
343
|
+
|
|
344
|
+
const toMessage = (item: typeof messageStruct.Type): Message =>
|
|
345
|
+
Message.make({
|
|
346
|
+
id: item.id,
|
|
347
|
+
title: item.title,
|
|
348
|
+
contentHtml: item.content ?? "",
|
|
349
|
+
createdAt: item.created_at
|
|
350
|
+
})
|
|
351
|
+
|
|
352
|
+
export const parseMessage = (json: string): Effect.Effect<Message, ProcessError> =>
|
|
353
|
+
decodeJson("basecamp parse message", Schema.fromJsonString(messageStruct), json).pipe(
|
|
354
|
+
Effect.map(toMessage)
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
export const parseMessages = (json: string): Effect.Effect<ReadonlyArray<Message>, ProcessError> =>
|
|
358
|
+
decodeJson(
|
|
359
|
+
"basecamp parse messages",
|
|
360
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(messageStruct))),
|
|
361
|
+
json
|
|
362
|
+
).pipe(Effect.map((items) => (items ?? []).map(toMessage)))
|
|
363
|
+
|
|
364
|
+
const todolistStruct = Schema.Struct({
|
|
365
|
+
id: Schema.Int,
|
|
366
|
+
title: Schema.String
|
|
367
|
+
})
|
|
368
|
+
|
|
369
|
+
export const parseTodolists = (
|
|
370
|
+
json: string
|
|
371
|
+
): Effect.Effect<ReadonlyArray<Todolist>, ProcessError> =>
|
|
372
|
+
decodeJson(
|
|
373
|
+
"basecamp parse todolists",
|
|
374
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(todolistStruct))),
|
|
375
|
+
json
|
|
376
|
+
).pipe(Effect.map((items) => (items ?? []).map((item) => Todolist.make(item))))
|
|
377
|
+
|
|
378
|
+
const todoStruct = Schema.Struct({
|
|
379
|
+
id: Schema.Int,
|
|
380
|
+
title: Schema.String,
|
|
381
|
+
completed: Schema.Boolean
|
|
382
|
+
})
|
|
383
|
+
|
|
384
|
+
export const parseTodos = (json: string): Effect.Effect<ReadonlyArray<TodoItem>, ProcessError> =>
|
|
385
|
+
decodeJson(
|
|
386
|
+
"basecamp parse todos",
|
|
387
|
+
Schema.fromJsonString(Schema.NullOr(Schema.Array(todoStruct))),
|
|
388
|
+
json
|
|
389
|
+
).pipe(Effect.map((items) => (items ?? []).map((item) => TodoItem.make(item))))
|
|
390
|
+
|
|
267
391
|
export interface BasecampToolShape {
|
|
268
392
|
readonly listColumns: Effect.Effect<ReadonlyArray<Column>, FlowError>
|
|
269
393
|
readonly resolveColumn: (title: string) => Effect.Effect<Column, FlowError>
|
|
@@ -283,6 +407,10 @@ export interface BasecampToolShape {
|
|
|
283
407
|
readonly writeCardComment: (cardId: number, body: string) => Effect.Effect<void, FlowError>
|
|
284
408
|
readonly listSteps: (cardId: number) => Effect.Effect<ReadonlyArray<CardStep>, FlowError>
|
|
285
409
|
readonly completeStep: (stepId: number) => Effect.Effect<void, FlowError>
|
|
410
|
+
readonly listMessages: Effect.Effect<ReadonlyArray<Message>, FlowError>
|
|
411
|
+
readonly createMessage: (title: string, body: string) => Effect.Effect<Message, FlowError>
|
|
412
|
+
readonly listTodolists: Effect.Effect<ReadonlyArray<Todolist>, FlowError>
|
|
413
|
+
readonly listTodos: (todolistId: number) => Effect.Effect<ReadonlyArray<TodoItem>, FlowError>
|
|
286
414
|
}
|
|
287
415
|
|
|
288
416
|
const output = (result: ProcessResult): string => result.stdout.join("\n").trim()
|
|
@@ -408,6 +536,28 @@ export const makeBasecampTool = Effect.fn("@llm4ts/flow/BasecampTool.make")(func
|
|
|
408
536
|
write(
|
|
409
537
|
"basecamp cards step complete",
|
|
410
538
|
run(cardStepCompleteArgs(board, stepId)).pipe(Effect.asVoid)
|
|
539
|
+
),
|
|
540
|
+
listMessages: read(
|
|
541
|
+
"basecamp messages list",
|
|
542
|
+
run(messageListArgs(board)).pipe(Effect.flatMap((result) => parseMessages(output(result))))
|
|
543
|
+
),
|
|
544
|
+
createMessage: (title, body) =>
|
|
545
|
+
write(
|
|
546
|
+
"basecamp messages create",
|
|
547
|
+
run(messageCreateArgs(board, title, body)).pipe(
|
|
548
|
+
Effect.flatMap((result) => parseMessage(output(result)))
|
|
549
|
+
)
|
|
550
|
+
),
|
|
551
|
+
listTodolists: read(
|
|
552
|
+
"basecamp todolists list",
|
|
553
|
+
run(todolistListArgs(board)).pipe(Effect.flatMap((result) => parseTodolists(output(result))))
|
|
554
|
+
),
|
|
555
|
+
listTodos: (todolistId) =>
|
|
556
|
+
read(
|
|
557
|
+
"basecamp todos list",
|
|
558
|
+
run(todoListArgs(board, todolistId)).pipe(
|
|
559
|
+
Effect.flatMap((result) => parseTodos(output(result)))
|
|
560
|
+
)
|
|
411
561
|
)
|
|
412
562
|
}
|
|
413
563
|
})
|