monday-cli 0.5.0 → 0.6.0
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/CHANGELOG.md +277 -0
- package/README.md +96 -35
- package/dist/api/column-types.d.ts +48 -19
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +25 -11
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +17 -10
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +33 -19
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/file-column-set.d.ts +507 -0
- package/dist/api/file-column-set.d.ts.map +1 -0
- package/dist/api/file-column-set.js +510 -0
- package/dist/api/file-column-set.js.map +1 -0
- package/dist/api/raw-write.d.ts +27 -17
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +40 -25
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolver-error-fold.d.ts +25 -0
- package/dist/api/resolver-error-fold.d.ts.map +1 -1
- package/dist/api/resolver-error-fold.js +56 -0
- package/dist/api/resolver-error-fold.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +8 -3
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +16 -8
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +131 -33
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/set.d.ts +33 -3
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +193 -15
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/update.d.ts +34 -3
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +346 -67
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts.map +1 -1
- package/dist/commands/item/upload.js +16 -69
- package/dist/commands/item/upload.js.map +1 -1
- package/dist/commands/update/upload.d.ts.map +1 -1
- package/dist/commands/update/upload.js +9 -59
- package/dist/commands/update/upload.js.map +1 -1
- package/dist/utils/file-source.d.ts +93 -0
- package/dist/utils/file-source.d.ts.map +1 -0
- package/dist/utils/file-source.js +140 -0
- package/dist/utils/file-source.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,283 @@ output envelope (`{ ok, data, meta, ... }`) and 29 stable error
|
|
|
7
7
|
codes are part of the public contract — the SemVer rules in
|
|
8
8
|
[`docs/cli-design.md`](./docs/cli-design.md) §6 govern bumps.
|
|
9
9
|
|
|
10
|
+
## [0.6.0] - 2026-05-18 — Files-shaped friendly `--set` writes (M38)
|
|
11
|
+
|
|
12
|
+
The "agents can write to files-shaped columns inline" milestone —
|
|
13
|
+
v0.4-M31's `monday item upload` verb-shaped multipart wire surface
|
|
14
|
+
gains the friendly translator-boundary inline form
|
|
15
|
+
(`monday item set <iid> <file-col>=<path>` + `monday item update
|
|
16
|
+
<iid> --set <file-col>=<path>`), closing the v0.4 → v0.5 → v0.6
|
|
17
|
+
carry-over of the inline form across two prior release-preps.
|
|
18
|
+
Single-item paths only at M38; bulk + create + multi-file +
|
|
19
|
+
stdin paths reject with `details.reason` discriminators (defer
|
|
20
|
+
to v0.6.x carve-outs). **No breaking changes vs `0.5.0` — every
|
|
21
|
+
v0.6 surface is additive.** Built as a single feature milestone
|
|
22
|
+
(M38).
|
|
23
|
+
|
|
24
|
+
### Breaking changes vs `0.5.0`
|
|
25
|
+
|
|
26
|
+
**None.** Every command, error code, envelope key, and warning
|
|
27
|
+
shape shipped in v0.5.0 is preserved byte-for-byte. v0.6 only adds.
|
|
28
|
+
|
|
29
|
+
### Surface
|
|
30
|
+
|
|
31
|
+
**117 commands shipped (unchanged from v0.5).** M38 extends two
|
|
32
|
+
existing verbs (`monday item set` + `monday item update`) with a
|
|
33
|
+
new dispatch leg rather than introducing new noun namespaces or
|
|
34
|
+
verbs. The friendly translator stays JSON-output-shaped for the 13
|
|
35
|
+
existing writable types; file-column dispatch routes through a
|
|
36
|
+
new sibling module (`src/api/file-column-set.ts`) that handles the
|
|
37
|
+
multipart leg.
|
|
38
|
+
|
|
39
|
+
**Files-shaped friendly `--set` (M38) — `monday item set <iid>
|
|
40
|
+
<file-col>=<path>` + `monday item update <iid> --set <file-col>=
|
|
41
|
+
<path>`.** Sibling-branch dispatch at the column-resolution
|
|
42
|
+
boundary (per D1 closure): after column metadata loads, if
|
|
43
|
+
`column.type === 'file'` AND single-`--set` AND no other writes,
|
|
44
|
+
route to `executeFileColumnSet` (the new multipart-wire fetcher);
|
|
45
|
+
otherwise route to the standard translator + `executeItemMutation`
|
|
46
|
+
path. The translator (`translateColumnValueAsync`) stays
|
|
47
|
+
JSON-output-shaped for the 13 existing writable types — no
|
|
48
|
+
breaking shape change on any existing dispatch path. Routes
|
|
49
|
+
into v0.4-M31's `add_file_to_column` multipart wire verbatim
|
|
50
|
+
(no new transport surface; `dispatchMultipart` consumer count
|
|
51
|
+
goes 1 → 2; `ResolvedClient.multipart` consumer count goes
|
|
52
|
+
1 → 2).
|
|
53
|
+
|
|
54
|
+
**Mutex rules at M38 (per D2 closure).** Exactly ONE file
|
|
55
|
+
`--set <file-col>=<path>` per call, no other `--set` /
|
|
56
|
+
`--set-raw` / `--name` flags allowed:
|
|
57
|
+
|
|
58
|
+
- File `--set` + ANY value `--set` / `--set-raw` / `--name` →
|
|
59
|
+
`usage_error` carrying `details.reason:
|
|
60
|
+
'mixed_file_and_value_sets'` + a hint pointing agents at
|
|
61
|
+
running the file `--set` alone and applying value writes /
|
|
62
|
+
rename in a separate call.
|
|
63
|
+
- 2+ file `--set` entries → `usage_error` carrying
|
|
64
|
+
`details.reason: 'multi_file_set_unsupported'` (defers to
|
|
65
|
+
v0.6.x; the bulk-file-set milestone will address multi-file
|
|
66
|
+
dispatch).
|
|
67
|
+
|
|
68
|
+
Enforcement fires at the column-resolution boundary (parse-time
|
|
69
|
+
can't know — the column type only resolves after board metadata
|
|
70
|
+
loads); rejection happens BEFORE any multipart bytes get
|
|
71
|
+
constructed.
|
|
72
|
+
|
|
73
|
+
**Bulk + create paths REJECT at M38 (per D5 / D6 closures).**
|
|
74
|
+
The two paths that don't ship friendly file-set dispatch at M38
|
|
75
|
+
surface dedicated rejection reasons:
|
|
76
|
+
|
|
77
|
+
- `monday item update --board <bid> (--where <c>=<v>... |
|
|
78
|
+
--filter-json <json>) --set <file-col>=<path>` →
|
|
79
|
+
`usage_error.details.reason:
|
|
80
|
+
'file_set_on_bulk_unsupported'`. Per-item file dispatch +
|
|
81
|
+
`--continue-on-error` partial-success envelope + `--concurrency`
|
|
82
|
+
shared-transport semantics each carry additional design
|
|
83
|
+
dimensions worth their own milestone; defers to v0.6.x.
|
|
84
|
+
- `monday item create --board <bid> --name <n> --set <file-col>=
|
|
85
|
+
<path>` → `usage_error.details.reason:
|
|
86
|
+
'file_set_on_create_unsupported'`. File upload at create time
|
|
87
|
+
would require non-atomic post-create `add_file_to_column`
|
|
88
|
+
(breaks §5.8 state safety) or a Monday wire mutation accepting
|
|
89
|
+
multipart parts inside `create_item.column_values` (no such
|
|
90
|
+
mutation at API `2026-01`); defers to v0.6.x.
|
|
91
|
+
|
|
92
|
+
**`--set-raw <file-col>=<json>` STAYS REJECTED at M38 (per D3
|
|
93
|
+
closure — PERMANENT, not deferred).** Monday's wire has no JSON
|
|
94
|
+
shape for `change_column_value` on file columns — `add_file_to_
|
|
95
|
+
column` is the only file-write wire surface and it's multipart-
|
|
96
|
+
only. The `--set-raw` escape-hatch contract ("user supplies the
|
|
97
|
+
JSON `change_column_value` accepts") doesn't compose with
|
|
98
|
+
multipart. The existing rejection at `src/api/raw-write.ts:
|
|
99
|
+
translateRawColumnValue` stays unchanged. The rejection now
|
|
100
|
+
carries `details.hint` pointing at BOTH the M38 friendly
|
|
101
|
+
`--set` form AND the M31 verb-shaped `monday item upload` —
|
|
102
|
+
agents have two write paths reaching the same multipart wire
|
|
103
|
+
and key off the hint rather than the (absent) `deferred_to`
|
|
104
|
+
slot.
|
|
105
|
+
|
|
106
|
+
**Dry-run envelope shape (per D4 closure).** Mirrors M31 `item
|
|
107
|
+
upload --dry-run` envelope verbatim:
|
|
108
|
+
`planned_changes: [{operation: 'add_file_to_column', item_id,
|
|
109
|
+
column_id, file_path, filename, file_size_bytes}]` (size from
|
|
110
|
+
`fs.stat()`; no file bytes loaded into memory). `meta.source:
|
|
111
|
+
'none'`. The `file_path` slot echoes the argv-derived path; the
|
|
112
|
+
`column_id` slot echoes the RESOLVED column ID (not the argv
|
|
113
|
+
token).
|
|
114
|
+
|
|
115
|
+
### Output contract additions
|
|
116
|
+
|
|
117
|
+
**No new stable error codes — registry stays at 29.** Per D8
|
|
118
|
+
closure, M38 routes every rejection through existing codes
|
|
119
|
+
(`usage_error` / `unsupported_column_type` / `not_found` /
|
|
120
|
+
`validation_failed`) with `details.reason` literal-string
|
|
121
|
+
discriminators. The four M38-specific reasons
|
|
122
|
+
(`mixed_file_and_value_sets` / `multi_file_set_unsupported` /
|
|
123
|
+
`file_set_on_bulk_unsupported` / `file_set_on_create_unsupported`)
|
|
124
|
+
join the existing R-NEW-31 discriminated-union per-status-detail
|
|
125
|
+
pattern.
|
|
126
|
+
|
|
127
|
+
**No new envelope keys, no new warning shapes.** M38 reuses the
|
|
128
|
+
M31 multipart wire's success envelope shape (single `item` slot
|
|
129
|
+
projecting the post-mutation board snapshot) and the same
|
|
130
|
+
post-success eager-invalidation contract (`invalidateBoard(boardId)`
|
|
131
|
+
fires single-leg on multipart success).
|
|
132
|
+
|
|
133
|
+
### Upgrade notes
|
|
134
|
+
|
|
135
|
+
- **`unsupported_column_type` `deferred_to: "v0.6"` is DROPPED
|
|
136
|
+
for the files-shaped category at the friendly `--set` form.**
|
|
137
|
+
v0.6-M38 picks the inline write path up. The rejection row at
|
|
138
|
+
`src/api/column-values.ts` (the files-shaped row of the
|
|
139
|
+
friendly translator) now fires ONLY on the `item create` +
|
|
140
|
+
`item update --where` bulk paths per D5 / D6 closures — with
|
|
141
|
+
`details.reason: 'file_set_on_create_unsupported'` /
|
|
142
|
+
`'file_set_on_bulk_unsupported'`. The single-item `item set` +
|
|
143
|
+
`item update` paths dispatch to the new sibling module BEFORE
|
|
144
|
+
the translator's files-shaped row fires. No more
|
|
145
|
+
`deferred_to: "v0.6"` slot on the friendly-form path —
|
|
146
|
+
agents see successful single-item uploads end-to-end.
|
|
147
|
+
- **`unsupported_column_type` for `--set-raw <file-col>=<json>`
|
|
148
|
+
STAYS REJECTED.** Permanent rejection per D3 — Monday's
|
|
149
|
+
wire has no JSON shape for files-shaped `change_column_value`.
|
|
150
|
+
The rejection hint at `src/api/raw-write.ts` now names BOTH
|
|
151
|
+
the M38 friendly form AND the M31 verb-shaped `monday item
|
|
152
|
+
upload` as alternative write paths; agents construct retries
|
|
153
|
+
from either entry point.
|
|
154
|
+
- **Multi-level subitem creation slips from `"v0.6"` →
|
|
155
|
+
`"v0.7"`.** Originally slipped from v0.3 → v0.4 → v0.5 → v0.6
|
|
156
|
+
across three prior release-preps. v0.6 didn't pick it up —
|
|
157
|
+
Monday's `sub_items_board` still carries no `subtasks` column
|
|
158
|
+
at API `2026-01`, so depth-2 subitems still have no data-model
|
|
159
|
+
home. Single-level subitems (`item create --parent <iid>`
|
|
160
|
+
against classic boards) continue to work byte-identically.
|
|
161
|
+
The `error.code: "usage_error"` + `details.hierarchy_type:
|
|
162
|
+
"multi_level"` keys are unchanged; only the `deferred_to`
|
|
163
|
+
literal flipped.
|
|
164
|
+
- **Cross-board `item move` value-overrides slip from `"v0.6"`
|
|
165
|
+
→ `"v0.7"`.** Slipped across v0.3-M11 → v0.4 → v0.5 → v0.6
|
|
166
|
+
→ v0.7 release-preps. Monday's `ColumnMappingInput` still
|
|
167
|
+
carries no value slot; the cross-leg partial-failure envelope
|
|
168
|
+
question stays open. Agents needing overrides continue to fire
|
|
169
|
+
`monday item set <iid> <target>=<value>` post-move.
|
|
170
|
+
- **Cross-board resumable cursor slips from `"v0.6"` →
|
|
171
|
+
`"v0.7"`.** The `cross_board_truncated` warning's
|
|
172
|
+
`details.hint` continues to recommend narrowing via
|
|
173
|
+
`--workspace` / `--favorites` / `--max-boards`; v0.7 may pick
|
|
174
|
+
the resumable surface up if per-board cursor-lifetime under
|
|
175
|
+
aggregation gets a clean design.
|
|
176
|
+
- **Stable error-code registry stays at 29.** Existing codes'
|
|
177
|
+
shapes are unchanged across v0.5 → v0.6.
|
|
178
|
+
- **`monday auth login` placeholder-guard unchanged.** The verb
|
|
179
|
+
is still registered and still surfaces `usage_error.details.
|
|
180
|
+
reason: oauth_unregistered` pointing at `MONDAY_API_TOKEN`
|
|
181
|
+
(unchanged from v0.5.0). The OAuth deferral revisits in
|
|
182
|
+
v0.6.x / v0.7 contingent on user demand.
|
|
183
|
+
|
|
184
|
+
### Internals worth highlighting
|
|
185
|
+
|
|
186
|
+
- **R-class refactor shipped during v0.6.** R-v0.6-NEW-1
|
|
187
|
+
(`file-source.ts` two-export module: `precheckLocalFile`
|
|
188
|
+
fs.stat + fs.access(R_OK) + non-empty + size capture +
|
|
189
|
+
`usage_error.details.reason: 'file_not_readable' |
|
|
190
|
+
'file_empty'`; `buildBlobFromPath` readFile + sniffContent
|
|
191
|
+
Type + Blob construction) shipped ahead-of-feat at v0.6-M38
|
|
192
|
+
IMPL kickoff (`3c2a9b0`) — 3 consumers post-lift (M31
|
|
193
|
+
`monday item upload` action body + M31 `monday update upload`
|
|
194
|
+
action body + M38's `executeFileColumnSet` runtime body).
|
|
195
|
+
10 direct unit tests pin the helper's branch matrix. Mirrors
|
|
196
|
+
R-NEW-29's M25 ahead-of-feat cadence + R-NEW-70's M34
|
|
197
|
+
cadence.
|
|
198
|
+
- **R-NEW-82 4th consecutive consumer ratified at v0.6
|
|
199
|
+
release-prep.** The release-prep cross-doc grep for stale
|
|
200
|
+
`deferred_to: "v0.6"` slots fired and caught one stale site
|
|
201
|
+
(multi-level subitem `--parent` rejection — slipped to
|
|
202
|
+
`"v0.7"`) plus one ToC drift (v0.6-M38 friendly file `--set`
|
|
203
|
+
annotation missing from `docs/output-shapes.md`'s `item
|
|
204
|
+
(mutations)` row). Mirrors v0.3-M28 (1st) / v0.4 (2nd) /
|
|
205
|
+
v0.5 (3rd) / v0.6 (4th) release-prep ratifications.
|
|
206
|
+
- **R-NEW-84 graduated discipline applied.** The v0.6
|
|
207
|
+
release-prep cluster ships zero production `src/**/*.ts`
|
|
208
|
+
semantic changes (only the literal `'v0.6'` → `'v0.7'` flip
|
|
209
|
+
in the multi-level subitem rejection slot); gates carry
|
|
210
|
+
verification per the R-NEW-84 carve-out (skip Codex review
|
|
211
|
+
on mechanical / process-only clusters).
|
|
212
|
+
- **`details.reason` discriminator pattern (R-v0.6-NEW-2) at
|
|
213
|
+
4 supporting instances post-M38** (`mixed_file_and_value_sets`
|
|
214
|
+
/ `multi_file_set_unsupported` / `file_set_on_create_
|
|
215
|
+
unsupported` / `file_set_on_bulk_unsupported`). Below the 5th-
|
|
216
|
+
consumer graduation threshold; tracked as a watch-item for the
|
|
217
|
+
first v0.6.x lift that adds a 5th `details.reason` literal-
|
|
218
|
+
string discriminator on the file-set surface (bulk file-set
|
|
219
|
+
carve-out is the natural site).
|
|
220
|
+
- **Two-AI review** (cli-design pre-flight + implementation
|
|
221
|
+
review) ran for M38 pre-flight + IMPL. **M38 IMPL converged
|
|
222
|
+
in 4 fix-up rounds** (0 P1 / 3 P2 / 11 P3 cumulative across
|
|
223
|
+
rounds 1–4 — at the median 3-4 IMPL round count per the
|
|
224
|
+
v0.5 IMPL precedent). The v0.6 release-prep cluster skipped
|
|
225
|
+
Codex per R-NEW-84. Cumulative finding count + per-round
|
|
226
|
+
Codex breakdown lives in the per-milestone post-mortem in
|
|
227
|
+
[`docs/v0.6-plan.md`](./docs/v0.6-plan.md) §11.
|
|
228
|
+
|
|
229
|
+
### Tests + quality gates
|
|
230
|
+
|
|
231
|
+
- **4100 unit/integration + E2E tests** at v0.6.0 (+1 skipped;
|
|
232
|
+
was 4054+1 at v0.5.0; ~46 new tests for M38 — `file-source`
|
|
233
|
+
helper unit branch matrix, `file-column-set` action-body
|
|
234
|
+
branches, integration cassette pins on single-item friendly
|
|
235
|
+
paths + the four `details.reason`-discriminated rejection
|
|
236
|
+
paths, envelope-snapshot pins on the M38 surfaces). All green
|
|
237
|
+
on Node 22 + 24.
|
|
238
|
+
- **Coverage at 99.26 / 96.46 / 99.31 / 99.52** (statements /
|
|
239
|
+
branches / functions / lines) against the floor 95 / 95.45 /
|
|
240
|
+
95 / 95. Branches margin **1.01pp** at v0.6.0 (was 1.00pp at
|
|
241
|
+
v0.5.0; +0.01pp). Floor unchanged across v0.5.0 → v0.6.0.
|
|
242
|
+
- **Envelope-snapshot suite** — refresh probe ran clean at
|
|
243
|
+
v0.6 release-prep (zero diff vs M38 IMPL close); per-
|
|
244
|
+
milestone close-docs sweep refreshed snapshots in lockstep at
|
|
245
|
+
M38 IMPL close.
|
|
246
|
+
- **Five test layers held**: unit, integration (in-process
|
|
247
|
+
`FixtureTransport` + `MultipartFixtureTransport`), E2E
|
|
248
|
+
(subprocess against fixture server), envelope-shape snapshot
|
|
249
|
+
suite, published-tarball E2E.
|
|
250
|
+
- **Audit-fix folded into release-prep.** `npm audit` flagged a
|
|
251
|
+
transitive `fast-uri@3.1.0` (high severity); `npm audit fix`
|
|
252
|
+
cleanly resolved to `3.1.2` (non-breaking — `ajv@8.20.0`'s
|
|
253
|
+
`^3.0.1` constraint satisfies 3.1.x). `npm audit` reports
|
|
254
|
+
`0 vulnerabilities` post-fix.
|
|
255
|
+
|
|
256
|
+
### Documentation
|
|
257
|
+
|
|
258
|
+
- **[`docs/v0.6-plan.md`](./docs/v0.6-plan.md)** new — the v0.6
|
|
259
|
+
active plan with M38 milestone, decisions log (D1-D8),
|
|
260
|
+
R-class register (R-v0.6-NEW-1 through R-v0.6-NEW-11),
|
|
261
|
+
per-milestone post-mortem (§11 + §22).
|
|
262
|
+
- **[`docs/cli-design.md`](./docs/cli-design.md)** §4.3
|
|
263
|
+
`monday item set` + `monday item update` rows annotated with
|
|
264
|
+
the M38 file-column dispatch shape + mutex rules; §5.3
|
|
265
|
+
"File-column dispatch leg" subsection added explaining the
|
|
266
|
+
sibling-branch routing + the four `details.reason`
|
|
267
|
+
discriminators; §13 v0.5 entry's v0.6 deferral list closed
|
|
268
|
+
out + the v0.7 frame pinned (multi-level subitems + cross-
|
|
269
|
+
board move value-overrides + cross-board resumable cursor +
|
|
270
|
+
profile-scoped argument defaults).
|
|
271
|
+
- **[`docs/output-shapes.md`](./docs/output-shapes.md)** —
|
|
272
|
+
`item set` + `item update` sections gained M38 file-column
|
|
273
|
+
dispatch subsections at lines 2100, 2151, 2243; ToC row
|
|
274
|
+
for `item (mutations)` updated to enumerate the friendly
|
|
275
|
+
file `--set v0.6-M38` annotation on `set` + `update`
|
|
276
|
+
(caught at v0.6 release-prep ToC audit as a v0.6-M38
|
|
277
|
+
close-docs gap — 4th consecutive R-NEW-82 graduated-
|
|
278
|
+
discipline ratification).
|
|
279
|
+
- **README.md** quickstart expanded with v0.6 example (step 13
|
|
280
|
+
demonstrating M38 friendly file `--set` on item set + item
|
|
281
|
+
update + dry-run). Scope section reshaped around v0.6.0 /
|
|
282
|
+
v0.5.0 / v0.4.0 / v0.3.0 / v0.2.0 / v0.1.0 per-version
|
|
283
|
+
layout.
|
|
284
|
+
|
|
285
|
+
[0.6.0]: https://github.com/Firer/monday-cli/releases/tag/v0.6.0
|
|
286
|
+
|
|
10
287
|
## [0.5.0] - 2026-05-17 — Team writers + full Monday workdocs CRUD mutation surface
|
|
11
288
|
|
|
12
289
|
The "agents can write to teams + drive the full workdocs surface"
|
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ Requires **Node.js ≥ 22**.
|
|
|
49
49
|
# Get one at https://<your-org>.monday.com/admin/integrations/api
|
|
50
50
|
#
|
|
51
51
|
# OAuth login (`monday auth login`) is registered but deferred in
|
|
52
|
-
# v0.
|
|
52
|
+
# v0.6.0 — the verb surfaces a clear `usage_error.details.reason:
|
|
53
53
|
# oauth_unregistered` pointing here. Authenticate via the env var.
|
|
54
54
|
export MONDAY_API_TOKEN="<your-token>"
|
|
55
55
|
|
|
@@ -117,23 +117,35 @@ monday user team-list --json
|
|
|
117
117
|
monday user team-create --name "Platform" --users 7,9 --json
|
|
118
118
|
monday user team-add-members <tid> --users 11,13 --json
|
|
119
119
|
|
|
120
|
-
# 13.
|
|
120
|
+
# 13. Files-shaped friendly `--set` writes (v0.6-M38 — closes the v0.4
|
|
121
|
+
# → v0.5 → v0.6 carry-over of the inline form). Single-call file
|
|
122
|
+
# upload via `--set <file-col>=<path>`; sibling-branch dispatch at
|
|
123
|
+
# the column-resolution boundary routes to the v0.4-M31 multipart
|
|
124
|
+
# `add_file_to_column` wire. `--dry-run` emits a `planned_changes`
|
|
125
|
+
# envelope without the multipart round-trip. The v0.4-M31 verb-
|
|
126
|
+
# shaped `monday item upload` path remains; this is the friendly
|
|
127
|
+
# inline alternative.
|
|
128
|
+
monday item set 67890 'Attachments'=./screenshot.png --json
|
|
129
|
+
monday item update 67890 --set 'Attachments'=./diagram.png --json
|
|
130
|
+
monday item update 67890 --set 'Attachments'=./report.pdf --dry-run --json
|
|
131
|
+
|
|
132
|
+
# 14. Find-or-create with idempotent matching (v0.2)
|
|
121
133
|
# Re-running with the same args is safe — 0/1/2+ matches route to
|
|
122
134
|
# create / update / `ambiguous_match` (one of the 29 stable error codes).
|
|
123
135
|
monday item upsert --board 12345 --name "Refactor login" \
|
|
124
136
|
--match-by name --set status='Working on it' --json
|
|
125
137
|
|
|
126
|
-
#
|
|
138
|
+
# 15. Move a ticket forward, then comment on it
|
|
127
139
|
monday item set 67890 status=Done --json
|
|
128
140
|
monday update create 67890 --body "Shipped in PR #1234" --json
|
|
129
141
|
|
|
130
|
-
#
|
|
142
|
+
# 16. Monday Dev convention layer (v0.3 — sprint/epic/release/task)
|
|
131
143
|
# First-time setup auto-detects boards by Monday's stock template names.
|
|
132
144
|
monday dev discover --apply --json # writes ~/.monday-cli/config.toml
|
|
133
145
|
monday dev sprint current --json # the active sprint
|
|
134
146
|
monday dev task list --mine --json # my open tasks
|
|
135
147
|
|
|
136
|
-
#
|
|
148
|
+
# 17. Outbound writes (v0.3 — webhooks + notifications)
|
|
137
149
|
monday webhook list 12345 --json
|
|
138
150
|
monday notification send --user 7 --target 67890 \
|
|
139
151
|
--target-type item --text "PTAL" --json
|
|
@@ -202,7 +214,7 @@ Every JSON response uses the same universal envelope:
|
|
|
202
214
|
"meta": {
|
|
203
215
|
"schema_version": "1",
|
|
204
216
|
"api_version": "2026-01",
|
|
205
|
-
"cli_version": "0.
|
|
217
|
+
"cli_version": "0.6.0",
|
|
206
218
|
"request_id": "0e6f1a7b-...",
|
|
207
219
|
"source": "live",
|
|
208
220
|
"cache_age_seconds": null,
|
|
@@ -302,7 +314,27 @@ See [`.env.example`](./.env.example) for all supported variables
|
|
|
302
314
|
|
|
303
315
|
## Scope
|
|
304
316
|
|
|
305
|
-
**v0.
|
|
317
|
+
**v0.6.0 (current — `monday-cli@0.6.0` on npm):**
|
|
318
|
+
the v0.5 surface PLUS files-shaped friendly `--set <file-col>=<path>`
|
|
319
|
+
writes on `monday item set` + `monday item update` (single-item
|
|
320
|
+
paths), closing the v0.4 → v0.5 → v0.6 carry-over of the inline
|
|
321
|
+
form. Sibling-branch dispatch at the column-resolution boundary
|
|
322
|
+
routes file `--set` to the v0.4-M31 `add_file_to_column` multipart
|
|
323
|
+
wire; the friendly translator stays JSON-output-shaped for the 13
|
|
324
|
+
existing writable types. **No breaking changes vs v0.5.0** — the
|
|
325
|
+
v0.6 surface is additive (M38 only). Built as a single milestone
|
|
326
|
+
(M38). See [CHANGELOG.md](./CHANGELOG.md) for the full
|
|
327
|
+
per-milestone release notes.
|
|
328
|
+
|
|
329
|
+
**OAuth deferral (unchanged from v0.5.0).** `monday auth login` is
|
|
330
|
+
registered but the canonical Monday OAuth app is not registered in
|
|
331
|
+
v0.6.0; the verb surfaces a clear `usage_error.details.reason:
|
|
332
|
+
oauth_unregistered` pointing at `MONDAY_API_TOKEN`. Multi-profile
|
|
333
|
+
config + per-profile credentials cache work fully against API
|
|
334
|
+
tokens; OAuth registration revisits in v0.6.x / v0.7 contingent on
|
|
335
|
+
user demand.
|
|
336
|
+
|
|
337
|
+
**v0.5.0 (the previous release):**
|
|
306
338
|
the v0.4 surface PLUS the full team-writer surface
|
|
307
339
|
(`monday user team-list/get/create/delete/add-members/remove-members`),
|
|
308
340
|
the full Monday workdocs CRUD mutation surface — doc-level
|
|
@@ -310,20 +342,9 @@ the full Monday workdocs CRUD mutation surface — doc-level
|
|
|
310
342
|
doc-block (`monday doc block-create/block-update/block-delete`),
|
|
311
343
|
and doc-content import (`monday doc import-html/append-markdown`) —
|
|
312
344
|
closing the v0.4-M32 workdocs-mutation deferral. **16 new CLI
|
|
313
|
-
verbs across 9 wire mutations.**
|
|
314
|
-
— every v0.5 surface is additive. Built incrementally across
|
|
315
|
-
M34–M37. See [CHANGELOG.md](./CHANGELOG.md) for the full
|
|
316
|
-
per-milestone release notes.
|
|
345
|
+
verbs across 9 wire mutations.** Built incrementally across M34–M37.
|
|
317
346
|
|
|
318
|
-
**
|
|
319
|
-
registered but the canonical Monday OAuth app is not registered in
|
|
320
|
-
v0.5.0; the verb surfaces a clear `usage_error.details.reason:
|
|
321
|
-
oauth_unregistered` pointing at `MONDAY_API_TOKEN`. Multi-profile
|
|
322
|
-
config + per-profile credentials cache work fully against API
|
|
323
|
-
tokens; OAuth registration revisits in v0.5.x / v0.6 contingent on
|
|
324
|
-
user demand.
|
|
325
|
-
|
|
326
|
-
**v0.4.0 (the previous release):**
|
|
347
|
+
**v0.4.0 (the prior release):**
|
|
327
348
|
the v0.3 surface PLUS long-poll item activity streaming
|
|
328
349
|
(`monday item watch <iid>` — NDJSON), parallel bulk dispatch
|
|
329
350
|
(`monday item update --where ... --concurrency <N>`), asset uploads
|
|
@@ -333,7 +354,7 @@ workdocs CRUD mutation surface deferred to v0.5; shipped at v0.5),
|
|
|
333
354
|
and shell completion (`monday completion bash|zsh|fish`). Built
|
|
334
355
|
incrementally across M29–M33.
|
|
335
356
|
|
|
336
|
-
**v0.3.0 (the
|
|
357
|
+
**v0.3.0 (the earlier release):**
|
|
337
358
|
the v0.2 mutating core PLUS the Monday Dev convention layer
|
|
338
359
|
(`monday dev` namespace — sprint / epic / release / task workflow
|
|
339
360
|
shortcuts on top of standard board CRUD), multi-profile auth
|
|
@@ -623,22 +644,62 @@ row `tags`, `board_relation`, `dependency`.
|
|
|
623
644
|
D13 empirical-probe pinning (rejected at 500KB, OK at 250KB on
|
|
624
645
|
both surfaces).
|
|
625
646
|
|
|
626
|
-
**v0.6 (
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
`
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
647
|
+
**What v0.6 added (M38; full per-milestone narrative in
|
|
648
|
+
[CHANGELOG.md](./CHANGELOG.md)):**
|
|
649
|
+
|
|
650
|
+
- **M38** — `monday item set <iid> <file-col>=<path>` +
|
|
651
|
+
`monday item update <iid> --set <file-col>=<path>` ship the
|
|
652
|
+
files-shaped friendly `--set` writer path, closing the v0.4 →
|
|
653
|
+
v0.5 → v0.6 carry-over of the inline form. Sibling-branch
|
|
654
|
+
dispatch at the column-resolution boundary routes file `--set`
|
|
655
|
+
to the v0.4-M31 `add_file_to_column` multipart wire; the
|
|
656
|
+
friendly translator stays JSON-output-shaped for the 13
|
|
657
|
+
existing writable types (per D1 closure). Mutex rules at M38:
|
|
658
|
+
exactly one file `--set` per call; mixing a file `--set` with
|
|
659
|
+
any value `--set` / `--set-raw` / `--name` surfaces `usage_
|
|
660
|
+
error.details.reason: "mixed_file_and_value_sets"`; 2+ file
|
|
661
|
+
`--set` entries surface `usage_error.details.reason: "multi_
|
|
662
|
+
file_set_unsupported"` (both deferred to v0.6.x per D2). The
|
|
663
|
+
bulk `item update --where ... --set <file-col>=<path>` and
|
|
664
|
+
`item create --set <file-col>=<path>` paths reject at the
|
|
665
|
+
resolution boundary with `details.reason: "file_set_on_bulk_
|
|
666
|
+
unsupported"` / `"file_set_on_create_unsupported"` (D5 / D6 —
|
|
667
|
+
defer to v0.6.x). `--set-raw <file-col>=<json>` STAYS REJECTED
|
|
668
|
+
per D3 — Monday's wire has no JSON-shape for
|
|
669
|
+
`change_column_value` on file columns; `monday item upload`
|
|
670
|
+
from v0.4-M31 remains the verb-shaped alternative path. **No
|
|
671
|
+
new ERROR_CODES** at M38 (registry stays at 29 — all
|
|
672
|
+
rejections route through existing `usage_error` /
|
|
673
|
+
`unsupported_column_type` / `not_found` / `validation_failed`
|
|
674
|
+
codes with `details.reason` discrimination).
|
|
675
|
+
|
|
676
|
+
**v0.7 (next):** **Carry-forward backlog** (unpicked
|
|
677
|
+
candidates remain in cli-design.md §13 slipped-candidates list
|
|
678
|
+
pending future candidate-selection sessions): multi-level
|
|
679
|
+
subitems remain conditional on Monday's data model surfacing
|
|
680
|
+
them (slipped from v0.4 → v0.5 → v0.6 → v0.7 across three
|
|
681
|
+
consecutive release-preps — Monday's `sub_items_board` still
|
|
682
|
+
carries no `subtasks` column at API `2026-01`); cross-board
|
|
683
|
+
`item move` value-overrides (Monday's `ColumnMappingInput`
|
|
684
|
+
still carries no value slot — slipped three times for the same
|
|
685
|
+
reason); resumable cross-board cursor pagination (per-board
|
|
686
|
+
cursor-lifetime under aggregation needs design work);
|
|
687
|
+
profile-scoped argument defaults (filed at the v0.6 kickoff
|
|
688
|
+
candidate-selection session — extends `~/.monday-cli/config.toml`
|
|
689
|
+
with a `[profiles.<name>.defaults]` table carrying scoping args;
|
|
690
|
+
requires a prerequisite §13 carve-out Decision at pre-flight
|
|
691
|
+
distinguishing aliases-as-stored-command-strings (still
|
|
692
|
+
non-goal) from defaults-as-stored-flag-values (carve-out)).
|
|
693
|
+
**v0.6.x carve-outs** ride on top: bulk + create file `--set`
|
|
694
|
+
paths (D5 / D6 deferrals); multi-file `--set` per call (D2);
|
|
695
|
+
file-`--set` stdin support (D7); these defer to v0.6.x within
|
|
696
|
+
the v0.6 series.
|
|
637
697
|
|
|
638
698
|
See [`docs/cli-design.md`](./docs/cli-design.md) §13 for the
|
|
639
|
-
full roadmap, [`docs/v0.
|
|
640
|
-
v0.
|
|
641
|
-
for v0.
|
|
699
|
+
full roadmap, [`docs/v0.6-plan.md`](./docs/v0.6-plan.md) for the
|
|
700
|
+
v0.6 milestone history, [`docs/v0.5-plan.md`](./docs/v0.5-plan.md)
|
|
701
|
+
for v0.5, [`docs/v0.4-plan.md`](./docs/v0.4-plan.md) for v0.4,
|
|
702
|
+
[`docs/v0.3-plan.md`](./docs/v0.3-plan.md) for v0.3, and
|
|
642
703
|
[`docs/v0.2-plan.md`](./docs/v0.2-plan.md) for v0.2.
|
|
643
704
|
|
|
644
705
|
See [CHANGELOG.md](./CHANGELOG.md) for the per-release contract.
|
|
@@ -124,16 +124,30 @@ export declare const isReadOnlyForeverType: (type: string) => type is ReadOnlyFo
|
|
|
124
124
|
* column_values` (`cli-design.md` §5.3 writer-expansion roadmap "files"
|
|
125
125
|
* row + the escape-hatch contract).
|
|
126
126
|
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
127
|
+
* **Two write paths reach the multipart wire** post-v0.6-M38:
|
|
128
|
+
*
|
|
129
|
+
* - **v0.4-M31 verb-shaped**: `monday item upload <iid> --column
|
|
130
|
+
* <col> <file>` + `monday update upload <uid> <file>`. Direct
|
|
131
|
+
* multipart dispatch via `addFileToColumn` /
|
|
132
|
+
* `addFileToUpdate` (`src/api/assets.ts`).
|
|
133
|
+
* - **v0.6-M38 friendly translator**: `monday item set <iid>
|
|
134
|
+
* <file-col>=<path>` + `monday item update <iid> --set
|
|
135
|
+
* <file-col>=<path>`. Sibling dispatch leg at the command
|
|
136
|
+
* action body that detects `column.type === 'file'` AFTER
|
|
137
|
+
* resolution + routes through `executeFileColumnSet`
|
|
138
|
+
* (`src/api/file-column-set.ts`), which itself wraps M31's
|
|
139
|
+
* `addFileToColumn` verbatim. Single-item only at M38; mutex
|
|
140
|
+
* rules at the resolution boundary (D2/D5/D6 closures —
|
|
141
|
+
* bulk + create paths reject; mixed-set rejects; multi-file-
|
|
142
|
+
* set rejects).
|
|
143
|
+
*
|
|
144
|
+
* The `--set-raw <file-col>=<json>` form STAYS REJECTED at v0.6-M38
|
|
145
|
+
* per D3 closure — Monday's wire has no JSON-shape for
|
|
146
|
+
* `change_column_value` on file columns, and the escape-hatch
|
|
147
|
+
* contract "user supplies the JSON `change_column_value` accepts"
|
|
148
|
+
* doesn't compose with multipart. The rejection now points at
|
|
149
|
+
* BOTH write paths (M31 verb + M38 friendly `--set`) as
|
|
150
|
+
* alternatives.
|
|
137
151
|
*
|
|
138
152
|
* Currently one entry (`file`); the slot is plural because Monday may
|
|
139
153
|
* surface other multipart-upload-shaped types in future API versions
|
|
@@ -211,10 +225,14 @@ export declare const getColumnRoadmapCategory: (type: string) => ColumnRoadmapCa
|
|
|
211
225
|
* path` is `null` (agents can't write at all; the column
|
|
212
226
|
* exists for read-side display / mirror sources only).
|
|
213
227
|
* - `'files_shaped'`: Monday writes the type via `add_file_to_
|
|
214
|
-
* column` (multipart upload).
|
|
215
|
-
* <col> <file>`
|
|
216
|
-
* `
|
|
217
|
-
* `file
|
|
228
|
+
* column` (multipart upload). Two write paths post-v0.6-M38:
|
|
229
|
+
* `monday item upload <iid> --column <col> <file>` (M31; verb-
|
|
230
|
+
* shaped) + `monday item set <iid> <file-col>=<path>` /
|
|
231
|
+
* `monday item update <iid> --set <file-col>=<path>` (M38;
|
|
232
|
+
* friendly translator dispatch). `suggested_write_path` is a
|
|
233
|
+
* single human-readable string joining BOTH paths with ` OR `
|
|
234
|
+
* (R-v0.6-NEW-3 watch-item: lift to `readonly string[]` at the
|
|
235
|
+
* 2nd N>1 consumer). Currently `file` only.
|
|
218
236
|
*
|
|
219
237
|
* Returns `null` for canonical types (membership in `WRITABLE_COLUMN_
|
|
220
238
|
* TYPES`) — `column-create` skips emitting the warning when the type
|
|
@@ -228,11 +246,22 @@ export type NoncanonicalColumnTypeCategory = 'raw_writable' | 'read_only_forever
|
|
|
228
246
|
export interface NoncanonicalColumnTypeDetails {
|
|
229
247
|
readonly category: NoncanonicalColumnTypeCategory;
|
|
230
248
|
/**
|
|
231
|
-
* The path agents should use to write to the column post-
|
|
232
|
-
* matching cli-design §5.3 escape-hatch
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
249
|
+
* The path(s) agents should use to write to the column post-
|
|
250
|
+
* creation, matching cli-design §5.3 escape-hatch + dispatch
|
|
251
|
+
* contracts:
|
|
252
|
+
*
|
|
253
|
+
* - `raw_writable` types: `--set-raw <col>=<json>`.
|
|
254
|
+
* - `read_only_forever` types: `null` (no write path exists —
|
|
255
|
+
* the column exists for read-side display / mirror sources
|
|
256
|
+
* only).
|
|
257
|
+
* - `files_shaped` types post-v0.6-M38: a single human-readable
|
|
258
|
+
* string joining BOTH write paths with ` OR ` — the v0.6-M38
|
|
259
|
+
* friendly `monday item set <iid> <file-col>=<path>` /
|
|
260
|
+
* `monday item update <iid> --set <file-col>=<path>` dispatch
|
|
261
|
+
* AND the v0.4-M31 verb-shaped `monday item upload <iid>
|
|
262
|
+
* --column <col> <file>`. R-v0.6-NEW-3 watch-item: lift to
|
|
263
|
+
* `readonly string[]` at the 2nd N>1 consumer for structured
|
|
264
|
+
* enumeration.
|
|
236
265
|
*/
|
|
237
266
|
readonly suggestedWritePath: string | null;
|
|
238
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,qJA4BxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,kBAC/B,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,GAAG,IAAI,KAAG,OAOxD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,aAU9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,KACX,IAAI,IAAI,uBAA8D,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,4GAe1B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3E;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,mBAC5B,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,qBAAqB,qJA4BxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIxE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,kBAC/B,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,GAAG,IAAI,KAAG,OAOxD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,2BAA2B,aAU9B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,KACX,IAAI,IAAI,uBAA8D,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,4GAe1B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3E;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,mBAC5B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,kBAAkB,mBAAoB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMlE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,eAC7B,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,MAAM,qBAAqB,GAC7B,uBAAuB,GACvB,mBAAmB,GACnB,QAAQ,CAAC;AAEb,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,KACX,qBAIF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,8BAA8B,GACtC,cAAc,GACd,mBAAmB,GACnB,cAAc,CAAC;AAEnB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;IAClD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,gCAAgC,GAC3C,MAAM,MAAM,KACX,6BAA6B,GAAG,IAgBlC,CAAC"}
|
package/dist/api/column-types.js
CHANGED
|
@@ -186,16 +186,30 @@ export const isReadOnlyForeverType = (type) => READ_ONLY_FOREVER_SET.has(type);
|
|
|
186
186
|
* column_values` (`cli-design.md` §5.3 writer-expansion roadmap "files"
|
|
187
187
|
* row + the escape-hatch contract).
|
|
188
188
|
*
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
189
|
+
* **Two write paths reach the multipart wire** post-v0.6-M38:
|
|
190
|
+
*
|
|
191
|
+
* - **v0.4-M31 verb-shaped**: `monday item upload <iid> --column
|
|
192
|
+
* <col> <file>` + `monday update upload <uid> <file>`. Direct
|
|
193
|
+
* multipart dispatch via `addFileToColumn` /
|
|
194
|
+
* `addFileToUpdate` (`src/api/assets.ts`).
|
|
195
|
+
* - **v0.6-M38 friendly translator**: `monday item set <iid>
|
|
196
|
+
* <file-col>=<path>` + `monday item update <iid> --set
|
|
197
|
+
* <file-col>=<path>`. Sibling dispatch leg at the command
|
|
198
|
+
* action body that detects `column.type === 'file'` AFTER
|
|
199
|
+
* resolution + routes through `executeFileColumnSet`
|
|
200
|
+
* (`src/api/file-column-set.ts`), which itself wraps M31's
|
|
201
|
+
* `addFileToColumn` verbatim. Single-item only at M38; mutex
|
|
202
|
+
* rules at the resolution boundary (D2/D5/D6 closures —
|
|
203
|
+
* bulk + create paths reject; mixed-set rejects; multi-file-
|
|
204
|
+
* set rejects).
|
|
205
|
+
*
|
|
206
|
+
* The `--set-raw <file-col>=<json>` form STAYS REJECTED at v0.6-M38
|
|
207
|
+
* per D3 closure — Monday's wire has no JSON-shape for
|
|
208
|
+
* `change_column_value` on file columns, and the escape-hatch
|
|
209
|
+
* contract "user supplies the JSON `change_column_value` accepts"
|
|
210
|
+
* doesn't compose with multipart. The rejection now points at
|
|
211
|
+
* BOTH write paths (M31 verb + M38 friendly `--set`) as
|
|
212
|
+
* alternatives.
|
|
199
213
|
*
|
|
200
214
|
* Currently one entry (`file`); the slot is plural because Monday may
|
|
201
215
|
* surface other multipart-upload-shaped types in future API versions
|
|
@@ -227,7 +241,7 @@ export const categorizeNoncanonicalColumnType = (type) => {
|
|
|
227
241
|
if (isFilesShapedType(type)) {
|
|
228
242
|
return {
|
|
229
243
|
category: 'files_shaped',
|
|
230
|
-
suggestedWritePath: 'monday item upload (v0.4-M31
|
|
244
|
+
suggestedWritePath: 'monday item set <iid> <file-col>=<path> (v0.6-M38; friendly) OR monday item upload <iid> --column <col> <file> (v0.4-M31; verb-shaped)',
|
|
231
245
|
};
|
|
232
246
|
}
|
|
233
247
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM;IACN,WAAW;IACX,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,gEAAgE;IAChE,gEAAgE;IAChE,mEAAmE;IACnE,wBAAwB;IACxB,MAAM;IACN,iDAAiD;IACjD,4DAA4D;IAC5D,mDAAmD;IACnD,4BAA4B;IAC5B,gBAAgB;IAChB,qDAAqD;IACrD,8DAA8D;IAC9D,qDAAqD;IACrD,8DAA8D;IAC9D,4DAA4D;IAC5D,wCAAwC;IACxC,YAAY;CACJ,CAAC;AAIX,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAA8B,EAAE,CAC/E,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAkB,EAAW,EAAE;IACjE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;AACzC,0DAA0D;AAC1D,iEAAiE;AACjE,8DAA8D;AAC9D,yDAAyD;AACzD,0DAA0D;AAC1D,+DAA+D;AAC/D,2DAA2D;AAC3D,6DAA6D;AAC7D,wDAAwD;CAChD,CAAC;AAKX,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAC5D,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAAY,EACqB,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,QAAQ;IACR,SAAS;IACT,aAAa;IACb,cAAc;IACd,cAAc;IACd,SAAS;IACT,qEAAqE;IACrE,kEAAkE;IAClE,oEAAoE;IACpE,+DAA+D;IAC/D,kEAAkE;IAClE,gEAAgE;IAChE,qDAAqD;IACrD,gBAAgB;CACR,CAAC;AAIX,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CACxD,uBAAuB,CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAA+B,EAAE,CACjF,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAElC
|
|
1
|
+
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/api/column-types.ts"],"names":[],"mappings":"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"}
|