@dayofweek/dcli 1.5.0 → 1.7.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 CHANGED
@@ -72,6 +72,34 @@ Updates overwrite only files whose installed hash still matches the managed mani
72
72
 
73
73
  The legacy entity/proposal Agent Skill remains available through `dcli skill install` without a bundle name.
74
74
 
75
+ ### Shared skills
76
+
77
+ Beyond the named bundles above, users can publish their own skills into a shared knowledge area. Anyone who can read the area — or, with `--visibility company`, anyone in the publishing area's organization — can then discover, install, and update the skill. Service administrators can additionally publish with `--visibility global`, making a skill a shared starter for every user of the service; the desktop app syncs global skills into managed wikis automatically.
78
+
79
+ ```bash
80
+ # Publish a local skill directory (name/version come from SKILL.md frontmatter)
81
+ dcli skill publish --area <areaId> --dir .agents/skills/meeting-notes --visibility company
82
+
83
+ # Discover: --shared adds skills shared with you to the bundle listing
84
+ dcli skill list --shared --json
85
+
86
+ # Install by canonical URI, or by name + area
87
+ dcli skill install 'dayofweek://brain/<areaId>/skill/<skillId>'
88
+ dcli skill install meeting-notes --area <areaId>
89
+
90
+ # Update goes back to wherever the install came from
91
+ dcli skill update meeting-notes --area <areaId>
92
+ dcli skill update --dir .agents/skills/meeting-notes
93
+
94
+ # Check for newer versions without writing anything
95
+ dcli skill status meeting-notes --dir .agents/skills/meeting-notes --check
96
+
97
+ # Retire a shared skill you own
98
+ dcli skill archive 'dayofweek://brain/<areaId>/skill/<skillId>'
99
+ ```
100
+
101
+ Shared skills go through the same integrity pipeline as named bundles: per-file SHA-256 plus a manifest hash computed server-side and re-verified locally before anything touches disk, the same path-safety rules, and the same conflict handling — locally edited files are never overwritten. The install origin is recorded in `.dayofweek-skill.json`, so `skill update` and `skill status --check` know whether to ask the bundle endpoint or the shared-skill endpoint. Publishing requires write access to the area; `--visibility company` and `skill archive` require ownership.
102
+
75
103
  ## URI contract
76
104
 
77
105
  `dcli` accepts only exact canonical resource forms:
@@ -111,6 +139,55 @@ immediately, so treat them as something you do when a person has asked for that
111
139
  specific document — not as the normal path. The server rejects them for
112
140
  non-admin tokens.
113
141
 
142
+ ## Datasets
143
+
144
+ The platform offers additional read-only datasets beyond entities and
145
+ knowledge. The catalog is server-owned and discovered at runtime — what
146
+ `data list` returns is exactly what your credential may read.
147
+
148
+ ```bash
149
+ dcli data list --json
150
+ dcli data get <dataset> --limit 100 --json
151
+ ```
152
+
153
+ Responses are `{ dataset, total, truncated, rows }`. The CLI has no built-in
154
+ dataset names; new datasets appear in the listing without a CLI update.
155
+
156
+ ## Feedback backlog
157
+
158
+ The customer feedback backlog that humans and coding agents work together.
159
+
160
+ ```bash
161
+ dcli feedback next --json # what should I work on next
162
+ dcli feedback list --status backlog --json
163
+ dcli feedback show <itemId> --json
164
+ dcli feedback claim <itemId> --json # signal that you picked it up
165
+ dcli feedback comment <itemId> --body "Fixed in #482"
166
+ dcli feedback status <itemId> --status shipped
167
+ ```
168
+
169
+ Access follows the token's scopes: `read:feedback` for the reads,
170
+ `write:feedback` to comment, `admin:feedback` for claim/status/priority.
171
+ Day of Week staff hold all three implicitly.
172
+
173
+ ## Customer emails (staff)
174
+
175
+ Mail sent to a customer's own inbox address becomes a thread you can answer.
176
+ The commands appear once `dcli auth status` has cached your admin role.
177
+
178
+ ```bash
179
+ dcli emails list --status needs_reply --json
180
+ dcli emails show <threadKey> --json
181
+ dcli emails reply <threadKey> --message "..." --approved
182
+ dcli emails compose --entity <entityId> --to person@example.com \
183
+ --subject "..." --message "..." --approved
184
+ ```
185
+
186
+ `reply` and `compose` refuse to run without `--approved`. Sending mail as a
187
+ customer is irreversible and outward-facing, so it cannot happen as a side
188
+ effect of reading the inbox — a person approves the exact text first, and
189
+ `--approved` records that they did.
190
+
114
191
  ## Legacy platform commands
115
192
 
116
193
  Existing read/proposal workflows remain compatible:
@@ -135,11 +212,31 @@ Development commands:
135
212
  ```bash
136
213
  npm install
137
214
  npm test
138
- npm run build
215
+ npm run build # tsc + the dependency-free bundle
216
+ npm run build:bundle # just dist/bundle/dcli.cjs
139
217
  npm run standalone:build
140
218
  npm run standalone:smoke
141
219
  ```
142
220
 
221
+ ### What gets published
222
+
223
+ `npm run build` produces two runnable forms, and both ship:
224
+
225
+ - **`dist/bin/dcli.js`** — the normal entry point, the one `bin` points at. It
226
+ imports `commander` and `open` from `node_modules`, which is exactly right
227
+ when npm installed the package.
228
+ - **`dist/bundle/dcli.cjs`** — the same CLI with its dependencies compiled in,
229
+ runnable straight from an unpacked tarball.
230
+
231
+ The bundle exists for consumers that unpack the tarball themselves instead of
232
+ installing it, the Day of Week desktop app being the one that matters: it fetches
233
+ the published package and runs it with Electron's Node, so a customer with no
234
+ `node` and no `npm` still gets a working `dcli`. Without the bundle that install
235
+ starts and immediately fails on a missing `commander`.
236
+
237
+ Keep both. Dropping `dist/bundle/` from `files` silently breaks the desktop app's
238
+ dcli updates.
239
+
143
240
  ## License
144
241
 
145
242
  MIT