kushi-agents 4.8.2 → 4.8.3
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kushi-agents",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.3",
|
|
4
4
|
"description": "Install Kushi — multi-source project evidence agent with snapshot+stream capture across Email, Teams, OneNote, Loop, SharePoint, Meetings, CRM, ADO. WorkIQ-only for M365 sources (Graph / m365_* FORBIDDEN as fallbacks; user-paste is first-class). Host-agnostic.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -85,13 +85,13 @@ The `setup` skill (added v4.4.4) extends this doctrine beyond identity to cover
|
|
|
85
85
|
| `project-evidence.yml` | `identity.alias` / `display_name` / `email` | YES | WorkIQ "Who am I?" |
|
|
86
86
|
| `project-evidence.yml` | `identity_status`, `identity_verified_at` | YES | written by setup |
|
|
87
87
|
| `project-evidence.yml` | `projects_root` | YES | cwd-ancestor detection; otherwise prompt |
|
|
88
|
-
| `project-evidence.yml` | `default_onenote_notebook` | **
|
|
88
|
+
| `project-evidence.yml` | `default_onenote_notebook` | **DEPRECATED (display-only as of v4.8.3)** | display-only mirror of `m365-auth.json#oneNote.defaultNotebookName`. NEVER gates OneNote. The `<skip>` sentinel is deprecated. |
|
|
89
89
|
| `project-evidence.yml` | `active_projects[]` | YES (list, may be empty) | the project arg if dispatched from `bootstrap <project>`; otherwise leave existing |
|
|
90
90
|
| `project-evidence.yml` | `workiq.cli_path` | OPTIONAL | only written when discovered via PATH/fallback, not already pinned |
|
|
91
91
|
| `m365-auth.json` | `_meta.owner` | YES | `<identity.email>` |
|
|
92
92
|
| `m365-auth.json` | `oneNote.defaultLinkOwner` | YES (when OneNote enabled) | `<identity.email>` — the user's own UPN, since OneNote queries default to the user's personal notebook |
|
|
93
93
|
| `m365-auth.json` | `oneNote.defaultNotebookId` | **NOT WRITTEN (kushi v4.7.3+)** | Per `workiq-onenote-query-shape.instructions.md`, WorkIQ has no notebook-ID lookup surface — any such probe punts to Graph Explorer. Setup persists `defaultNotebookName` only; section IDs are discovered per-section at bootstrap/refresh time using the natural-language WorkIQ pattern. |
|
|
94
|
-
| `m365-auth.json` | `oneNote.enabled` | YES | `false` when
|
|
94
|
+
| `m365-auth.json` | `oneNote.enabled` | YES | **default `true` (kushi v4.8.3+).** Single source of truth — the only field that gates OneNote across kushi. Set to `false` ONLY when the contributor explicitly opts out via `setup` or by hand. The legacy `project-evidence.yml#default_onenote_notebook == "<skip>"` sentinel is deprecated and no longer consulted. |
|
|
95
95
|
| `m365-auth.json` | `emailContext.folders[]` | OPTIONAL | user prompt: comma-sep list / `all` / blank. `all` or blank → `[]` (full mailbox) |
|
|
96
96
|
| `m365-auth.json` | `sharePointContext.localProjectsRoot` | YES | mirrors `<projects_root>` |
|
|
97
97
|
|
|
@@ -101,10 +101,12 @@ The `setup` skill (added v4.4.4) extends this doctrine beyond identity to cover
|
|
|
101
101
|
|
|
102
102
|
The `setup` skill does the deeper recovery (3-retry loop with `ask_user` choices).
|
|
103
103
|
|
|
104
|
-
### OneNote —
|
|
104
|
+
### OneNote — enabled by default, single switch (kushi v4.8.3+)
|
|
105
105
|
|
|
106
|
-
-
|
|
107
|
-
-
|
|
106
|
+
- **Default:** `m365Auth.oneNote.enabled: true`. OneNote is opt-out, not opt-in.
|
|
107
|
+
- **Single source of truth:** `m365Auth.oneNote.enabled` is the ONLY field that gates OneNote across kushi. Downstream skills (`pull-onenote`, `bootstrap-project` Step 4) MUST NOT inspect `project-evidence.yml#default_onenote_notebook` to decide whether to run OneNote.
|
|
108
|
+
- User explicitly opted out → set `oneNote.enabled: false`, leave other OneNote fields blank, OneNote source becomes a no-op (reported as `not-applicable` in run logs). Re-enable by hand-editing `m365-auth.json` (`enabled: true`) or by running `setup --reconfigure`.
|
|
109
|
+
- User gave a notebook name (or accepted the `ISE Work` default) → keep `enabled: true`, persist `defaultNotebookName`. Do NOT query WorkIQ for the notebook ID (per `workiq-onenote-query-shape.instructions.md` — no notebook-inventory surface). Section IDs are discovered per-section at bootstrap/refresh time.
|
|
108
110
|
- `defaultLinkOwner` is ALWAYS the user's own UPN unless the user explicitly overrides (shared/team-owned notebook case).
|
|
109
111
|
|
|
110
112
|
### Mailbox folders — multi-value with "all" sentinel
|
|
@@ -131,9 +133,10 @@ Both `all` and blank persist as `[]`. ALWAYS print after persisting:
|
|
|
131
133
|
```
|
|
132
134
|
Edit these files later if anything changes:
|
|
133
135
|
• <workspace>/.kushi/config/user/project-evidence.yml
|
|
134
|
-
identity, projects_root,
|
|
136
|
+
identity, projects_root, active_projects, workiq.cli_path
|
|
137
|
+
(default_onenote_notebook is display-only since v4.8.3 — edit m365-auth.json to enable/disable)
|
|
135
138
|
• <workspace>/.kushi/config/user/m365-auth.json
|
|
136
|
-
OneNote
|
|
139
|
+
OneNote enable/disable + notebook name (oneNote.enabled, oneNote.defaultNotebookName), email folder list, SharePoint root
|
|
137
140
|
• <workspace>/.kushi/config/shared/integrations.yml (team-wide; commit changes)
|
|
138
141
|
CRM environmentUrl + tenantId, ADO organization + project
|
|
139
142
|
|
|
@@ -126,24 +126,25 @@ Also write:
|
|
|
126
126
|
|
|
127
127
|
Bootstrap + refresh MUST refuse to start if `projects_root_status` is `syncing` or `manual-sync-pending` (see Step 6 footer).
|
|
128
128
|
|
|
129
|
-
4d. **OneNote (
|
|
129
|
+
4d. **OneNote (ENABLED BY DEFAULT — kushi v4.8.3+).** OneNote is on by default and gated by a **single switch**: `m365Auth.oneNote.enabled` in `m365-auth.json`. The `project-evidence.yml#default_onenote_notebook` field is now display-only and is NEVER used to gate OneNote (the `<skip>` sentinel is deprecated; existing values are tolerated but ignored).
|
|
130
130
|
|
|
131
|
-
`
|
|
131
|
+
Check `m365Auth.oneNote.enabled` AND `m365Auth.oneNote.defaultNotebookName`:
|
|
132
132
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
> • **No / not yet** — skip OneNote (you can enable later by editing `m365-auth.json` and re-running `@Kushi setup --reconfigure`)
|
|
133
|
+
- `enabled` is missing → set `true` (default-on).
|
|
134
|
+
- `defaultNotebookName` is a placeholder (`<Your Notebook Name>` / `<auto>` / empty) → prompt only for the notebook name (NOT for enable/disable). `ask_user`:
|
|
136
135
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
- Echo: `OneNote enabled. Notebook: "<name>". Section IDs will be discovered at bootstrap-project / refresh time via WorkIQ natural-language queries.`
|
|
136
|
+
> Which OneNote notebook does kushi pull from on this engagement?
|
|
137
|
+
> • **Use my default work notebook** — `ISE Work` (recommended for Microsoft consultants)
|
|
138
|
+
> • **A different notebook** — paste the exact display name
|
|
139
|
+
> • **Disable OneNote on this machine** — only pick if you genuinely never use OneNote (you can re-enable later by editing `m365-auth.json`)
|
|
142
140
|
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
-
|
|
141
|
+
- Default/different notebook: persist `defaultNotebookName: "<name>"` + ensure `enabled: true`. Do NOT auto-resolve a notebook ID via WorkIQ (per `workiq-onenote-query-shape.instructions.md`).
|
|
142
|
+
- Disable: set `enabled: false`, leave other OneNote fields blank, echo: `OneNote disabled for this contributor. Pull-onenote will report 'not-applicable' in run logs. Re-enable by setting m365Auth.oneNote.enabled: true in m365-auth.json.`
|
|
143
|
+
|
|
144
|
+
- `defaultNotebookName` is already populated AND `enabled: true` → silent skip.
|
|
145
|
+
- `enabled: false` (explicitly opted out previously) → silent skip; OneNote stays disabled. `--reconfigure` re-asks.
|
|
146
|
+
|
|
147
|
+
**Single source of truth:** Downstream skills (`pull-onenote`, bootstrap Step 4) gate ONLY on `m365Auth.oneNote.enabled`. Never inspect `default_onenote_notebook` to decide whether to run OneNote.
|
|
147
148
|
|
|
148
149
|
4d-loop. **Microsoft Loop (OPTIONAL — skip-friendly).** Check `default_loop_workspace` in `project-evidence.yml`. If it's a placeholder (`<Your Loop Workspace>` / `<auto>` / `<skip>` / empty):
|
|
149
150
|
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
},
|
|
17
17
|
"oneNote": {
|
|
18
18
|
"enabled": true,
|
|
19
|
-
"_enabled_note": "Set to false
|
|
20
|
-
"defaultNotebookName": "
|
|
21
|
-
"_defaultNotebookName_note": "
|
|
19
|
+
"_enabled_note": "DEFAULT-ON as of kushi v4.8.3. Single source of truth for whether OneNote runs anywhere in kushi. Set to false ONLY when this contributor genuinely does not use OneNote on this engagement; pull-onenote then no-ops and reports the source as `not-applicable` in run logs.",
|
|
20
|
+
"defaultNotebookName": "ISE Work",
|
|
21
|
+
"_defaultNotebookName_note": "Default notebook kushi pulls from. `ISE Work` is the standard Microsoft consultant notebook; override here or via `@Kushi setup` if you use a different one.",
|
|
22
22
|
"defaultNotebookId": "",
|
|
23
23
|
"_defaultNotebookId_note": "Optional. Auto-populated by `@Kushi setup` from defaultNotebookName via WorkIQ. Leave blank to defer.",
|
|
24
24
|
"defaultSectionResolverUrl": "",
|
|
@@ -30,11 +30,11 @@ email: <auto>
|
|
|
30
30
|
# macOS : '/Users/<you>/OneDrive - <Tenant>/<Team>/Engagement Assets'
|
|
31
31
|
projects_root: '<engagement-root>'
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
37
|
-
default_onenote_notebook:
|
|
33
|
+
# DEPRECATED as of v4.8.3 — display-only mirror of m365-auth.json#oneNote.defaultNotebookName.
|
|
34
|
+
# Does NOT gate OneNote. The single switch is m365Auth.oneNote.enabled in m365-auth.json
|
|
35
|
+
# (default `true`). To disable OneNote, set that field to false (or pick "Disable OneNote"
|
|
36
|
+
# during `@Kushi setup`). The legacy `<skip>` sentinel is tolerated but ignored.
|
|
37
|
+
default_onenote_notebook: ISE Work
|
|
38
38
|
|
|
39
39
|
# FILL ME IN — projects you actively work on. Kushi scans only these unless
|
|
40
40
|
# you ask otherwise. Match is fuzzy against subfolder names under projects_root.
|