@north-light/cli 0.3.474 → 0.3.475
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/builtin-memory/northlight-apps/guides/background-runs.md +1 -8
- package/dist/builtin-memory/northlight-apps/guides/manage-your-app.md +7 -18
- package/docs/apps/guides/background-runs.md +1 -8
- package/docs/apps/guides/manage-your-app.md +7 -18
- package/docs/cli/join-northlight.md +2 -2
- package/package.json +2 -2
- package/packages/crouter-identity/package.json +1 -1
- package/runtime.lock.json +12 -12
|
@@ -70,11 +70,4 @@ app.post('/run-notices', async (req, res) => {
|
|
|
70
70
|
|
|
71
71
|
### Set the run notice URL
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --url https://app.example.com/run-notices
|
|
77
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --clear # stop notices
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
The URL must be https (plain http only on localhost in development) and at most 512 characters. `crtr cloud apps get --app-id <client id>` shows it as `run_notice_url`.
|
|
73
|
+
In the [console](https://account.northlight.ai/console), open your app, choose the **What it asks for** tab, and fill in **Notice URL** under **Run notice URL**. Choose **Save**. The URL must be `https` and at most 512 characters. To stop notices, empty the field and save. The full list of console fields is in [[northlight-apps/guides/manage-your-app]].
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
kind: knowledge
|
|
3
3
|
when-and-why-to-read: When you need Manage your app, this knowledge should be
|
|
4
4
|
read because What each tab of the Northlight console does for an app you have
|
|
5
|
-
registered,
|
|
5
|
+
registered, including setting the run notice URL and deleting the app.
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Manage your app
|
|
@@ -33,11 +33,13 @@ Until you retire the old key it is your rollback. After you retire it, a sign-in
|
|
|
33
33
|
- **What your app asks for.** The scopes people are asked to approve. **Add permissions** searches the catalog; take scope strings from it and from `providers.tools`, and do not invent them. `crtr:act` needs `crtr:llm`. See [[northlight-apps/concepts/scopes-and-grants]].
|
|
34
34
|
- **What your app requires.** Providers the app cannot work without. A person is taken through that provider's setup the first time they sign in. See [[northlight-apps/guides/grant-changes]].
|
|
35
35
|
- **Monthly spend cap.** The most your app may spend of each person's AI subscription per month, in whole US dollars.
|
|
36
|
+
- **Run notice URL.** Where Northlight posts a signed notice when one of your app's background runs ends. Type it in **Notice URL** and choose **Save**; empty it and save to turn notices off. The URL must be `https`, at most 512 characters, with no `#fragment`. The directory refuses a plain `http` URL with `run_notice_url` as the field. The field's hint says `http://localhost` is accepted while developing, but the production directory refuses it (checked in the directory source, not yet checked on production), so test notices with a tunnel that gives you an `https` URL. What your app does with a notice is in [[northlight-apps/guides/background-runs]].
|
|
36
37
|
|
|
37
38
|
## Profile
|
|
38
39
|
|
|
39
40
|
- **How people see your app**: Name, Origin URL, Logo URL, and **Why your app needs access** (quoted on the consent page as your words). **Save details**.
|
|
40
41
|
- **Marketplace**: **Listed in the marketplace**, Price, **Sign-in start URL** and **Text welcome**. Agents can install a listed app for a person by text. A testing app stays out of the marketplace even when listed. The sign-in start URL is where Install sends people; your `/auth/login` route is a valid one, and a `localhost` URL is accepted. The text welcome is one or two plain sentences, at most 120 characters, with no links.
|
|
42
|
+
- **Delete this app.** At the bottom of the tab; see [Delete an app](#delete-an-app).
|
|
41
43
|
|
|
42
44
|
## Testers
|
|
43
45
|
|
|
@@ -55,23 +57,10 @@ Once your app is live you can keep developing on your laptop against production
|
|
|
55
57
|
|
|
56
58
|
**Register a separate development app.** Do this when you are changing what the app asks for, or need grants and data that live people never touch. Register another app in the console, for example "Texty (dev)", with a `localhost` origin and redirect URI and its own key. It starts in testing and stays there, so only you and your testers can sign in, and it never appears in the marketplace. Point your laptop's environment file at its client ID.
|
|
57
59
|
|
|
58
|
-
##
|
|
60
|
+
## Delete an app
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
On the **Profile** tab, the **Delete this app** card lists what goes: every person's connection to the app, yours included (each person's runtime deletes the app's runs, space and schedules), the app's sign-ins and keys, and its testers and marketplace listing. This cannot be undone, and the client ID is never reused.
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
To delete, type the app's full name in **Type the app's name, *name*, to confirm**. **Delete app** stays disabled until what you typed matches the name (surrounding spaces are ignored), and the directory checks the name again when you submit. After it deletes, the console returns to your app list. The app's next refresh for any person fails with `invalid_grant`, its key stops working and its page answers 404.
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
crtr cloud apps delete --app-id <client id> --confirm <client id>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
It answers `deleted: true` and `removed_grants`, the number of people's grants it removed. Each person's runtime deletes the app's runs, space and schedules, and the app's next refresh fails with `invalid_grant`. The app's key stops working, its page answers 404 and it disappears from your list. This cannot be undone. You must run it yourself in the terminal of the joined machine: an agent, including your chat agent, is refused with `provider_refused`. If you only want a clean slate for tests, changing the app's redirect URIs and keys is often simpler.
|
|
69
|
-
|
|
70
|
-
### Set the run notice URL
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --url https://app.example.com/run-notices
|
|
74
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --clear
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
The URL must be https (plain http only on localhost in development) and at most 512 characters. What the app does with notices is in [[northlight-apps/guides/background-runs]].
|
|
66
|
+
The card is not shown for a provider or a first-party app, and the directory refuses to delete a provider (`app_is_provider`). If you only want a clean slate for tests, changing the app's redirect URIs and keys is often simpler.
|
|
@@ -68,11 +68,4 @@ app.post('/run-notices', async (req, res) => {
|
|
|
68
68
|
|
|
69
69
|
### Set the run notice URL
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --url https://app.example.com/run-notices
|
|
75
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --clear # stop notices
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
The URL must be https (plain http only on localhost in development) and at most 512 characters. `crtr cloud apps get --app-id <client id>` shows it as `run_notice_url`.
|
|
71
|
+
In the [console](https://account.northlight.ai/console), open your app, choose the **What it asks for** tab, and fill in **Notice URL** under **Run notice URL**. Choose **Save**. The URL must be `https` and at most 512 characters. To stop notices, empty the field and save. The full list of console fields is in [Manage your app](/docs/guides/manage-your-app#what-it-asks-for).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Manage your app
|
|
3
|
-
description: What each tab of the Northlight console does for an app you have registered,
|
|
3
|
+
description: What each tab of the Northlight console does for an app you have registered, including setting the run notice URL and deleting the app.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Manage your app
|
|
@@ -31,11 +31,13 @@ Until you retire the old key it is your rollback. After you retire it, a sign-in
|
|
|
31
31
|
- **What your app asks for.** The scopes people are asked to approve. **Add permissions** searches the catalog; take scope strings from it and from `providers.tools`, and do not invent them. `crtr:act` needs `crtr:llm`. See [Scopes and grants](/docs/concepts/scopes-and-grants).
|
|
32
32
|
- **What your app requires.** Providers the app cannot work without. A person is taken through that provider's setup the first time they sign in. See [Grant changes](/docs/guides/grant-changes#wait-on-a-provider-your-app-requires).
|
|
33
33
|
- **Monthly spend cap.** The most your app may spend of each person's AI subscription per month, in whole US dollars.
|
|
34
|
+
- **Run notice URL.** Where Northlight posts a signed notice when one of your app's background runs ends. Type it in **Notice URL** and choose **Save**; empty it and save to turn notices off. The URL must be `https`, at most 512 characters, with no `#fragment`. The directory refuses a plain `http` URL with `run_notice_url` as the field. The field's hint says `http://localhost` is accepted while developing, but the production directory refuses it (checked in the directory source, not yet checked on production), so test notices with a tunnel that gives you an `https` URL. What your app does with a notice is in [Background runs](/docs/guides/background-runs#run-notices).
|
|
34
35
|
|
|
35
36
|
## Profile
|
|
36
37
|
|
|
37
38
|
- **How people see your app**: Name, Origin URL, Logo URL, and **Why your app needs access** (quoted on the consent page as your words). **Save details**.
|
|
38
39
|
- **Marketplace**: **Listed in the marketplace**, Price, **Sign-in start URL** and **Text welcome**. Agents can install a listed app for a person by text. A testing app stays out of the marketplace even when listed. The sign-in start URL is where Install sends people; your `/auth/login` route is a valid one, and a `localhost` URL is accepted. The text welcome is one or two plain sentences, at most 120 characters, with no links.
|
|
40
|
+
- **Delete this app.** At the bottom of the tab; see [Delete an app](#delete-an-app).
|
|
39
41
|
|
|
40
42
|
## Testers
|
|
41
43
|
|
|
@@ -53,23 +55,10 @@ Once your app is live you can keep developing on your laptop against production
|
|
|
53
55
|
|
|
54
56
|
**Register a separate development app.** Do this when you are changing what the app asks for, or need grants and data that live people never touch. Register another app in the console, for example "Texty (dev)", with a `localhost` origin and redirect URI and its own key. It starts in testing and stays there, so only you and your testers can sign in, and it never appears in the marketplace. Point your laptop's environment file at its client ID.
|
|
55
57
|
|
|
56
|
-
##
|
|
58
|
+
## Delete an app
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
On the **Profile** tab, the **Delete this app** card lists what goes: every person's connection to the app, yours included (each person's runtime deletes the app's runs, space and schedules), the app's sign-ins and keys, and its testers and marketplace listing. This cannot be undone, and the client ID is never reused.
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
To delete, type the app's full name in **Type the app's name, *name*, to confirm**. **Delete app** stays disabled until what you typed matches the name (surrounding spaces are ignored), and the directory checks the name again when you submit. After it deletes, the console returns to your app list. The app's next refresh for any person fails with `invalid_grant`, its key stops working and its page answers 404.
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
crtr cloud apps delete --app-id <client id> --confirm <client id>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
It answers `deleted: true` and `removed_grants`, the number of people's grants it removed. Each person's runtime deletes the app's runs, space and schedules, and the app's next refresh fails with `invalid_grant`. The app's key stops working, its page answers 404 and it disappears from your list. This cannot be undone. You must run it yourself in the terminal of the joined machine: an agent, including your chat agent, is refused with `provider_refused`. If you only want a clean slate for tests, changing the app's redirect URIs and keys is often simpler.
|
|
67
|
-
|
|
68
|
-
### Set the run notice URL
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --url https://app.example.com/run-notices
|
|
72
|
-
crtr cloud apps set-run-notice-url --app-id <client id> --clear
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
The URL must be https (plain http only on localhost in development) and at most 512 characters. What the app does with notices is in [Background runs](/docs/guides/background-runs#run-notices).
|
|
64
|
+
The card is not shown for a provider or a first-party app, and the directory refuses to delete a provider (`app_is_provider`). If you only want a clean slate for tests, changing the app's redirect URIs and keys is often simpler.
|
|
@@ -5,7 +5,7 @@ description: Join a laptop to your Northlight account with crtr sys join so crtr
|
|
|
5
5
|
|
|
6
6
|
# Join a machine to your Northlight account
|
|
7
7
|
|
|
8
|
-
Joining makes this machine one of your Northlight account's machines, so `crtr cloud …` commands run as you.
|
|
8
|
+
Joining makes this machine one of your Northlight account's machines, so `crtr cloud …` commands run as you. Building an app does not need it: the [SDK docs site](https://sdk.docs.northlight.ai/docs/quickstart) takes you through the web console. Join when you want to run `crtr cloud apps` yourself.
|
|
9
9
|
|
|
10
10
|
Create your account at `https://account.northlight.ai/signup` first. Then install the CLI (`npm i -g @north-light/cli`). Joining needs `crtr` 0.3.436 or later (older versions need `crtr sys daemon stop` first and fail if a viewer is open); `crtr --version` shows yours.
|
|
11
11
|
|
|
@@ -30,7 +30,7 @@ Things to know before you join:
|
|
|
30
30
|
|
|
31
31
|
## `crtr cloud apps`
|
|
32
32
|
|
|
33
|
-
Every app-management leaf of Northlight's `cloud` provider runs as you and needs a joined machine.
|
|
33
|
+
Every app-management leaf of Northlight's `cloud` provider runs as you and needs a joined machine. `--app-id` takes `app:<client id>` or the bare client id.
|
|
34
34
|
|
|
35
35
|
Your Northlight chat agent at `https://chat.northlight.ai` can run these commands as you, on your hosted runtime. It can list and change an app (`mine` and `set-scopes` were checked on production). It cannot delete one. Generate keys on your laptop and give an agent only a public JWK, never the private key.
|
|
36
36
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@north-light/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.475",
|
|
4
4
|
"description": "crtr — agent runtime with memory, plugins, and marketplaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
},
|
|
138
138
|
"license": "UNLICENSED",
|
|
139
139
|
"dependencies": {
|
|
140
|
-
"@north-light/identity": "0.3.
|
|
140
|
+
"@north-light/identity": "0.3.475",
|
|
141
141
|
"@earendil-works/pi-agent-core": "1.1.0",
|
|
142
142
|
"@earendil-works/pi-ai": "1.1.0",
|
|
143
143
|
"@earendil-works/pi-coding-agent": "1.1.0",
|
package/runtime.lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@north-light/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.475",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@north-light/cli",
|
|
9
|
-
"version": "0.3.
|
|
9
|
+
"version": "0.3.475",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "UNLICENSED",
|
|
12
12
|
"workspaces": [
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@earendil-works/pi-ai": "1.1.0",
|
|
19
19
|
"@earendil-works/pi-coding-agent": "1.1.0",
|
|
20
20
|
"@earendil-works/pi-tui": "1.1.0",
|
|
21
|
-
"@north-light/identity": "0.3.
|
|
21
|
+
"@north-light/identity": "0.3.475",
|
|
22
22
|
"cron-parser": "^5.6.0",
|
|
23
23
|
"esbuild": "^0.27.7",
|
|
24
24
|
"jose": "^6.2.12",
|
|
@@ -12115,17 +12115,17 @@
|
|
|
12115
12115
|
},
|
|
12116
12116
|
"packages/crouter-api": {
|
|
12117
12117
|
"name": "@north-light/api",
|
|
12118
|
-
"version": "0.3.
|
|
12118
|
+
"version": "0.3.475",
|
|
12119
12119
|
"license": "UNLICENSED"
|
|
12120
12120
|
},
|
|
12121
12121
|
"packages/crouter-env-docker": {
|
|
12122
12122
|
"name": "@north-light/env-docker",
|
|
12123
|
-
"version": "0.3.
|
|
12123
|
+
"version": "0.3.475",
|
|
12124
12124
|
"license": "UNLICENSED"
|
|
12125
12125
|
},
|
|
12126
12126
|
"packages/crouter-identity": {
|
|
12127
12127
|
"name": "@north-light/identity",
|
|
12128
|
-
"version": "0.3.
|
|
12128
|
+
"version": "0.3.475",
|
|
12129
12129
|
"license": "UNLICENSED",
|
|
12130
12130
|
"dependencies": {
|
|
12131
12131
|
"jose": "^6.2.1"
|
|
@@ -12133,20 +12133,20 @@
|
|
|
12133
12133
|
},
|
|
12134
12134
|
"packages/crouter-plugin": {
|
|
12135
12135
|
"name": "@north-light/plugin",
|
|
12136
|
-
"version": "0.3.
|
|
12136
|
+
"version": "0.3.475",
|
|
12137
12137
|
"license": "UNLICENSED",
|
|
12138
12138
|
"dependencies": {
|
|
12139
|
-
"@north-light/api": "0.3.
|
|
12140
|
-
"@north-light/identity": "0.3.
|
|
12139
|
+
"@north-light/api": "0.3.475",
|
|
12140
|
+
"@north-light/identity": "0.3.475"
|
|
12141
12141
|
}
|
|
12142
12142
|
},
|
|
12143
12143
|
"packages/crouter-sdk": {
|
|
12144
12144
|
"name": "@north-light/sdk",
|
|
12145
|
-
"version": "0.3.
|
|
12145
|
+
"version": "0.3.475",
|
|
12146
12146
|
"license": "UNLICENSED",
|
|
12147
12147
|
"dependencies": {
|
|
12148
|
-
"@north-light/api": "0.3.
|
|
12149
|
-
"@north-light/identity": "0.3.
|
|
12148
|
+
"@north-light/api": "0.3.475",
|
|
12149
|
+
"@north-light/identity": "0.3.475",
|
|
12150
12150
|
"jose": "^6.2.1"
|
|
12151
12151
|
},
|
|
12152
12152
|
"bin": {
|