@kosuke-ai/kosuke 1.0.28 → 1.0.30
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/CHANGELOG.md +8 -0
- package/dist/generated/commands/crons/create--personal.js +2 -2
- package/dist/generated/commands/crons/get--personal.js +1 -1
- package/dist/generated/commands/crons/list--personal.js +1 -1
- package/dist/generated/commands/crons/update--personal.js +2 -2
- package/dist/generated/commands/sensei/device-requests-update.js +4 -2
- package/openapi.json +7 -9
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.30
|
|
4
|
+
|
|
5
|
+
- `sensei device-requests update` is refused with 403 to a Chat Session's agent and a Cron: only you, an admin of the device's workspace, or your Sensei after your own yes answer a device request.
|
|
6
|
+
|
|
7
|
+
## 1.0.29
|
|
8
|
+
|
|
9
|
+
- Allow Personal Crons with repositories to use Kosuke free when no Subscription is connected.
|
|
10
|
+
|
|
3
11
|
## 1.0.28
|
|
4
12
|
|
|
5
13
|
- Remove `kosuke sensei review context get`: read a pull request's reviews, checks and changed files with `gh`. `kosuke sensei cards set` now takes at most two actions, one primary and one destructive in the negative button's place.
|
|
@@ -8,7 +8,7 @@ export const operation = {
|
|
|
8
8
|
"variant": {
|
|
9
9
|
"scope": "personal"
|
|
10
10
|
},
|
|
11
|
-
"summary": "Create a Personal Cron, enabled, with you as its owner. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread.
|
|
11
|
+
"summary": "Create a Personal Cron, enabled, with you as its owner. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none. The crontab is read in the cron's own timezone, and may not fire more often than every 15 minutes. The model is an encoded id such as anthropic:opus__xhigh; repositories require an explicit Model from any released Provider on one of your Subscriptions, or kosuke-free when you hold none. Changing to Free while you hold a Subscription, or to a personal Model without one, is refused. Without repositories, null or left out runs on the thread’s model. From your Sensei it is refused with 409 CRON_ALREADY_EXISTS when you have a Personal Cron by that name: update that one instead. From Sensei, create or change one only when the member asks. To move a workspace Cron here, read it and recreate it with its timezone (its model only when the member's own Subscription runs it); the member deletes the workspace one in the app.",
|
|
12
12
|
"pathParams": [],
|
|
13
13
|
"query": [],
|
|
14
14
|
"body": {
|
|
@@ -53,7 +53,7 @@ export const operation = {
|
|
|
53
53
|
"flag": "model",
|
|
54
54
|
"kind": "json",
|
|
55
55
|
"required": false,
|
|
56
|
-
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free
|
|
56
|
+
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free while you hold no Subscription. With repositories, an explicit Model of a released provider your Subscription runs, or kosuke-free, is required. Without repositories, null runs on the thread's model."
|
|
57
57
|
}
|
|
58
58
|
],
|
|
59
59
|
"required": true
|
|
@@ -8,7 +8,7 @@ export const operation = {
|
|
|
8
8
|
"variant": {
|
|
9
9
|
"scope": "personal"
|
|
10
10
|
},
|
|
11
|
-
"summary": "Read one of your Personal Crons: its prompt, schedule, timezone, model, when it runs next, its thread, its last run status, and how many runs in a row failed: five disable it. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your
|
|
11
|
+
"summary": "Read one of your Personal Crons: its prompt, schedule, timezone, model, when it runs next, its thread, its last run status, and how many runs in a row failed: five disable it. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none.",
|
|
12
12
|
"pathParams": [
|
|
13
13
|
"cronId"
|
|
14
14
|
],
|
|
@@ -8,7 +8,7 @@ export const operation = {
|
|
|
8
8
|
"variant": {
|
|
9
9
|
"scope": "personal"
|
|
10
10
|
},
|
|
11
|
-
"summary": "List your Personal Crons, newest first, with each one's thread and last run status. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread.
|
|
11
|
+
"summary": "List your Personal Crons, newest first, with each one's thread and last run status. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none. Among agents, only your Sensei reaches them.",
|
|
12
12
|
"pathParams": [],
|
|
13
13
|
"query": [
|
|
14
14
|
{
|
|
@@ -8,7 +8,7 @@ export const operation = {
|
|
|
8
8
|
"variant": {
|
|
9
9
|
"scope": "personal"
|
|
10
10
|
},
|
|
11
|
-
"summary": "Change one of your Personal Crons; only the fields sent change. Any edit sets the cron's failure count back to zero. enabled=false pauses the cron and enabled=true resumes it. No projects left stays until a save picks at least one repository, and Resume is refused meanwhile. Changing repositories rechecks the Model: a sandbox requires an explicit Model from any released Provider on one of your Subscriptions
|
|
11
|
+
"summary": "Change one of your Personal Crons; only the fields sent change. Any edit sets the cron's failure count back to zero. enabled=false pauses the cron and enabled=true resumes it. No projects left stays until a save picks at least one repository, and Resume is refused meanwhile. Changing repositories rechecks the Model: a sandbox requires an explicit Model from any released Provider on one of your Subscriptions, or kosuke-free when you hold none. Changing to Free while you hold a Subscription, or to a personal Model without one, is refused. Re-sending the unchanged stored Model is accepted. Without repositories, model=null goes back to the thread’s model. The crontab is read in the cron's own timezone.",
|
|
12
12
|
"pathParams": [
|
|
13
13
|
"cronId"
|
|
14
14
|
],
|
|
@@ -55,7 +55,7 @@ export const operation = {
|
|
|
55
55
|
"flag": "model",
|
|
56
56
|
"kind": "json",
|
|
57
57
|
"required": false,
|
|
58
|
-
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free
|
|
58
|
+
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free while you hold no Subscription. With repositories, an explicit Model of a released provider your Subscription runs, or kosuke-free, is required. Without repositories, null runs on the thread's model."
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"name": "enabled",
|
|
@@ -6,7 +6,7 @@ export const operation = {
|
|
|
6
6
|
"device-requests",
|
|
7
7
|
"update"
|
|
8
8
|
],
|
|
9
|
-
"summary": "Approve or decline one Device Request of a Chat Session as you, the Mac’s owner or an admin of the device’s workspace. Answers the stored status. Refused with 403 when you may not answer it, 404 for a request not of this session, and 409 GRANT_ALREADY_DECIDED with its current status when it is no longer pending: already answered, expired, withdrawn, or closed because the session can no longer use the device.",
|
|
9
|
+
"summary": "Approve or decline one Device Request of a Chat Session as you, the Mac’s owner or an admin of the device’s workspace, or as your Sensei after your own yes. Answers the stored status. Refused with 403 to a Chat Session’s agent or a Cron, and when you may not answer it, 404 for a request not of this session, and 409 GRANT_ALREADY_DECIDED with its current status when it is no longer pending: already answered, expired, withdrawn, or closed because the session can no longer use the device.",
|
|
10
10
|
"pathParams": [],
|
|
11
11
|
"query": [],
|
|
12
12
|
"body": {
|
|
@@ -42,5 +42,7 @@ export const operation = {
|
|
|
42
42
|
"multipart": null,
|
|
43
43
|
"attachments": false,
|
|
44
44
|
"anonymous": false,
|
|
45
|
-
"agents":
|
|
45
|
+
"agents": [
|
|
46
|
+
"senseiToken"
|
|
47
|
+
]
|
|
46
48
|
};
|
package/openapi.json
CHANGED
|
@@ -22717,11 +22717,9 @@
|
|
|
22717
22717
|
"/api/sensei/device-requests/decide": {
|
|
22718
22718
|
"post": {
|
|
22719
22719
|
"operationId": "senseiDeviceRequestsUpdate",
|
|
22720
|
-
"summary": "Approve or decline one Device Request of a Chat Session as you, the Mac’s owner or an admin of the device’s workspace. Answers the stored status. Refused with 403 when you may not answer it, 404 for a request not of this session, and 409 GRANT_ALREADY_DECIDED with its current status when it is no longer pending: already answered, expired, withdrawn, or closed because the session can no longer use the device.",
|
|
22720
|
+
"summary": "Approve or decline one Device Request of a Chat Session as you, the Mac’s owner or an admin of the device’s workspace, or as your Sensei after your own yes. Answers the stored status. Refused with 403 to a Chat Session’s agent or a Cron, and when you may not answer it, 404 for a request not of this session, and 409 GRANT_ALREADY_DECIDED with its current status when it is no longer pending: already answered, expired, withdrawn, or closed because the session can no longer use the device.",
|
|
22721
22721
|
"tags": ["sensei"],
|
|
22722
22722
|
"x-kosuke-command": ["sensei", "device-requests", "update"],
|
|
22723
|
-
"x-kosuke-sandbox-token": true,
|
|
22724
|
-
"x-kosuke-cron-token": true,
|
|
22725
22723
|
"x-kosuke-sensei-token": true,
|
|
22726
22724
|
"requestBody": {
|
|
22727
22725
|
"required": true,
|
|
@@ -24758,7 +24756,7 @@
|
|
|
24758
24756
|
"/api/user/crons": {
|
|
24759
24757
|
"get": {
|
|
24760
24758
|
"operationId": "cronsListPersonal",
|
|
24761
|
-
"summary": "List your Personal Crons, newest first, with each one's thread and last run status. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread.
|
|
24759
|
+
"summary": "List your Personal Crons, newest first, with each one's thread and last run status. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none. Among agents, only your Sensei reaches them.",
|
|
24762
24760
|
"tags": ["crons"],
|
|
24763
24761
|
"x-kosuke-command": ["crons", "list"],
|
|
24764
24762
|
"x-kosuke-variant": {
|
|
@@ -24838,7 +24836,7 @@
|
|
|
24838
24836
|
},
|
|
24839
24837
|
"post": {
|
|
24840
24838
|
"operationId": "cronsCreatePersonal",
|
|
24841
|
-
"summary": "Create a Personal Cron, enabled, with you as its owner. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread.
|
|
24839
|
+
"summary": "Create a Personal Cron, enabled, with you as its owner. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none. The crontab is read in the cron's own timezone, and may not fire more often than every 15 minutes. The model is an encoded id such as anthropic:opus__xhigh; repositories require an explicit Model from any released Provider on one of your Subscriptions, or kosuke-free when you hold none. Changing to Free while you hold a Subscription, or to a personal Model without one, is refused. Without repositories, null or left out runs on the thread’s model. From your Sensei it is refused with 409 CRON_ALREADY_EXISTS when you have a Personal Cron by that name: update that one instead. From Sensei, create or change one only when the member asks. To move a workspace Cron here, read it and recreate it with its timezone (its model only when the member's own Subscription runs it); the member deletes the workspace one in the app.",
|
|
24842
24840
|
"tags": ["crons"],
|
|
24843
24841
|
"x-kosuke-command": ["crons", "create"],
|
|
24844
24842
|
"x-kosuke-variant": {
|
|
@@ -24886,7 +24884,7 @@
|
|
|
24886
24884
|
"description": "The IANA zone the crontab is read in, such as Europe/Rome."
|
|
24887
24885
|
},
|
|
24888
24886
|
"model": {
|
|
24889
|
-
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free
|
|
24887
|
+
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free while you hold no Subscription. With repositories, an explicit Model of a released provider your Subscription runs, or kosuke-free, is required. Without repositories, null runs on the thread's model.",
|
|
24890
24888
|
"anyOf": [
|
|
24891
24889
|
{
|
|
24892
24890
|
"anyOf": [
|
|
@@ -24948,7 +24946,7 @@
|
|
|
24948
24946
|
"/api/user/crons/{cronId}": {
|
|
24949
24947
|
"get": {
|
|
24950
24948
|
"operationId": "cronsGetPersonal",
|
|
24951
|
-
"summary": "Read one of your Personal Crons: its prompt, schedule, timezone, model, when it runs next, its thread, its last run status, and how many runs in a row failed: five disable it. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your
|
|
24949
|
+
"summary": "Read one of your Personal Crons: its prompt, schedule, timezone, model, when it runs next, its thread, its last run status, and how many runs in a row failed: five disable it. A Personal Cron belongs to you and no workspace: with Personal Repositories or Apps it runs in its own sandbox; without, in its Sensei Thread. Both use your Subscriptions or Kosuke free when you hold none.",
|
|
24952
24950
|
"tags": ["crons"],
|
|
24953
24951
|
"x-kosuke-command": ["crons", "get"],
|
|
24954
24952
|
"x-kosuke-variant": {
|
|
@@ -25004,7 +25002,7 @@
|
|
|
25004
25002
|
},
|
|
25005
25003
|
"patch": {
|
|
25006
25004
|
"operationId": "cronsUpdatePersonal",
|
|
25007
|
-
"summary": "Change one of your Personal Crons; only the fields sent change. Any edit sets the cron's failure count back to zero. enabled=false pauses the cron and enabled=true resumes it. No projects left stays until a save picks at least one repository, and Resume is refused meanwhile. Changing repositories rechecks the Model: a sandbox requires an explicit Model from any released Provider on one of your Subscriptions
|
|
25005
|
+
"summary": "Change one of your Personal Crons; only the fields sent change. Any edit sets the cron's failure count back to zero. enabled=false pauses the cron and enabled=true resumes it. No projects left stays until a save picks at least one repository, and Resume is refused meanwhile. Changing repositories rechecks the Model: a sandbox requires an explicit Model from any released Provider on one of your Subscriptions, or kosuke-free when you hold none. Changing to Free while you hold a Subscription, or to a personal Model without one, is refused. Re-sending the unchanged stored Model is accepted. Without repositories, model=null goes back to the thread’s model. The crontab is read in the cron's own timezone.",
|
|
25008
25006
|
"tags": ["crons"],
|
|
25009
25007
|
"x-kosuke-command": ["crons", "update"],
|
|
25010
25008
|
"x-kosuke-variant": {
|
|
@@ -25064,7 +25062,7 @@
|
|
|
25064
25062
|
"description": "The IANA zone the crontab is read in, such as Europe/Rome."
|
|
25065
25063
|
},
|
|
25066
25064
|
"model": {
|
|
25067
|
-
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free
|
|
25065
|
+
"description": "An encoded model id such as anthropic:opus__xhigh, one your Sensei runs on your own Subscription, or kosuke-free for Auto - Kosuke free while you hold no Subscription. With repositories, an explicit Model of a released provider your Subscription runs, or kosuke-free, is required. Without repositories, null runs on the thread's model.",
|
|
25068
25066
|
"anyOf": [
|
|
25069
25067
|
{
|
|
25070
25068
|
"anyOf": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosuke-ai/kosuke",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "Kosuke platform CLI. The client customers install to drive app.kosuke.ai from their own machine.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"vitest": "^4.1.12"
|
|
41
41
|
},
|
|
42
42
|
"kosukeRelease": {
|
|
43
|
-
"sourceCommit": "
|
|
44
|
-
"sourceIdentity": "
|
|
43
|
+
"sourceCommit": "a2c33be7b58753bea54aaf5c46be3c35011b3398",
|
|
44
|
+
"sourceIdentity": "d07692f5e91a9308485cfd5acdf2963b79f513cd4908be7dfdc5179d705bfe68",
|
|
45
45
|
"fragments": [
|
|
46
|
-
"
|
|
46
|
+
"device-request-human-approval-3yk89d.json"
|
|
47
47
|
]
|
|
48
48
|
}
|
|
49
49
|
}
|