@notis_ai/cli 0.2.0-beta.157.1 → 0.2.0-beta.158.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-hooks/notis-agent-hook.mjs +8296 -7912
- package/dist/base-skills/notis-apps/SKILL.md +21 -483
- package/dist/base-skills/notis-apps/references/architecture.md +147 -0
- package/dist/base-skills/notis-apps/references/design.md +154 -0
- package/dist/base-skills/notis-apps/references/release.md +93 -0
- package/dist/base-skills/notis-apps/references/sdk.md +60 -0
- package/dist/base-skills/notis-apps/references/troubleshooting.md +26 -0
- package/dist/base-skills/notis-cli/SKILL.md +19 -200
- package/dist/base-skills/notis-cli/references/app-delivery.md +18 -0
- package/dist/base-skills/notis-cli/references/native-databases.md +20 -0
- package/dist/base-skills/notis-cli/references/tool-examples.md +56 -0
- package/dist/base-skills/notis-cli/references/troubleshooting.md +39 -0
- package/dist/base-skills/notis-query/SKILL.md +13 -651
- package/dist/base-skills/notis-query/references/database-discovery.md +59 -0
- package/dist/base-skills/notis-query/references/documents.md +50 -0
- package/dist/base-skills/notis-query/references/query.md +543 -0
- package/dist/skill-sync/index.js +24 -7
- package/dist/skill-sync/index.js.map +4 -4
- package/dist/skill-sync-worker.mjs +2989 -0
- package/package.json +1 -1
- package/src/cli.js +4 -0
- package/src/command-specs/diagnostics.js +37 -0
- package/src/command-specs/skills.js +23 -5
- package/src/runtime/profiles.js +5 -2
- package/src/runtime/skill-sync/cloud-client.ts +2 -1
- package/src/runtime/skill-sync/index.ts +24 -6
- package/src/runtime/skill-sync/types.ts +2 -0
- package/src/runtime/skill-sync-service.js +109 -0
- package/src/skill-sync-worker-entry.js +2 -0
- package/src/skill-sync-worker.js +50 -0
- package/template/packages/sdk/src/components/MultiSelectActionBar.tsx +36 -7
- package/template/packages/sdk/src/components/MultiSelectCheckbox.tsx +3 -1
- package/template/packages/sdk/src/hooks/useCollectionInteractions.ts +138 -28
- package/template/packages/sdk/src/hooks/useLongPressSelection.ts +79 -0
- package/template/packages/sdk/src/hooks/useMultiSelect.ts +2 -8
- package/template/packages/sdk/src/index.ts +3 -0
- package/template/packages/sdk/src/interactions/actions.ts +14 -1
- package/template/packages/sdk/src/interactions/shortcuts.tsx +79 -19
- package/template/packages/sdk/src/interactions/visibility.ts +13 -0
- package/template/packages/sdk/src/interactions.ts +3 -0
|
@@ -4,6 +4,7 @@ description: Use when agents should work through the Notis CLI, especially to de
|
|
|
4
4
|
feature_flag: cli_access
|
|
5
5
|
mcp_resource: true
|
|
6
6
|
mcp_tool_patterns: []
|
|
7
|
+
mcp_references: ["references/app-delivery.md", "references/tool-examples.md", "references/native-databases.md", "references/troubleshooting.md"]
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Notis CLI Skill
|
|
@@ -14,7 +15,6 @@ This skill covers two main CLI workflows:
|
|
|
14
15
|
|
|
15
16
|
1. Developing Notis apps locally.
|
|
16
17
|
2. Accessing Notis, Composio, and MCP tools through the CLI.
|
|
17
|
-
|
|
18
18
|
## When to use this skill
|
|
19
19
|
|
|
20
20
|
Activate this skill when:
|
|
@@ -71,81 +71,15 @@ This is especially important when:
|
|
|
71
71
|
|
|
72
72
|
Treat the Notis CLI the same way you would treat a Composio-style tool router flow: discover what is available first, then execute the right tool through the CLI.
|
|
73
73
|
|
|
74
|
-
##
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
For an existing released app, preserve local edits and pull its exact app ID into the intended
|
|
84
|
-
directory. Retain the profile/app link, deployment version and revision. An unreleased container
|
|
85
|
-
has no source to pull: recover its original local source and edits, or scaffold locally only if
|
|
86
|
-
that source cannot be recovered. Confirm its exact ID, edit permission and personal/team scope,
|
|
87
|
-
then run `apps link <app-id> <source-directory> --expected-version 0` to resume that same container.
|
|
88
|
-
If a release has appeared, preserve local source separately, pull the current release into a fresh
|
|
89
|
-
directory and reapply the intended edits. The link guard compares against the same remote read
|
|
90
|
-
whose version/revision it saves; deploy still rejects a release racing after that read. Do not pull
|
|
91
|
-
missing source or create another remote app to recover a failed first release.
|
|
92
|
-
2. Scaffold a new app locally, or edit the pulled source. Run `apps build` and automated
|
|
93
|
-
`apps verify` before new remote creation. Missing browser tooling or failed checks blocks delivery;
|
|
94
|
-
printed URLs and `--no-browser` are not passing verification. Install browser tooling with
|
|
95
|
-
`npm exec --yes --package agent-browser@latest -- agent-browser install`; if needed run
|
|
96
|
-
`npx --yes --package @notis_ai/cli@latest --package agent-browser@latest -- notis apps verify`.
|
|
97
|
-
3. Reconcile `apps list --json` and the exact intended name/slug, edit permission and personal/team
|
|
98
|
-
scope. Default to personal only when no team was requested. Reuse a matching editable identity;
|
|
99
|
-
stop on ambiguous matches or conflicting identity/scope. Create only when none exists, using
|
|
100
|
-
`apps create "<exact app name>" .` (or `--team-id <verified team ID>`). Read back the same ID.
|
|
101
|
-
A failed first release leaves a container: reuse it, never duplicate or automatically delete it.
|
|
102
|
-
4. Compare existing app-owned schemas. Create only necessary missing databases against that exact
|
|
103
|
-
app ID. Change existing schemas by verified database ID and ownership, and only with backward-
|
|
104
|
-
compatible changes before release. Read back each change. Breaking changes need separate coordination.
|
|
105
|
-
Ordinary note/record edits and existing resource editors remain immediate.
|
|
106
|
-
5. Run `apps deploy` against the same linked app. It builds, verifies a frozen source/artifact
|
|
107
|
-
snapshot with stubs, then sends that snapshot to the backend. `--skip-build` accepts only unchanged,
|
|
108
|
-
valid output and still verifies. Do not bypass the backend or create implicitly on deploy.
|
|
109
|
-
6. Read back the exact installed app ID, integer version and Portal URL with `apps list --json`.
|
|
110
|
-
Run `apps verify --mode live` and open the installed app in the actual Portal for surface proof.
|
|
111
|
-
A live harness check alone does not prove the deployed bundle rendered in Portal.
|
|
112
|
-
7. Report **failed before activation**, **deployed but unverified**, or **outcome unknown** accurately.
|
|
113
|
-
Never blindly replay an uncertain create/deploy response; reconcile its exact identity/version first.
|
|
114
|
-
`apps publish --confirm-ready` is **Publish to Store**, separately approved and listing-gated.
|
|
115
|
-
Workspace delivery is **Update app**, with no Store screenshot/readiness requirement.
|
|
116
|
-
|
|
117
|
-
### Restore historical source as a new release
|
|
118
|
-
|
|
119
|
-
Pull the current release into a fresh checkout first. Retrieve historical source into a different
|
|
120
|
-
folder (`apps pull <id> <historical-dir> --source-version <n>`). Replace source in the current checkout
|
|
121
|
-
without replacing its `.notis` profile/app link or deployment base. Update `package.json`'s
|
|
122
|
-
`notisAppVersion`, check compatibility with current resources, build, verify and deploy as a new
|
|
123
|
-
release. Preserve app/database/skill IDs. Never decrement the deployment counter, rewrite snapshots,
|
|
124
|
-
or claim to undo user data or external actions.
|
|
125
|
-
|
|
126
|
-
## IMPORTANT: When NOT to use tool access for app development
|
|
127
|
-
|
|
128
|
-
When building or deploying a Notis app, do NOT use `npx --package @notis_ai/cli@latest -- notis tools exec` for app file operations:
|
|
129
|
-
|
|
130
|
-
- Loading or saving app files -- use `npx --package @notis_ai/cli@latest -- notis apps build` and `npx --package @notis_ai/cli@latest -- notis apps deploy`
|
|
131
|
-
- Linting app files -- use `npx --package @notis_ai/cli@latest -- notis apps build` which validates automatically
|
|
132
|
-
- Managing app routes -- write standard Vite + React pages in `app/`, not raw JS files
|
|
133
|
-
|
|
134
|
-
Database schemas are the exception: declaring a slug in `notis.config.ts` does
|
|
135
|
-
not create it. Use the discovery-first native database tool workflow to
|
|
136
|
-
create/update and read back each app-owned schema before deployment. Tool calls
|
|
137
|
-
are also valid for testing runtime behavior after deployment.
|
|
138
|
-
|
|
139
|
-
## Section 2: Accessing Tools Through the Notis CLI
|
|
140
|
-
|
|
141
|
-
Use this section when the current agent does not already have the right tool and needs to reach tools through Notis.
|
|
142
|
-
|
|
143
|
-
This is the main escape hatch for:
|
|
144
|
-
|
|
145
|
-
- direct MCP access
|
|
146
|
-
- Composio-backed integrations
|
|
147
|
-
- native Notis tools that are available through the generic CLI tool bridge
|
|
148
|
-
- any task where you need to discover the canonical tool name and schema before execution
|
|
74
|
+
## User and repository policy takes precedence
|
|
75
|
+
|
|
76
|
+
Default delivery below applies only when no more restrictive user or repository
|
|
77
|
+
instruction exists. Explicit preview-only/no-deploy requests and standing requirements
|
|
78
|
+
for explicit deployment consent override the default. Preserve that authority across
|
|
79
|
+
local and cloud runs. For local-only work, build and run stub verification; do not
|
|
80
|
+
create remote resources or activate an app. `apps dev` is not a supported delivery
|
|
81
|
+
path; use the CLI's documented build/verification harness. Store publication remains
|
|
82
|
+
separately authorized.
|
|
149
83
|
|
|
150
84
|
### Tool access workflow
|
|
151
85
|
|
|
@@ -193,129 +127,14 @@ discovery request before every connected-service action.
|
|
|
193
127
|
- Use `--reconnect` to replace an existing connection. If multiple accounts exist, select one with `--connection-id <id>`.
|
|
194
128
|
- For API keys, basic auth, or other credential JSON, prefer `--credentials -` and pipe or redirect stdin. Avoid inline secrets because they can enter shell history and process listings.
|
|
195
129
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
Typical toolkit namespaces include:
|
|
199
|
-
|
|
200
|
-
- `notis` for native Notis tools
|
|
201
|
-
- `composio-*` for Composio-backed integrations
|
|
202
|
-
- `mcp-*` for MCP-backed tools
|
|
203
|
-
|
|
204
|
-
The pattern is:
|
|
205
|
-
|
|
206
|
-
1. discover toolkits
|
|
207
|
-
2. search tools
|
|
208
|
-
3. inspect schema if needed
|
|
209
|
-
4. execute the canonical tool
|
|
210
|
-
|
|
211
|
-
### Tool access examples
|
|
212
|
-
|
|
213
|
-
Find a tool:
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
npx --package @notis_ai/cli@latest -- notis tools toolkits
|
|
217
|
-
npx --package @notis_ai/cli@latest -- notis tools search "list today's calendar events"
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
Inspect a tool before execution:
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
npx --package @notis_ai/cli@latest -- notis tools describe composio-googlecalendar-list_events
|
|
224
|
-
npx --package @notis_ai/cli@latest -- notis tools exec composio-googlecalendar-list_events --get-schema
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Dry-run a tool call:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --dry-run --arguments '{"database_slug":"tasks"}'
|
|
231
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --dry-run --arguments '{"database_id":"tasks-db-id","query":{"page_size":10}}'
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
Execute a tool call:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --arguments '{"database_slug":"tasks"}'
|
|
238
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments '{"database_id":"tasks-db-id","query":{"page_size":10}}'
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
Connect a missing toolkit:
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
npx --package @notis_ai/cli@latest -- notis tools link github
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Reconnect a credential-based toolkit without putting the secret in shell history:
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
npx --package @notis_ai/cli@latest -- notis tools link dataforseo --reconnect --credentials - < credentials.json
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
## Native database access
|
|
254
|
-
|
|
255
|
-
Native Notis databases are accessed through the generic tool workflow, not a first-class database command group. Use these canonical tool names:
|
|
256
|
-
|
|
257
|
-
- `LOCAL_NOTIS_DATABASE_LIST_DATABASES` -- list databases accessible to the current profile
|
|
258
|
-
- `LOCAL_NOTIS_DATABASE_GET_DATABASE` -- inspect read-only metadata and schema detail
|
|
259
|
-
- `LOCAL_NOTIS_DATABASE_QUERY` -- query documents from a database
|
|
260
|
-
- `LOCAL_NOTIS_DATABASE_UPSERT_DATABASE` -- create or update a database schema. Every database belongs to a Notis app: creation requires the owning app's slug or id in the `app` argument (create the app first with `LOCAL_NOTIS_CREATE_APP` if needed)
|
|
261
|
-
|
|
262
|
-
Example workflow before building an app:
|
|
263
|
-
|
|
264
|
-
```bash
|
|
265
|
-
npx --package @notis_ai/cli@latest -- notis tools search "list Notis databases"
|
|
266
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_LIST_DATABASES --arguments '{}'
|
|
267
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --get-schema
|
|
268
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --arguments '{"database_slug":"social_media_calendar"}'
|
|
269
|
-
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments '{"database_id":"social-media-calendar-db-id","query":{"page_size":1}}'
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
When `LOCAL_NOTIS_DATABASE_LIST_DATABASES` or `LOCAL_NOTIS_DATABASE_GET_DATABASE` returns a database ID, prefer `database_id` for `LOCAL_NOTIS_DATABASE_QUERY`; `database_slug` remains supported as a fallback.
|
|
273
|
-
|
|
274
|
-
## Supporting commands
|
|
275
|
-
|
|
276
|
-
- `npx --package @notis_ai/cli@latest -- notis whoami` — confirm which account and endpoint a command will target
|
|
277
|
-
- `npx --package @notis_ai/cli@latest -- notis doctor` — verify CLI config, auth, routing, and API reachability before relying on the CLI
|
|
278
|
-
- `npx --package @notis_ai/cli@latest -- notis describe <command...>` — get the exact command contract for first-class CLI commands
|
|
279
|
-
|
|
280
|
-
## Summary
|
|
281
|
-
|
|
282
|
-
Use `notis-cli` for two things:
|
|
283
|
-
|
|
284
|
-
1. local app development through `npx --package @notis_ai/cli@latest -- notis apps ...`
|
|
285
|
-
2. tool discovery and execution through `npx --package @notis_ai/cli@latest -- notis tools ...`
|
|
286
|
-
|
|
287
|
-
Most importantly: if you do not currently have the tool you need, especially for direct MCP or integration work, use the Notis CLI instead of treating the task as blocked.
|
|
288
|
-
|
|
289
|
-
## Troubleshooting
|
|
290
|
-
|
|
291
|
-
### CLI returns `auth_expired` or `auth_missing`
|
|
292
|
-
|
|
293
|
-
The profile's browser authorization has lapsed or was never granted. Run
|
|
294
|
-
`notis login` (add `--profile <name>` when the failing profile is not the
|
|
295
|
-
active one) and have the user approve the browser prompt. In JSON/agent mode
|
|
296
|
-
the first hint is the exact command to run. Do not copy refresh tokens into
|
|
297
|
-
commands or try to mint a credential yourself.
|
|
298
|
-
|
|
299
|
-
If the profile is a `dev-*` one, the fix is to restart `./dev.sh` in the
|
|
300
|
-
workspace it belongs to, or to switch to a real account profile.
|
|
301
|
-
|
|
302
|
-
### Deploy fails with "network_error" or "fetch failed"
|
|
303
|
-
|
|
304
|
-
Run `notis doctor` to verify the effective profile and endpoint. Read back the exact app ID,
|
|
305
|
-
version and release state before retrying. An uncertain network response is not proof of rollback.
|
|
306
|
-
There is no direct storage deployment path. Repair authentication when needed without changing the
|
|
307
|
-
intended profile, then reconcile the previous outcome before starting a new release.
|
|
308
|
-
|
|
309
|
-
Localhost backends are a Notis-developer test lane owned by `./dev.sh` and its lease-backed profile.
|
|
310
|
-
Do not silently switch between that lane and a live account.
|
|
311
|
-
|
|
312
|
-
### Health or tool-roundtrip errors
|
|
313
|
-
|
|
314
|
-
Local scaffold/build and stub verification can run without an API connection (dependencies and
|
|
315
|
-
browser tooling must already be available). `link`, `pull`, `create`, `list`, `deploy`, live verification
|
|
316
|
-
and Store operations require the intended backend. Never bypass it.
|
|
130
|
+
## Task guides
|
|
317
131
|
|
|
318
|
-
|
|
132
|
+
Read only the guide needed for this task. Relative links resolve in the skill bundle.
|
|
133
|
+
For hosted MCP, fetch the matching `notis://docs/notis-cli/references/<file>.md` URI
|
|
134
|
+
with resources/read or the available Notis resource-fetch tool; the root resource
|
|
135
|
+
also rewrites these links to their published URIs.
|
|
319
136
|
|
|
320
|
-
|
|
321
|
-
|
|
137
|
+
- [App delivery](references/app-delivery.md)
|
|
138
|
+
- [Toolkit mental model](references/tool-examples.md)
|
|
139
|
+
- [Native database access](references/native-databases.md)
|
|
140
|
+
- [Supporting commands](references/troubleshooting.md)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# App delivery
|
|
2
|
+
|
|
3
|
+
Use the canonical `notis-apps` skill’s entrypoint and [release guide](../../notis-apps/references/release.md).
|
|
4
|
+
For hosted MCP fetch `notis://docs/notis-apps` and `notis://docs/notis-apps/references/release.md`.
|
|
5
|
+
User/repository no-deploy and explicit-consent policies take precedence over default delivery.
|
|
6
|
+
|
|
7
|
+
## IMPORTANT: When NOT to use tool access for app development
|
|
8
|
+
|
|
9
|
+
When building or deploying a Notis app, do NOT use `npx --package @notis_ai/cli@latest -- notis tools exec` for app file operations:
|
|
10
|
+
|
|
11
|
+
- Loading or saving app files -- use `npx --package @notis_ai/cli@latest -- notis apps build` and `npx --package @notis_ai/cli@latest -- notis apps deploy`
|
|
12
|
+
- Linting app files -- use `npx --package @notis_ai/cli@latest -- notis apps build` which validates automatically
|
|
13
|
+
- Managing app routes -- write standard Vite + React pages in `app/`, not raw JS files
|
|
14
|
+
|
|
15
|
+
Database schemas are the exception: declaring a slug in `notis.config.ts` does
|
|
16
|
+
not create it. Use the discovery-first native database tool workflow to
|
|
17
|
+
create/update and read back each app-owned schema before deployment. Tool calls
|
|
18
|
+
are also valid for testing runtime behavior after deployment.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## Native database access
|
|
2
|
+
|
|
3
|
+
Native Notis databases are accessed through the generic tool workflow, not a first-class database command group. Use these canonical tool names:
|
|
4
|
+
|
|
5
|
+
- `LOCAL_NOTIS_DATABASE_LIST_DATABASES` -- list databases accessible to the current profile
|
|
6
|
+
- `LOCAL_NOTIS_DATABASE_GET_DATABASE` -- inspect read-only metadata and schema detail
|
|
7
|
+
- `LOCAL_NOTIS_DATABASE_QUERY` -- query documents from a database
|
|
8
|
+
- `LOCAL_NOTIS_DATABASE_UPSERT_DATABASE` -- create or update a database schema. Every database belongs to a Notis app: creation requires the owning app's slug or id in the `app` argument (create the app first with `LOCAL_NOTIS_CREATE_APP` if needed)
|
|
9
|
+
|
|
10
|
+
Example workflow before building an app:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx --package @notis_ai/cli@latest -- notis tools search "list Notis databases"
|
|
14
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_LIST_DATABASES --arguments '{}'
|
|
15
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --get-schema
|
|
16
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --arguments '{"database_slug":"social_media_calendar"}'
|
|
17
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments '{"database_id":"social-media-calendar-db-id","query":{"page_size":1}}'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
When `LOCAL_NOTIS_DATABASE_LIST_DATABASES` or `LOCAL_NOTIS_DATABASE_GET_DATABASE` returns a database ID, prefer `database_id` for `LOCAL_NOTIS_DATABASE_QUERY`; `database_slug` remains supported as a fallback.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
### Toolkit mental model
|
|
2
|
+
|
|
3
|
+
Typical toolkit namespaces include:
|
|
4
|
+
|
|
5
|
+
- `notis` for native Notis tools
|
|
6
|
+
- `composio-*` for Composio-backed integrations
|
|
7
|
+
- `mcp-*` for MCP-backed tools
|
|
8
|
+
|
|
9
|
+
The pattern is:
|
|
10
|
+
|
|
11
|
+
1. discover toolkits
|
|
12
|
+
2. search tools
|
|
13
|
+
3. inspect schema if needed
|
|
14
|
+
4. execute the canonical tool
|
|
15
|
+
|
|
16
|
+
### Tool access examples
|
|
17
|
+
|
|
18
|
+
Find a tool:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx --package @notis_ai/cli@latest -- notis tools toolkits
|
|
22
|
+
npx --package @notis_ai/cli@latest -- notis tools search "list today's calendar events"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Inspect a tool before execution:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx --package @notis_ai/cli@latest -- notis tools describe composio-googlecalendar-list_events
|
|
29
|
+
npx --package @notis_ai/cli@latest -- notis tools exec composio-googlecalendar-list_events --get-schema
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Dry-run a tool call:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --dry-run --arguments '{"database_slug":"tasks"}'
|
|
36
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --dry-run --arguments '{"database_id":"tasks-db-id","query":{"page_size":10}}'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Execute a tool call:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_GET_DATABASE --arguments '{"database_slug":"tasks"}'
|
|
43
|
+
npx --package @notis_ai/cli@latest -- notis tools exec LOCAL_NOTIS_DATABASE_QUERY --arguments '{"database_id":"tasks-db-id","query":{"page_size":10}}'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Connect a missing toolkit:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx --package @notis_ai/cli@latest -- notis tools link github
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Reconnect a credential-based toolkit without putting the secret in shell history:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx --package @notis_ai/cli@latest -- notis tools link dataforseo --reconnect --credentials - < credentials.json
|
|
56
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
## Supporting commands
|
|
2
|
+
|
|
3
|
+
- `npx --package @notis_ai/cli@latest -- notis whoami` — confirm which account and endpoint a command will target
|
|
4
|
+
- `npx --package @notis_ai/cli@latest -- notis doctor` — verify CLI config, auth, routing, and API reachability before relying on the CLI
|
|
5
|
+
- `npx --package @notis_ai/cli@latest -- notis describe <command...>` — get the exact command contract for first-class CLI commands
|
|
6
|
+
|
|
7
|
+
## Troubleshooting
|
|
8
|
+
|
|
9
|
+
### CLI returns `auth_expired` or `auth_missing`
|
|
10
|
+
|
|
11
|
+
The profile's browser authorization has lapsed or was never granted. Run
|
|
12
|
+
`notis login` (add `--profile <name>` when the failing profile is not the
|
|
13
|
+
active one) and have the user approve the browser prompt. In JSON/agent mode
|
|
14
|
+
the first hint is the exact command to run. Do not copy refresh tokens into
|
|
15
|
+
commands or try to mint a credential yourself.
|
|
16
|
+
|
|
17
|
+
If the profile is a `dev-*` one, the fix is to restart `./dev.sh` in the
|
|
18
|
+
workspace it belongs to, or to switch to a real account profile.
|
|
19
|
+
|
|
20
|
+
### Deploy fails with "network_error" or "fetch failed"
|
|
21
|
+
|
|
22
|
+
Run `notis doctor` to verify the effective profile and endpoint. Read back the exact app ID,
|
|
23
|
+
version and release state before retrying. An uncertain network response is not proof of rollback.
|
|
24
|
+
There is no direct storage deployment path. Repair authentication when needed without changing the
|
|
25
|
+
intended profile, then reconcile the previous outcome before starting a new release.
|
|
26
|
+
|
|
27
|
+
Localhost backends are a Notis-developer test lane owned by `./dev.sh` and its lease-backed profile.
|
|
28
|
+
Do not silently switch between that lane and a live account.
|
|
29
|
+
|
|
30
|
+
### Health or tool-roundtrip errors
|
|
31
|
+
|
|
32
|
+
Local scaffold/build and stub verification can run without an API connection (dependencies and
|
|
33
|
+
browser tooling must already be available). `link`, `pull`, `create`, `list`, `deploy`, live verification
|
|
34
|
+
and Store operations require the intended backend. Never bypass it.
|
|
35
|
+
|
|
36
|
+
### Stale bundle in Portal after an update
|
|
37
|
+
|
|
38
|
+
Every successful release gets a new integer deployment version. Read back that version, then use
|
|
39
|
+
normal refresh/navigation to load it. Never overwrite or decrement an existing deployment version.
|