things-api 0.12.0 → 0.13.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/README.md +1 -1
- package/dist/cli/canonical-ref.d.ts +21 -0
- package/dist/cli/canonical-ref.js +23 -0
- package/dist/cli/canonical-ref.js.map +1 -0
- package/dist/cli/commands/area.js +27 -11
- package/dist/cli/commands/area.js.map +1 -1
- package/dist/cli/commands/install-skill.d.ts +2 -2
- package/dist/cli/commands/install-skill.js +29 -0
- package/dist/cli/commands/install-skill.js.map +1 -1
- package/dist/cli/commands/mcp.js +12 -1
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/project.js +73 -21
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/reads.d.ts +5 -1
- package/dist/cli/commands/reads.js +10 -3
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/setup.js +11 -4
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/show.js +45 -30
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/todo.js +1 -1
- package/dist/cli/commands/todo.js.map +1 -1
- package/dist/cli/commands/writes.js +31 -6
- package/dist/cli/commands/writes.js.map +1 -1
- package/dist/cli/did-you-mean.js +19 -5
- package/dist/cli/did-you-mean.js.map +1 -1
- package/dist/cli/dry-run.d.ts +55 -0
- package/dist/cli/dry-run.js +92 -0
- package/dist/cli/dry-run.js.map +1 -0
- package/dist/cli/help.js +7 -6
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +7 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/read-driver.d.ts +16 -6
- package/dist/cli/read-driver.js +19 -18
- package/dist/cli/read-driver.js.map +1 -1
- package/dist/cli/ref-render.d.ts +14 -0
- package/dist/cli/ref-render.js +9 -0
- package/dist/cli/ref-render.js.map +1 -0
- package/dist/cli/render.d.ts +21 -6
- package/dist/cli/render.js +73 -34
- package/dist/cli/render.js.map +1 -1
- package/dist/cli/resolve-invocation.d.ts +5 -3
- package/dist/cli/resolve-invocation.js +13 -4
- package/dist/cli/resolve-invocation.js.map +1 -1
- package/dist/client.d.ts +18 -7
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +12 -1
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/db/baselines/db-v26.js +4 -1
- package/dist/db/baselines/db-v26.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +81 -42
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/entities.d.ts +11 -1
- package/dist/model/entities.js.map +1 -1
- package/dist/model/mappers.js +3 -0
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/serialize.js +15 -3
- package/dist/model/serialize.js.map +1 -1
- package/dist/read/area-filter.d.ts +2 -2
- package/dist/read/area-filter.js +5 -6
- package/dist/read/area-filter.js.map +1 -1
- package/dist/read/area-view.d.ts +11 -0
- package/dist/read/area-view.js +5 -1
- package/dist/read/area-view.js.map +1 -1
- package/dist/read/project-view.d.ts +61 -1
- package/dist/read/project-view.js +74 -9
- package/dist/read/project-view.js.map +1 -1
- package/dist/read/queries.d.ts +71 -2
- package/dist/read/queries.js +199 -10
- package/dist/read/queries.js.map +1 -1
- package/dist/read/scope.d.ts +2 -2
- package/dist/read/scope.js +5 -6
- package/dist/read/scope.js.map +1 -1
- package/dist/read/shape.d.ts +36 -17
- package/dist/read/shape.js +251 -200
- package/dist/read/shape.js.map +1 -1
- package/dist/read/show-target.js +52 -33
- package/dist/read/show-target.js.map +1 -1
- package/dist/read/truncation.d.ts +0 -7
- package/dist/read/truncation.js +24 -14
- package/dist/read/truncation.js.map +1 -1
- package/dist/read/views.d.ts +19 -7
- package/dist/read/views.js +13 -12
- package/dist/read/views.js.map +1 -1
- package/dist/surface-copy.d.ts +7 -0
- package/dist/surface-copy.js +7 -0
- package/dist/surface-copy.js.map +1 -1
- package/dist/write/commands.js +3 -1
- package/dist/write/commands.js.map +1 -1
- package/dist/write/move.d.ts +10 -6
- package/dist/write/move.js +417 -76
- package/dist/write/move.js.map +1 -1
- package/dist/write/operations.d.ts +1 -1
- package/dist/write/operations.js.map +1 -1
- package/dist/write/pre-state.d.ts +10 -0
- package/dist/write/pre-state.js +118 -41
- package/dist/write/pre-state.js.map +1 -1
- package/dist/write/reorder.js +263 -29
- package/dist/write/reorder.js.map +1 -1
- package/package.json +1 -1
- package/schema/envelope.schema.json +14 -0
- package/skills/things-cli/SKILL.md +6 -4
- package/skills/things-cli/references/contracts.md +3 -1
- package/skills/things-cli/references/errors.md +9 -1
- package/skills/things-cli/references/model.md +6 -4
- package/skills/things-cli/references/ordering.md +21 -4
package/dist/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAUvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAkE;IACxF;QACE,KAAK,EAAE,kCAAkC;QACzC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;KACnF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;KAC7E;IACD;QACE,KAAK,EAAE,iCAAiC;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;KACzE;IACD;QACE,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE;YACR,QAAQ;YACR,QAAQ;YACR,cAAc;YACd,OAAO;YACP,eAAe;YACf,KAAK;YACL,UAAU;YACV,QAAQ;SACT;KACF;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAyC;IACzD,QAAQ;IACR,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE;IAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;IAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACrE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;IAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE;IACnE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE;IACzE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,6CAA6C,EAAE;IACxE,kBAAkB;IAClB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,8CAA8C,EAAE;IAC7E,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,8CAA8C,EAAE;IAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,6CAA6C,EAAE;IAChF,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE;IAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACzD,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,mDAAmD,EAAE;IAChF,QAAQ;IACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,4CAA4C,EAAE;IAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,6CAA6C,EAAE;IAChF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,2CAA2C,EAAE;IAC3E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,gCAAgC,EAAE;IAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,sCAAsC,EAAE;IACvE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;IACzE,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,oDAAoD;KAC3D;IACD,sBAAsB;IACtB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,sCAAsC,EAAE;IACxE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE;IACxE,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE;IACtE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,wCAAwC,EAAE;IACzE,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE;IAChF,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,kDAAkD,EAAE;IAC3E,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE;IACpE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,yCAAyC,EAAE;CACtE,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qEAAqE;AACrE,SAAS,IAAI,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvD,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE;YAAE,GAAG,GAAG,SAAS,CAAC;aACvD,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,GAAW;IACvE,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,KAAa;IAChE,KAAK,OAAO,CAAC;IACb,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,mEAAmE;IACnE,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,KAAK,IAAI,GAAG,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IACF,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,WAAW;QACzB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,GAAG,IAAI,CAAC,CAAC;IAET,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,SAAS;gBAAE,SAAS;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CACR,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,mFAAmF,CAC7G,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CACR,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,gFAAgF,CAC7G,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,WAAW,GAAG,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IACzF,KAAK,CAAC,IAAI,CACR,uFAAuF,CACxF,CAAC;IACF,KAAK,CAAC,IAAI,CACR,uFAAuF,CACxF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,kBAAkB,GAAsB;IAC5C,gFAAgF;IAChF,gLAAgL;IAChL,iJAAiJ;IACjJ,2IAA2I;IAC3I,kHAAkH;IAClH,0IAA0I;IAC1I,sEAAsE;IACtE,kFAAkF;IAClF,sMAAsM;IACtM,0HAA0H;IAC1H,qPAAqP;CACtP,CAAC;AAEF,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,CAAC,0DAA0D,EAAE,EAAE,CAAC,CAAC;IAC7E,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,aAAa,GAAqC;IACtD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAuC2E;IAEpF,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA6BK;IAEV,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;wFAoB8E;IAEtF,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAuC+D;IAEvE,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FAuCkF;IAExF,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFA6BoE;CAChF,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,OAAO;IACP,SAAS;IACT,KAAK;IACL,MAAM;IACN,QAAQ;IACR,WAAW;IACX,QAAQ;CACT,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,6EAA6E;IAC7E,OAAO,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC;IAChF,0EAA0E;IAC1E,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,uEAAuE,CAAC;SACpF,MAAM,CAAC,CAAC,SAAmB,EAAE,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,0CAA0C;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,IAAI,GAAG,GAAwB,OAAO,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAClF,IAAI,GAAG,KAAK,SAAS;gBAAE,MAAM;QAC/B,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACzC,GAAG,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;YACxD,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACrC,6BAA6B,CAChC,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/cli/main.js
CHANGED
|
@@ -21,6 +21,7 @@ import { registerSnapshot } from "./commands/snapshot.js";
|
|
|
21
21
|
import { registerTodoCommands } from "./commands/todo.js";
|
|
22
22
|
import { registerWriteCommands } from "./commands/writes.js";
|
|
23
23
|
import { resolveInvocation } from "./resolve-invocation.js";
|
|
24
|
+
import { applyUniversalDryRun } from "./dry-run.js";
|
|
24
25
|
import { runVerbHint } from "./verb-hint.js";
|
|
25
26
|
import { detectMoveHint, runMoveHint } from "./move-hint.js";
|
|
26
27
|
import { setRenderClock } from "./clock.js";
|
|
@@ -53,6 +54,12 @@ export function buildProgram() {
|
|
|
53
54
|
// improved excess-argument message names the command and its usage line.
|
|
54
55
|
registerHelp(program);
|
|
55
56
|
installExcessArgsHelp(program);
|
|
57
|
+
// Universal `--dry-run` (docs/design/cli-grammar.md): last, so EVERY command
|
|
58
|
+
// registered above — reads, local-side-effect commands, and any future one —
|
|
59
|
+
// inherits the flag. The write verbs already declare their own visible flag
|
|
60
|
+
// and are skipped; the rest gain a hidden one (reads ignore it and stay
|
|
61
|
+
// byte-identical; the side-effect commands' actions honor it).
|
|
62
|
+
applyUniversalDryRun(program);
|
|
56
63
|
return program;
|
|
57
64
|
}
|
|
58
65
|
export function runCli() {
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type ThingsClient, type Truncation, type ViewFilterMeta } from "../index.ts";
|
|
2
2
|
/**
|
|
3
3
|
* Shape a read payload into its envelope `data` object (the 1.0 contract, R1/R2):
|
|
4
|
-
* `data` is always an object. Flat lists
|
|
5
|
-
*
|
|
6
|
-
* `{ sections
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* `data` is always an object. Flat lists (incl. `today`, one flat `items[]` of
|
|
5
|
+
* Today members) become `{ items }`; the sectioned catalogues (anytime/someday)
|
|
6
|
+
* become `{ sections }`; the composite cards become `{ view }`; a single-entity
|
|
7
|
+
* detail becomes `{ item }`. Everything already object-shaped (open/snapshot/…)
|
|
8
|
+
* passes through. The human-render path keeps the raw inner payload — this
|
|
9
|
+
* transform is the JSON emit boundary only. `today`'s whole-view `counts`
|
|
10
|
+
* aggregate rides `meta.counts`, not `data` (runRead), so `data` stays pure rows.
|
|
10
11
|
*/
|
|
11
12
|
export declare function wrapEnvelopeData(kind: string, data: unknown): unknown;
|
|
12
13
|
export interface GlobalReadOpts {
|
|
@@ -52,6 +53,15 @@ export interface PagedResult<T> {
|
|
|
52
53
|
kind?: string;
|
|
53
54
|
/** Active content filter (the `--area` scope) — carried into `meta.filter`. */
|
|
54
55
|
filter?: ViewFilterMeta;
|
|
56
|
+
/**
|
|
57
|
+
* Whole-view aggregate counts — the today view's due/overdue vs. other split
|
|
58
|
+
* (the app's sidebar count). Carried into `meta.counts`; absent for views that
|
|
59
|
+
* have no such aggregate.
|
|
60
|
+
*/
|
|
61
|
+
counts?: {
|
|
62
|
+
dueOrOverdue: number;
|
|
63
|
+
other: number;
|
|
64
|
+
};
|
|
55
65
|
/**
|
|
56
66
|
* Additional non-blocking advisories from the read itself (ADDITIVE), merged
|
|
57
67
|
* with the schema-drift warnings into `meta.warnings` (and echoed once on
|
package/dist/cli/read-driver.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { getInvocation } from "./resolve-invocation.js";
|
|
9
9
|
import { dim } from "./style.js";
|
|
10
10
|
import { viewHeaderLines } from "./render.js";
|
|
11
|
+
import { setRenderRefPromoter } from "./ref-render.js";
|
|
11
12
|
import { candidatesJson, DidYouMeanError, didYouMeanMessage, renderDidYouMean, } from "./did-you-mean.js";
|
|
12
13
|
import { ClockError, DEFAULT_LIST_LIMIT, errorEnvelope, ExitCode, okEnvelope, omitEmpty, openThings, shapeReadPayload, ReferenceResolutionError, schemaWarnings, ThingsDbNotFoundError, ThingsDbOpenError, } from "../index.js";
|
|
13
14
|
/**
|
|
@@ -16,6 +17,7 @@ import { ClockError, DEFAULT_LIST_LIMIT, errorEnvelope, ExitCode, okEnvelope, om
|
|
|
16
17
|
*/
|
|
17
18
|
const ITEMS_WRAPPER_KINDS = new Set([
|
|
18
19
|
"inbox",
|
|
20
|
+
"today",
|
|
19
21
|
"upcoming",
|
|
20
22
|
"logbook",
|
|
21
23
|
"trash",
|
|
@@ -27,28 +29,19 @@ const ITEMS_WRAPPER_KINDS = new Set([
|
|
|
27
29
|
]);
|
|
28
30
|
/**
|
|
29
31
|
* Shape a read payload into its envelope `data` object (the 1.0 contract, R1/R2):
|
|
30
|
-
* `data` is always an object. Flat lists
|
|
31
|
-
*
|
|
32
|
-
* `{ sections
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
32
|
+
* `data` is always an object. Flat lists (incl. `today`, one flat `items[]` of
|
|
33
|
+
* Today members) become `{ items }`; the sectioned catalogues (anytime/someday)
|
|
34
|
+
* become `{ sections }`; the composite cards become `{ view }`; a single-entity
|
|
35
|
+
* detail becomes `{ item }`. Everything already object-shaped (open/snapshot/…)
|
|
36
|
+
* passes through. The human-render path keeps the raw inner payload — this
|
|
37
|
+
* transform is the JSON emit boundary only. `today`'s whole-view `counts`
|
|
38
|
+
* aggregate rides `meta.counts`, not `data` (runRead), so `data` stays pure rows.
|
|
36
39
|
*/
|
|
37
40
|
export function wrapEnvelopeData(kind, data) {
|
|
38
41
|
if (ITEMS_WRAPPER_KINDS.has(kind))
|
|
39
42
|
return { items: data };
|
|
40
43
|
if (kind === "anytime" || kind === "someday")
|
|
41
44
|
return { sections: data };
|
|
42
|
-
if (kind === "today") {
|
|
43
|
-
const view = data;
|
|
44
|
-
return {
|
|
45
|
-
sections: [
|
|
46
|
-
{ key: "today", items: view.today },
|
|
47
|
-
{ key: "evening", items: view.evening },
|
|
48
|
-
],
|
|
49
|
-
badge: view.badge,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
45
|
if (kind === "area-view" || kind === "project-view")
|
|
53
46
|
return { view: data };
|
|
54
47
|
if (kind === "detail")
|
|
@@ -92,10 +85,16 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
|
|
|
92
85
|
let client = null;
|
|
93
86
|
try {
|
|
94
87
|
client = openThings(opts.db ? { dbPath: opts.db } : {});
|
|
88
|
+
// Arm the render-time ref promoter so human list rows can promote an inline
|
|
89
|
+
// container hint's uuid prefix (TTY only — the JSON path never calls the
|
|
90
|
+
// renderers). Grouped views render inside `fn`, so this must precede it;
|
|
91
|
+
// cleared in `finally`. The `--json` envelope shapes its own refs separately.
|
|
92
|
+
if (!opts.json)
|
|
93
|
+
setRenderRefPromoter(client.refPromoter());
|
|
95
94
|
const fp = client.fingerprint();
|
|
96
95
|
// Reads never block on a schema change — they warn (design decision). The
|
|
97
96
|
// note reuses the same cached fingerprint the write path gates on.
|
|
98
|
-
const { data, truncation, kind: kindOverride, filter, warnings: readWarnings, lines: precomputed, } = fn(client);
|
|
97
|
+
const { data, truncation, kind: kindOverride, filter, counts, warnings: readWarnings, lines: precomputed, } = fn(client);
|
|
99
98
|
// Schema-drift advisories plus any read-specific advisories (e.g. the loose
|
|
100
99
|
// pseudo-area resolution-shadow disclosure).
|
|
101
100
|
const warnings = [...schemaWarnings(client.schemaStatus()), ...(readWarnings ?? [])];
|
|
@@ -119,6 +118,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
|
|
|
119
118
|
...(warnings.length > 0 && { warnings }),
|
|
120
119
|
...(clock !== undefined && { clock }),
|
|
121
120
|
...(filter !== undefined && { filter }),
|
|
121
|
+
...(counts !== undefined && { counts }),
|
|
122
122
|
...(scope !== undefined && { scope }),
|
|
123
123
|
};
|
|
124
124
|
// Human output gets the note once on STDERR (never mixed into the piped
|
|
@@ -131,7 +131,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
|
|
|
131
131
|
// Omit-empty applies to the entity/data payload only (contracts.md); the
|
|
132
132
|
// envelope meta/truncation is untouched, and the human render below keeps
|
|
133
133
|
// the full, unpruned `data`.
|
|
134
|
-
const shaped = shapeReadPayload(effectiveKind, data, opts.full === true);
|
|
134
|
+
const shaped = shapeReadPayload(effectiveKind, data, opts.full === true, client.refPromoter());
|
|
135
135
|
process.stdout.write(`${JSON.stringify(okEnvelope(effectiveKind, omitEmpty(wrapEnvelopeData(effectiveKind, shaped)), meta))}\n`);
|
|
136
136
|
}
|
|
137
137
|
else {
|
|
@@ -216,6 +216,7 @@ export function runRead(opts, kind, fn, render, hintBase, header) {
|
|
|
216
216
|
process.exitCode = isEnv ? ExitCode.Environment : ExitCode.Unexpected;
|
|
217
217
|
}
|
|
218
218
|
finally {
|
|
219
|
+
setRenderRefPromoter(null); // never leak a closed-DB promoter past this read
|
|
219
220
|
client?.close();
|
|
220
221
|
}
|
|
221
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-driver.js","sourceRoot":"","sources":["../../src/cli/read-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"read-driver.js","sourceRoot":"","sources":["../../src/cli/read-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CLI's process-wide render-time ref promoter — the same module-state
|
|
3
|
+
* pattern the render clock (./clock.ts) and width fit (./width.ts) use. The read
|
|
4
|
+
* driver sets it (from `client.refPromoter()`) before rendering human output and
|
|
5
|
+
* clears it after, so the pure renderers can decide whether an INLINE container
|
|
6
|
+
* hint should promote its uuid prefix — `(Family)` → `(Family [TC9yozLk])` —
|
|
7
|
+
* using the SAME round-trip predicate the JSON `*Uuid` promotion uses (no fork).
|
|
8
|
+
* Unset (the default, and in unit tests that import the renderers directly) it is
|
|
9
|
+
* null, so a container hint stays the bare `(title)` — byte-identical output.
|
|
10
|
+
*/
|
|
11
|
+
import type { RefPromoter } from "../index.ts";
|
|
12
|
+
export declare function setRenderRefPromoter(p: RefPromoter | null): void;
|
|
13
|
+
/** The active render-time promoter, or null (host default — no inline promotion). */
|
|
14
|
+
export declare function renderRefPromoter(): RefPromoter | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
let promoter = null;
|
|
2
|
+
export function setRenderRefPromoter(p) {
|
|
3
|
+
promoter = p;
|
|
4
|
+
}
|
|
5
|
+
/** The active render-time promoter, or null (host default — no inline promotion). */
|
|
6
|
+
export function renderRefPromoter() {
|
|
7
|
+
return promoter;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ref-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref-render.js","sourceRoot":"","sources":["../../src/cli/ref-render.ts"],"names":[],"mappings":"AAYA,IAAI,QAAQ,GAAuB,IAAI,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,CAAqB;IACxD,QAAQ,GAAG,CAAC,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/cli/render.d.ts
CHANGED
|
@@ -39,6 +39,14 @@ export interface FormatOpts {
|
|
|
39
39
|
/** Container uuids already implied by surrounding output — their context suffix is dropped. */
|
|
40
40
|
suppressProject?: string | null;
|
|
41
41
|
suppressArea?: string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Hint the row's HEADING (muted `(Heading)`) instead of its container — the
|
|
44
|
+
* project-view LOGBOOK rows, where a swept child of an OPEN heading labels its
|
|
45
|
+
* heading (the two-view asymmetry, HEADARC2-B: the in-project logged toggle
|
|
46
|
+
* labels the heading; the global Logbook labels the project). No-op on a row
|
|
47
|
+
* with no heading (falls back to the normal container/area hint).
|
|
48
|
+
*/
|
|
49
|
+
headingContext?: boolean;
|
|
42
50
|
/** Reference instant for date-relative tokens (tests pin this; defaults to now). */
|
|
43
51
|
now?: Date;
|
|
44
52
|
/** Pre-styled Today/Evening mark (★/⏾), rendered right after the box — GUI position. */
|
|
@@ -104,12 +112,19 @@ export declare function uuidDisplayWidth(items: Array<{
|
|
|
104
112
|
export declare function uuidCol(uuid: string, width: number): string;
|
|
105
113
|
export declare function renderList(items: ListItem[]): string[];
|
|
106
114
|
/**
|
|
107
|
-
* The `things today`
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* the
|
|
115
|
+
* The `things today` view. The wire is one flat `items[]` of Today members; the
|
|
116
|
+
* TTY re-projects the GUI's two render sections from each row's `when` — a
|
|
117
|
+
* Today-proper block (`when: "today"`) and a This-Evening block
|
|
118
|
+
* (`when: "evening"`). The whole-view `counts` aggregate (the app's sidebar
|
|
119
|
+
* count) renders at the TOP as card-style metadata lines (indented `key: value`,
|
|
120
|
+
* the same convention `things project show` / `things area show` use), so the
|
|
121
|
+
* section header itself stays clean (`── ★ Today ──`).
|
|
122
|
+
*
|
|
123
|
+
* The membership glyph lives in the SECTION HEADER, not on every row — a yellow ★
|
|
124
|
+
* in the Today header and a blue ⏾ in the This Evening header — so the rows drop
|
|
125
|
+
* the redundant per-item marker (the same convention that suppresses a
|
|
126
|
+
* `(project)` context inside that project's own view). Every OTHER view keeps the
|
|
127
|
+
* per-row ★/⏾, where the marker still carries information.
|
|
113
128
|
*
|
|
114
129
|
* A PROVISIONAL Today member (the wire's presence-keyed `provisional`, BANNER1
|
|
115
130
|
* law — a Today entrant the app has not yet materialized, banner-counted until
|
package/dist/cli/render.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* (agents and humans both need stable references); colors engage on a TTY only
|
|
8
8
|
* (../cli/style.ts).
|
|
9
9
|
*/
|
|
10
|
-
import { entityProvisional, entityWhen, localToday, partitionSomedaySection, splitSectionBlocks, templateStatus, } from "../index.js";
|
|
10
|
+
import { entityProvisional, entityWhen, localToday, partitionSomedaySection, splitSectionBlocks, templateStatus, REF_PREFIX_LEN, } from "../index.js";
|
|
11
11
|
import { renderNow, renderZone } from "./clock.js";
|
|
12
|
+
import { renderRefPromoter } from "./ref-render.js";
|
|
12
13
|
import { bold, dim, strike, underline } from "./style.js";
|
|
13
14
|
import { areaMark, CHECKLIST_MARK, containerLabel, countChip, dateChip, deadlineToken, eveningMoon, LEGEND, LEGEND_GROUPS, loggedDate, NOTES_MARK, projectCircle, projectTitleAccent, provisionalPip, REMINDER_MARK, todayStar, todoBox, } from "./glyphs.js";
|
|
14
15
|
import { FULL_MONTHS, upcomingBucket } from "./period.js";
|
|
@@ -52,6 +53,19 @@ export function renderLegend() {
|
|
|
52
53
|
}
|
|
53
54
|
/** Wraps a `#a #b` tag form in the row's dim styling (incl. its leading space). */
|
|
54
55
|
const styleTags = (form) => ` ${dim(form)}`;
|
|
56
|
+
/**
|
|
57
|
+
* The inline `[8charPrefix]` a container hint promotes when its bare title would
|
|
58
|
+
* NOT round-trip — the SAME predicate the JSON `*Uuid` promotion uses (the render
|
|
59
|
+
* promoter, ./ref-render.ts). Empty (bare `(title)`) when the promoter is unset
|
|
60
|
+
* (non-TTY / tests / no DB) or the title resolves back cleanly. A project/area
|
|
61
|
+
* container never carries a heading scope, so `projectUuid` stays undefined.
|
|
62
|
+
*/
|
|
63
|
+
function promotedRefBracket(ref, kind) {
|
|
64
|
+
const p = renderRefPromoter();
|
|
65
|
+
if (p === null || p.roundTrips(kind, ref.title, ref.uuid))
|
|
66
|
+
return "";
|
|
67
|
+
return ` [${ref.uuid.slice(0, REF_PREFIX_LEN)}]`;
|
|
68
|
+
}
|
|
55
69
|
/**
|
|
56
70
|
* One item line:
|
|
57
71
|
* `<uuid-prefix> <box> [★|⏾] [logged-date] [‹chip›] <title> [‹n›] [⍾] [≡] [≔] (container) #tags [⚑ deadline]`.
|
|
@@ -127,18 +141,27 @@ export function formatItem(item, uuidWidth = 0, opts = {}) {
|
|
|
127
141
|
? ` ${bold(dim("⚑"))}`
|
|
128
142
|
: "";
|
|
129
143
|
const container = item.type === "to-do" ? (item.project ?? item.headingProject ?? null) : null;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
:
|
|
138
|
-
?
|
|
144
|
+
// A project-view LOGBOOK row hints its HEADING (the in-project logged toggle
|
|
145
|
+
// labels the heading — HEADARC2-B) rather than the suppressed project.
|
|
146
|
+
const headingHint = opts.headingContext === true && item.type === "to-do" && item.heading !== null
|
|
147
|
+
? ` (${item.heading.title})`
|
|
148
|
+
: null;
|
|
149
|
+
const context = headingHint !== null
|
|
150
|
+
? headingHint
|
|
151
|
+
: container !== null
|
|
152
|
+
? container.uuid === opts.suppressProject
|
|
139
153
|
? ""
|
|
140
|
-
:
|
|
141
|
-
|
|
154
|
+
: // The ↻ prefix (containerLabel) marks a container that is a repeating
|
|
155
|
+
// TEMPLATE project — the whole `(…)` run is dimmed below, so the mark
|
|
156
|
+
// rides the muted container styling. Areas never carry the flag. The
|
|
157
|
+
// fused uuid-prefix rides when the title would not round-trip (shared
|
|
158
|
+
// promotion predicate — the same one JSON `*Uuid` promotion uses).
|
|
159
|
+
` (${containerLabel(container.title, container.isRepeatingTemplate === true)}${promotedRefBracket(container, "project")})`
|
|
160
|
+
: item.area
|
|
161
|
+
? item.area.uuid === opts.suppressArea
|
|
162
|
+
? ""
|
|
163
|
+
: ` (${item.area.title}${promotedRefBracket(item.area, "area")})`
|
|
164
|
+
: "";
|
|
142
165
|
// width 0 (the default) means "no column" — show the full uuid untouched.
|
|
143
166
|
const shownUuid = uuidWidth > 0 ? uuidCol(item.uuid, uuidWidth) : item.uuid;
|
|
144
167
|
// Title styling composes four independent channels (docs/design/render-
|
|
@@ -331,13 +354,22 @@ export function renderList(items) {
|
|
|
331
354
|
* {@link entityProvisional}, the SAME law the wire emit boundary uses.
|
|
332
355
|
*/
|
|
333
356
|
const provisionalRowOpts = (i) => entityProvisional(i) ? { mark: provisionalPip() } : {};
|
|
357
|
+
/** A today row's This-Evening membership — the SAME `when` axis the wire carries. */
|
|
358
|
+
const isEveningRow = (i) => entityWhen(i) === "evening";
|
|
334
359
|
/**
|
|
335
|
-
* The `things today`
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
* the
|
|
360
|
+
* The `things today` view. The wire is one flat `items[]` of Today members; the
|
|
361
|
+
* TTY re-projects the GUI's two render sections from each row's `when` — a
|
|
362
|
+
* Today-proper block (`when: "today"`) and a This-Evening block
|
|
363
|
+
* (`when: "evening"`). The whole-view `counts` aggregate (the app's sidebar
|
|
364
|
+
* count) renders at the TOP as card-style metadata lines (indented `key: value`,
|
|
365
|
+
* the same convention `things project show` / `things area show` use), so the
|
|
366
|
+
* section header itself stays clean (`── ★ Today ──`).
|
|
367
|
+
*
|
|
368
|
+
* The membership glyph lives in the SECTION HEADER, not on every row — a yellow ★
|
|
369
|
+
* in the Today header and a blue ⏾ in the This Evening header — so the rows drop
|
|
370
|
+
* the redundant per-item marker (the same convention that suppresses a
|
|
371
|
+
* `(project)` context inside that project's own view). Every OTHER view keeps the
|
|
372
|
+
* per-row ★/⏾, where the marker still carries information.
|
|
341
373
|
*
|
|
342
374
|
* A PROVISIONAL Today member (the wire's presence-keyed `provisional`, BANNER1
|
|
343
375
|
* law — a Today entrant the app has not yet materialized, banner-counted until
|
|
@@ -365,32 +397,39 @@ const provisionalRowOpts = (i) => entityProvisional(i) ? { mark: provisionalPip(
|
|
|
365
397
|
* because that section is deliberately filtered out, not merely empty.
|
|
366
398
|
*/
|
|
367
399
|
export function renderToday(view, sections, base, options) {
|
|
368
|
-
//
|
|
400
|
+
// The two render sections are re-projected from each row's `when` (the SAME
|
|
401
|
+
// axis the wire carries), so the TTY split can never disagree with the JSON.
|
|
402
|
+
const todayRows = view.items.filter((i) => !isEveningRow(i));
|
|
403
|
+
const eveningRows = view.items.filter(isEveningRow);
|
|
404
|
+
// Pre-cap totals from the truncation metadata; fall back to the shown rows'
|
|
369
405
|
// own lengths when a caller hands an unbounded view with no section counts.
|
|
370
|
-
const todayTotal = sections?.find((s) => s.key === "today")?.total ??
|
|
371
|
-
const eveningTotal = sections?.find((s) => s.key === "evening")?.total ??
|
|
372
|
-
const w = uuidDisplayWidth(
|
|
406
|
+
const todayTotal = sections?.find((s) => s.key === "today")?.total ?? todayRows.length;
|
|
407
|
+
const eveningTotal = sections?.find((s) => s.key === "evening")?.total ?? eveningRows.length;
|
|
408
|
+
const w = uuidDisplayWidth(view.items);
|
|
373
409
|
const eveningOnly = options?.eveningOnly === true;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
410
|
+
// The whole-view counts, at the TOP as card-style metadata lines (the
|
|
411
|
+
// project/area-show header convention). A `0` is meaningful, so both always show.
|
|
412
|
+
const lines = [
|
|
413
|
+
` ${dim("due/overdue:")} ${view.counts.dueOrOverdue}`,
|
|
414
|
+
` ${dim("other:")} ${view.counts.other}`,
|
|
415
|
+
];
|
|
416
|
+
if (!eveningOnly) {
|
|
417
|
+
lines.push(`${bold("──")} ${todayStar()} ${bold("Today ──")}`, ...(todayRows.length === 0
|
|
418
|
+
? ["(empty)"]
|
|
419
|
+
: todayRows.map((i) => formatItem(i, w, provisionalRowOpts(i)))));
|
|
420
|
+
}
|
|
382
421
|
if (eveningTotal > 0) {
|
|
383
422
|
// A blank line before the header matches every other grouped renderer's
|
|
384
423
|
// section spacing — but only when the Today section rendered above it. In
|
|
385
|
-
// --evening mode the header
|
|
424
|
+
// --evening mode the header follows the count lines directly, no blank.
|
|
386
425
|
if (!eveningOnly)
|
|
387
426
|
lines.push("");
|
|
388
427
|
lines.push(`${bold("──")} ${eveningMoon()} ${bold("This Evening ──")}`);
|
|
389
|
-
for (const i of
|
|
428
|
+
for (const i of eveningRows)
|
|
390
429
|
lines.push(formatItem(i, w, provisionalRowOpts(i)));
|
|
391
|
-
const hidden = eveningTotal -
|
|
430
|
+
const hidden = eveningTotal - eveningRows.length;
|
|
392
431
|
if (hidden > 0) {
|
|
393
|
-
const more =
|
|
432
|
+
const more = eveningRows.length > 0 ? "more " : "";
|
|
394
433
|
const count = `${hidden} ${more}evening item${hidden === 1 ? "" : "s"}`;
|
|
395
434
|
// Normal Today view: the global truncation footer already carries the
|
|
396
435
|
// quantity levers (a bigger --limit / --all), so this hint is a pure
|