@jinion/core 0.4.0 → 0.5.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/agent.d.ts +8 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +3 -2
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/claude/approvals.d.ts +2 -1
- package/dist/agent/claude/approvals.d.ts.map +1 -1
- package/dist/agent/claude/approvals.js +2 -2
- package/dist/agent/claude/approvals.js.map +1 -1
- package/dist/agent/claude/backend.d.ts +1 -1
- package/dist/agent/claude/backend.d.ts.map +1 -1
- package/dist/agent/claude/backend.js +3 -2
- package/dist/agent/claude/backend.js.map +1 -1
- package/dist/agent/claude/jinion-tools.d.ts +3 -1
- package/dist/agent/claude/jinion-tools.d.ts.map +1 -1
- package/dist/agent/claude/jinion-tools.js +10 -1
- package/dist/agent/claude/jinion-tools.js.map +1 -1
- package/dist/agent/claude/options.d.ts +4 -1
- package/dist/agent/claude/options.d.ts.map +1 -1
- package/dist/agent/claude/options.js +6 -4
- package/dist/agent/claude/options.js.map +1 -1
- package/dist/agent/claude/policy.d.ts +1 -1
- package/dist/agent/claude/policy.d.ts.map +1 -1
- package/dist/agent/claude/policy.js +1 -0
- package/dist/agent/claude/policy.js.map +1 -1
- package/dist/agent/claude/prompt.d.ts +2 -1
- package/dist/agent/claude/prompt.d.ts.map +1 -1
- package/dist/agent/claude/prompt.js +3 -1
- package/dist/agent/claude/prompt.js.map +1 -1
- package/dist/agent/claude/session.d.ts +10 -2
- package/dist/agent/claude/session.d.ts.map +1 -1
- package/dist/agent/claude/session.js +14 -3
- package/dist/agent/claude/session.js.map +1 -1
- package/dist/agent/claude/tool-calls.d.ts.map +1 -1
- package/dist/agent/claude/tool-calls.js +11 -2
- package/dist/agent/claude/tool-calls.js.map +1 -1
- package/dist/agent/codex/approvals.d.ts +1 -1
- package/dist/agent/codex/approvals.d.ts.map +1 -1
- package/dist/agent/codex/approvals.js +1 -1
- package/dist/agent/codex/approvals.js.map +1 -1
- package/dist/agent/codex/backend.d.ts +1 -1
- package/dist/agent/codex/backend.d.ts.map +1 -1
- package/dist/agent/codex/backend.js +3 -2
- package/dist/agent/codex/backend.js.map +1 -1
- package/dist/agent/codex/events.d.ts.map +1 -1
- package/dist/agent/codex/events.js +7 -4
- package/dist/agent/codex/events.js.map +1 -1
- package/dist/agent/codex/jinion-tools.d.ts +27 -4
- package/dist/agent/codex/jinion-tools.d.ts.map +1 -1
- package/dist/agent/codex/jinion-tools.js +18 -4
- package/dist/agent/codex/jinion-tools.js.map +1 -1
- package/dist/agent/codex/modes.d.ts +2 -2
- package/dist/agent/codex/modes.d.ts.map +1 -1
- package/dist/agent/codex/modes.js +4 -3
- package/dist/agent/codex/modes.js.map +1 -1
- package/dist/agent/codex/session.d.ts +4 -1
- package/dist/agent/codex/session.d.ts.map +1 -1
- package/dist/agent/codex/session.js +5 -2
- package/dist/agent/codex/session.js.map +1 -1
- package/dist/agent/demo/script.d.ts +2 -2
- package/dist/agent/demo/sessions.d.ts.map +1 -1
- package/dist/agent/demo/sessions.js +26 -1
- package/dist/agent/demo/sessions.js.map +1 -1
- package/dist/agent/demo/tasks.d.ts +1 -1
- package/dist/agent/events.d.ts +1 -0
- package/dist/agent/events.d.ts.map +1 -1
- package/dist/agent/modes.d.ts +15 -1
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +16 -1
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/review.d.ts +8 -2
- package/dist/agent/review.d.ts.map +1 -1
- package/dist/agent/review.js +27 -7
- package/dist/agent/review.js.map +1 -1
- package/dist/api/client.d.ts +216 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/connection.d.ts +54 -2
- package/dist/api/connection.d.ts.map +1 -1
- package/dist/api/connection.js +2 -0
- package/dist/api/connection.js.map +1 -1
- package/dist/api/fields.d.ts +235 -7
- package/dist/api/fields.d.ts.map +1 -1
- package/dist/api/fields.js +3 -1
- package/dist/api/fields.js.map +1 -1
- package/dist/api/json-schema.d.ts +831 -187
- package/dist/api/json-schema.d.ts.map +1 -1
- package/dist/api/methods/git.js +1 -1
- package/dist/api/methods/git.js.map +1 -1
- package/dist/api/methods/sessions.d.ts.map +1 -1
- package/dist/api/methods/sessions.js +3 -2
- package/dist/api/methods/sessions.js.map +1 -1
- package/dist/api/methods/team.d.ts +4 -0
- package/dist/api/methods/team.d.ts.map +1 -0
- package/dist/api/methods/team.js +30 -0
- package/dist/api/methods/team.js.map +1 -0
- package/dist/api/protocol.d.ts +791 -8
- package/dist/api/protocol.d.ts.map +1 -1
- package/dist/api/protocol.js +36 -5
- package/dist/api/protocol.js.map +1 -1
- package/dist/api/schemas.d.ts +504 -2
- package/dist/api/schemas.d.ts.map +1 -1
- package/dist/api/schemas.js +6 -0
- package/dist/api/schemas.js.map +1 -1
- package/dist/commands/agent.js +3 -3
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/builtin.d.ts.map +1 -1
- package/dist/commands/builtin.js +3 -0
- package/dist/commands/builtin.js.map +1 -1
- package/dist/commands/team.d.ts +4 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +11 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/controllers/context.d.ts +4 -0
- package/dist/controllers/context.d.ts.map +1 -1
- package/dist/controllers/context.js +4 -0
- package/dist/controllers/context.js.map +1 -1
- package/dist/controllers/conversation.d.ts +16 -0
- package/dist/controllers/conversation.d.ts.map +1 -1
- package/dist/controllers/decision-view.d.ts +20 -0
- package/dist/controllers/decision-view.d.ts.map +1 -0
- package/dist/controllers/decision-view.js +59 -0
- package/dist/controllers/decision-view.js.map +1 -0
- package/dist/controllers/decisions.d.ts +29 -0
- package/dist/controllers/decisions.d.ts.map +1 -0
- package/dist/controllers/decisions.js +199 -0
- package/dist/controllers/decisions.js.map +1 -0
- package/dist/controllers/jinion.d.ts +17 -1
- package/dist/controllers/jinion.d.ts.map +1 -1
- package/dist/controllers/jinion.js +89 -5
- package/dist/controllers/jinion.js.map +1 -1
- package/dist/controllers/mode.d.ts +8 -4
- package/dist/controllers/mode.d.ts.map +1 -1
- package/dist/controllers/mode.js +30 -4
- package/dist/controllers/mode.js.map +1 -1
- package/dist/controllers/session.d.ts +21 -1
- package/dist/controllers/session.d.ts.map +1 -1
- package/dist/controllers/session.js +64 -2
- package/dist/controllers/session.js.map +1 -1
- package/dist/controllers/team.d.ts +216 -0
- package/dist/controllers/team.d.ts.map +1 -0
- package/dist/controllers/team.js +208 -0
- package/dist/controllers/team.js.map +1 -0
- package/dist/controllers/turns.d.ts +7 -0
- package/dist/controllers/turns.d.ts.map +1 -1
- package/dist/controllers/turns.js +21 -4
- package/dist/controllers/turns.js.map +1 -1
- package/dist/conversation/dialogs.d.ts +1 -0
- package/dist/conversation/dialogs.d.ts.map +1 -1
- package/dist/conversation/entries.d.ts +36 -0
- package/dist/conversation/entries.d.ts.map +1 -1
- package/dist/conversation/entries.js +26 -0
- package/dist/conversation/entries.js.map +1 -1
- package/dist/conversation/reducer.d.ts +135 -0
- package/dist/conversation/reducer.d.ts.map +1 -1
- package/dist/conversation/reducer.js +30 -1
- package/dist/conversation/reducer.js.map +1 -1
- package/dist/conversation/session.d.ts +24 -0
- package/dist/conversation/session.d.ts.map +1 -1
- package/dist/conversation/store.d.ts +13 -0
- package/dist/conversation/store.d.ts.map +1 -1
- package/dist/conversation/store.js +31 -7
- package/dist/conversation/store.js.map +1 -1
- package/dist/feedback/shared.d.ts +16 -0
- package/dist/feedback/shared.d.ts.map +1 -1
- package/dist/git/repos.d.ts.map +1 -1
- package/dist/git/repos.js +3 -1
- package/dist/git/repos.js.map +1 -1
- package/dist/git/staging.d.ts +2 -2
- package/dist/git/staging.d.ts.map +1 -1
- package/dist/git/staging.js +3 -3
- package/dist/git/staging.js.map +1 -1
- package/dist/git/types.d.ts +2 -0
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +2 -0
- package/dist/git/types.js.map +1 -1
- package/dist/jinion-account/account.d.ts +178 -0
- package/dist/jinion-account/account.d.ts.map +1 -1
- package/dist/jinion-account/account.js +30 -0
- package/dist/jinion-account/account.js.map +1 -1
- package/dist/jinion-account/api.d.ts +169 -0
- package/dist/jinion-account/api.d.ts.map +1 -1
- package/dist/jinion-account/api.js +39 -1
- package/dist/jinion-account/api.js.map +1 -1
- package/dist/jinion-account/user.d.ts +22 -0
- package/dist/jinion-account/user.d.ts.map +1 -1
- package/dist/jinion-account/user.js +9 -0
- package/dist/jinion-account/user.js.map +1 -1
- package/dist/map/review.d.ts +6 -4
- package/dist/map/review.d.ts.map +1 -1
- package/dist/map/review.js +21 -7
- package/dist/map/review.js.map +1 -1
- package/dist/settings/user.d.ts +2 -0
- package/dist/settings/user.d.ts.map +1 -1
- package/dist/settings/user.js.map +1 -1
- package/dist/state/agent.d.ts +2 -2
- package/dist/state/jinion-account.d.ts +6 -0
- package/dist/state/jinion-account.d.ts.map +1 -1
- package/dist/state/session.d.ts +155 -5
- package/dist/state/session.d.ts.map +1 -1
- package/dist/state/session.js +2 -0
- package/dist/state/session.js.map +1 -1
- package/dist/state/team.d.ts +151 -0
- package/dist/state/team.d.ts.map +1 -0
- package/dist/state/team.js +4 -0
- package/dist/state/team.js.map +1 -0
- package/dist/team/anchoring.d.ts +9 -0
- package/dist/team/anchoring.d.ts.map +1 -0
- package/dist/team/anchoring.js +26 -0
- package/dist/team/anchoring.js.map +1 -0
- package/dist/team/config.d.ts +16 -0
- package/dist/team/config.d.ts.map +1 -0
- package/dist/team/config.js +37 -0
- package/dist/team/config.js.map +1 -0
- package/dist/team/decision.d.ts +255 -0
- package/dist/team/decision.d.ts.map +1 -0
- package/dist/team/decision.js +82 -0
- package/dist/team/decision.js.map +1 -0
- package/dist/team/decisions.d.ts +98 -0
- package/dist/team/decisions.d.ts.map +1 -0
- package/dist/team/decisions.js +166 -0
- package/dist/team/decisions.js.map +1 -0
- package/dist/team/history.d.ts +27 -0
- package/dist/team/history.d.ts.map +1 -0
- package/dist/team/history.js +49 -0
- package/dist/team/history.js.map +1 -0
- package/dist/team/prompt.d.ts +20 -0
- package/dist/team/prompt.d.ts.map +1 -0
- package/dist/team/prompt.js +44 -0
- package/dist/team/prompt.js.map +1 -0
- package/dist/team/repository.d.ts +12 -0
- package/dist/team/repository.d.ts.map +1 -0
- package/dist/team/repository.js +32 -0
- package/dist/team/repository.js.map +1 -0
- package/dist/team/secrets.d.ts +3 -0
- package/dist/team/secrets.d.ts.map +1 -0
- package/dist/team/secrets.js +18 -0
- package/dist/team/secrets.js.map +1 -0
- package/dist/team/tools.d.ts +82 -0
- package/dist/team/tools.d.ts.map +1 -0
- package/dist/team/tools.js +46 -0
- package/dist/team/tools.js.map +1 -0
- package/dist/team/types.d.ts +178 -0
- package/dist/team/types.d.ts.map +1 -0
- package/dist/team/types.js +60 -0
- package/dist/team/types.js.map +1 -0
- package/dist/team/visibility.d.ts +9 -0
- package/dist/team/visibility.d.ts.map +1 -0
- package/dist/team/visibility.js +36 -0
- package/dist/team/visibility.js.map +1 -0
- package/package.json +1 -1
- package/schema/api.json +3372 -503
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/controllers/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/controllers/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import type { Store } from 'jotai/vanilla';
|
|
2
|
+
import type { JinionAccount } from '../jinion-account/account.js';
|
|
3
|
+
import { DecisionStore } from '../team/decisions.js';
|
|
4
|
+
import { History } from '../team/history.js';
|
|
5
|
+
/** What a user agrees to by linking, shown before they do. */
|
|
6
|
+
export declare const LINK_CONSENT = "The decisions agents record in this project will be shared with the workspace\u2019s members, who can read them on cloud.jinion.co.";
|
|
7
|
+
export interface LinkOptions {
|
|
8
|
+
workspaceId: string;
|
|
9
|
+
/** A project of the workspace for this repository; a new one, named `name` or after the folder, when left out. */
|
|
10
|
+
projectId?: string;
|
|
11
|
+
name?: string;
|
|
12
|
+
/** Replaces a jinion.config.json that names another project. */
|
|
13
|
+
overwrite?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** The repository holds a jinion.config.json for another project, which linking replaces only when told to. */
|
|
16
|
+
export declare class AlreadyLinked extends Error {
|
|
17
|
+
readonly path: string;
|
|
18
|
+
constructor(path: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Whether the project the core works in belongs to a team, and what its user may do there: checked as the app starts,
|
|
22
|
+
* as its user signs in or out, as the config changes on disk, and every 10 minutes.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TeamController {
|
|
25
|
+
private readonly store;
|
|
26
|
+
private readonly account;
|
|
27
|
+
readonly root: string;
|
|
28
|
+
/** The project's decisions, while the user is a member of it. */
|
|
29
|
+
decisions?: DecisionStore;
|
|
30
|
+
/** Each folder's commits, read once until git moves; every session sorts the decisions by its folder's. */
|
|
31
|
+
readonly history: History;
|
|
32
|
+
private timer?;
|
|
33
|
+
private watcher?;
|
|
34
|
+
private git?;
|
|
35
|
+
private watchingGit;
|
|
36
|
+
private checks;
|
|
37
|
+
private readonly listeners;
|
|
38
|
+
constructor(store: Store, folder: string, account: JinionAccount);
|
|
39
|
+
start(): void;
|
|
40
|
+
stop(): void;
|
|
41
|
+
/** Each time the decisions or the repository's git change, which every session's view of the decisions sorts by. */
|
|
42
|
+
onChange(listener: () => void): () => undefined;
|
|
43
|
+
/** Checks now; only the latest check's answer is kept, so a slow one can't undo a newer one. */
|
|
44
|
+
refresh(): Promise<{
|
|
45
|
+
state: "unlinked";
|
|
46
|
+
} | {
|
|
47
|
+
state: "invalid";
|
|
48
|
+
problem: string;
|
|
49
|
+
} | {
|
|
50
|
+
state: "signed-out";
|
|
51
|
+
} | {
|
|
52
|
+
state: "member";
|
|
53
|
+
role: "admin" | "member" | "owner";
|
|
54
|
+
workspace: {
|
|
55
|
+
id: string;
|
|
56
|
+
name: string;
|
|
57
|
+
slug: string;
|
|
58
|
+
};
|
|
59
|
+
project: {
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
remoteUrl?: string | undefined;
|
|
63
|
+
};
|
|
64
|
+
} | {
|
|
65
|
+
state: "requested";
|
|
66
|
+
workspace: {
|
|
67
|
+
name: string;
|
|
68
|
+
};
|
|
69
|
+
} | {
|
|
70
|
+
state: "no-access";
|
|
71
|
+
workspace: {
|
|
72
|
+
name: string;
|
|
73
|
+
};
|
|
74
|
+
canRequest: boolean;
|
|
75
|
+
} | {
|
|
76
|
+
state: "not-found";
|
|
77
|
+
} | {
|
|
78
|
+
state: "mismatch";
|
|
79
|
+
} | {
|
|
80
|
+
state: "offline";
|
|
81
|
+
known?: {
|
|
82
|
+
state: "unlinked";
|
|
83
|
+
} | {
|
|
84
|
+
state: "invalid";
|
|
85
|
+
problem: string;
|
|
86
|
+
} | {
|
|
87
|
+
state: "signed-out";
|
|
88
|
+
} | {
|
|
89
|
+
state: "member";
|
|
90
|
+
role: "admin" | "member" | "owner";
|
|
91
|
+
workspace: {
|
|
92
|
+
id: string;
|
|
93
|
+
name: string;
|
|
94
|
+
slug: string;
|
|
95
|
+
};
|
|
96
|
+
project: {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
remoteUrl?: string | undefined;
|
|
100
|
+
};
|
|
101
|
+
} | {
|
|
102
|
+
state: "requested";
|
|
103
|
+
workspace: {
|
|
104
|
+
name: string;
|
|
105
|
+
};
|
|
106
|
+
} | {
|
|
107
|
+
state: "no-access";
|
|
108
|
+
workspace: {
|
|
109
|
+
name: string;
|
|
110
|
+
};
|
|
111
|
+
canRequest: boolean;
|
|
112
|
+
} | {
|
|
113
|
+
state: "not-found";
|
|
114
|
+
} | {
|
|
115
|
+
state: "mismatch";
|
|
116
|
+
} | undefined;
|
|
117
|
+
}>;
|
|
118
|
+
/** Takes in what teammates recorded since; offline, the copy stays as it is. */
|
|
119
|
+
syncDecisions(): Promise<void>;
|
|
120
|
+
/** Writes jinion.config.json for a project of the workspace, made for this repository unless `projectId` names one. */
|
|
121
|
+
link({ workspaceId, projectId, name, overwrite }: LinkOptions): Promise<{
|
|
122
|
+
path: string;
|
|
123
|
+
project: {
|
|
124
|
+
id: string;
|
|
125
|
+
name: string;
|
|
126
|
+
remoteUrl: string;
|
|
127
|
+
};
|
|
128
|
+
}>;
|
|
129
|
+
requestAccess(message?: string): Promise<{
|
|
130
|
+
state: "unlinked";
|
|
131
|
+
} | {
|
|
132
|
+
state: "invalid";
|
|
133
|
+
problem: string;
|
|
134
|
+
} | {
|
|
135
|
+
state: "signed-out";
|
|
136
|
+
} | {
|
|
137
|
+
state: "member";
|
|
138
|
+
role: "admin" | "member" | "owner";
|
|
139
|
+
workspace: {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
slug: string;
|
|
143
|
+
};
|
|
144
|
+
project: {
|
|
145
|
+
id: string;
|
|
146
|
+
name: string;
|
|
147
|
+
remoteUrl?: string | undefined;
|
|
148
|
+
};
|
|
149
|
+
} | {
|
|
150
|
+
state: "requested";
|
|
151
|
+
workspace: {
|
|
152
|
+
name: string;
|
|
153
|
+
};
|
|
154
|
+
} | {
|
|
155
|
+
state: "no-access";
|
|
156
|
+
workspace: {
|
|
157
|
+
name: string;
|
|
158
|
+
};
|
|
159
|
+
canRequest: boolean;
|
|
160
|
+
} | {
|
|
161
|
+
state: "not-found";
|
|
162
|
+
} | {
|
|
163
|
+
state: "mismatch";
|
|
164
|
+
} | {
|
|
165
|
+
state: "offline";
|
|
166
|
+
known?: {
|
|
167
|
+
state: "unlinked";
|
|
168
|
+
} | {
|
|
169
|
+
state: "invalid";
|
|
170
|
+
problem: string;
|
|
171
|
+
} | {
|
|
172
|
+
state: "signed-out";
|
|
173
|
+
} | {
|
|
174
|
+
state: "member";
|
|
175
|
+
role: "admin" | "member" | "owner";
|
|
176
|
+
workspace: {
|
|
177
|
+
id: string;
|
|
178
|
+
name: string;
|
|
179
|
+
slug: string;
|
|
180
|
+
};
|
|
181
|
+
project: {
|
|
182
|
+
id: string;
|
|
183
|
+
name: string;
|
|
184
|
+
remoteUrl?: string | undefined;
|
|
185
|
+
};
|
|
186
|
+
} | {
|
|
187
|
+
state: "requested";
|
|
188
|
+
workspace: {
|
|
189
|
+
name: string;
|
|
190
|
+
};
|
|
191
|
+
} | {
|
|
192
|
+
state: "no-access";
|
|
193
|
+
workspace: {
|
|
194
|
+
name: string;
|
|
195
|
+
};
|
|
196
|
+
canRequest: boolean;
|
|
197
|
+
} | {
|
|
198
|
+
state: "not-found";
|
|
199
|
+
} | {
|
|
200
|
+
state: "mismatch";
|
|
201
|
+
} | undefined;
|
|
202
|
+
}>;
|
|
203
|
+
/** A member keeps a copy of the project's decisions; someone who lost access, or signed out, keeps none. */
|
|
204
|
+
private keepDecisions;
|
|
205
|
+
/**
|
|
206
|
+
* HEAD, the branches, a fetch and the worktrees' own HEADs all live in the repository's common git folder; anything
|
|
207
|
+
* else there, such as new objects, says nothing of which commits a folder has.
|
|
208
|
+
*/
|
|
209
|
+
private watchGit;
|
|
210
|
+
private stopWatchingGit;
|
|
211
|
+
private changed;
|
|
212
|
+
private check;
|
|
213
|
+
private ask;
|
|
214
|
+
private ownProject;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/controllers/team.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AAgBrD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,wIAAmI,CAAC;AAE7J,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,kHAAkH;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+GAA+G;AAC/G,qBAAa,aAAc,SAAQ,KAAK;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAjC,YAAqB,IAAI,EAAE,MAAM,EAEhC;CACF;AAED;;;GAGG;AACH,qBAAa,cAAc;IAcvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAf1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,2GAA2G;IAC3G,QAAQ,CAAC,OAAO,UAAiB;IACjC,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAY;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,YACmB,KAAK,EAAE,KAAK,EAC7B,MAAM,EAAE,MAAM,EACG,OAAO,EAAE,aAAa,EAGxC;IAED,KAAK,SAcJ;IAED,IAAI,SAIH;IAED,oHAAoH;IACpH,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,mBAI5B;IAED,gGAAgG;IAC1F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAUZ;IAED,gFAAgF;IAC1E,aAAa,kBAElB;IAED,uHAAuH;IACjH,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW;;;;;;;OAalE;IAEK,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOnC;IAED,4GAA4G;IAC5G,OAAO,CAAC,aAAa;IAoBrB;;;OAGG;YACW,QAAQ;IA4BtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,OAAO;YAID,KAAK;YAiBL,GAAG;YAsBH,UAAU;CAQzB"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { watch } from 'node:fs';
|
|
2
|
+
import { basename } from 'node:path';
|
|
3
|
+
import { ApiRefusal } from '../jinion-account/api.js';
|
|
4
|
+
import { teamAtom } from '../state/team.js';
|
|
5
|
+
import { readConfig, repositoryRoot, writeConfig } from '../team/config.js';
|
|
6
|
+
import { DecisionStore } from '../team/decisions.js';
|
|
7
|
+
import { History, runGit } from '../team/history.js';
|
|
8
|
+
import { repositoryIdentity } from '../team/repository.js';
|
|
9
|
+
import { CONFIG_FILE } from '../team/types.js';
|
|
10
|
+
// Often enough that access an admin granted on the web, and what teammates recorded, show without a restart.
|
|
11
|
+
const CHECK_EVERY_MS = 10 * 60_000;
|
|
12
|
+
/** The files in a repository's common git folder whose change can move which commits a folder has. */
|
|
13
|
+
const MOVES = /^(HEAD|ORIG_HEAD|FETCH_HEAD|packed-refs|refs[/\\]|worktrees[/\\][^/\\]+[/\\]HEAD$)/;
|
|
14
|
+
// A commit, a rebase or a fetch writes several of them at once; they are taken in as one.
|
|
15
|
+
const SETTLE_MS = 200;
|
|
16
|
+
/** The states in which the user may no longer read the project's decisions, so no copy of them stays on the machine. */
|
|
17
|
+
const LOST = new Set(['signed-out', 'no-access', 'requested', 'not-found']);
|
|
18
|
+
/** What a user agrees to by linking, shown before they do. */
|
|
19
|
+
export const LINK_CONSENT = 'The decisions agents record in this project will be shared with the workspace’s members, who can read them on cloud.jinion.co.';
|
|
20
|
+
/** The repository holds a jinion.config.json for another project, which linking replaces only when told to. */
|
|
21
|
+
export class AlreadyLinked extends Error {
|
|
22
|
+
path;
|
|
23
|
+
constructor(path) {
|
|
24
|
+
super(`This repository is already linked to another project. Link it anyway to replace its ${CONFIG_FILE}.`);
|
|
25
|
+
this.path = path;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Whether the project the core works in belongs to a team, and what its user may do there: checked as the app starts,
|
|
30
|
+
* as its user signs in or out, as the config changes on disk, and every 10 minutes.
|
|
31
|
+
*/
|
|
32
|
+
export class TeamController {
|
|
33
|
+
store;
|
|
34
|
+
account;
|
|
35
|
+
root;
|
|
36
|
+
/** The project's decisions, while the user is a member of it. */
|
|
37
|
+
decisions;
|
|
38
|
+
/** Each folder's commits, read once until git moves; every session sorts the decisions by its folder's. */
|
|
39
|
+
history = new History();
|
|
40
|
+
timer;
|
|
41
|
+
watcher;
|
|
42
|
+
git;
|
|
43
|
+
watchingGit = false;
|
|
44
|
+
checks = 0;
|
|
45
|
+
listeners = new Set();
|
|
46
|
+
constructor(store, folder, account) {
|
|
47
|
+
this.store = store;
|
|
48
|
+
this.account = account;
|
|
49
|
+
this.root = repositoryRoot(folder);
|
|
50
|
+
}
|
|
51
|
+
start() {
|
|
52
|
+
void this.refresh();
|
|
53
|
+
this.timer = setInterval(() => void this.refresh(), CHECK_EVERY_MS);
|
|
54
|
+
this.timer.unref();
|
|
55
|
+
try {
|
|
56
|
+
this.watcher = watch(this.root, (_, file) => {
|
|
57
|
+
if (file === CONFIG_FILE)
|
|
58
|
+
void this.refresh();
|
|
59
|
+
});
|
|
60
|
+
this.watcher.unref();
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// A folder that can't be watched is still checked every 10 minutes.
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
stop() {
|
|
67
|
+
clearInterval(this.timer);
|
|
68
|
+
this.watcher?.close();
|
|
69
|
+
this.stopWatchingGit();
|
|
70
|
+
}
|
|
71
|
+
/** Each time the decisions or the repository's git change, which every session's view of the decisions sorts by. */
|
|
72
|
+
onChange(listener) {
|
|
73
|
+
this.listeners.add(listener);
|
|
74
|
+
return () => void this.listeners.delete(listener);
|
|
75
|
+
}
|
|
76
|
+
/** Checks now; only the latest check's answer is kept, so a slow one can't undo a newer one. */
|
|
77
|
+
async refresh() {
|
|
78
|
+
const check = ++this.checks;
|
|
79
|
+
const state = await this.check();
|
|
80
|
+
if (check === this.checks) {
|
|
81
|
+
this.store.set(teamAtom, state);
|
|
82
|
+
this.keepDecisions(state);
|
|
83
|
+
}
|
|
84
|
+
return state;
|
|
85
|
+
}
|
|
86
|
+
/** Takes in what teammates recorded since; offline, the copy stays as it is. */
|
|
87
|
+
async syncDecisions() {
|
|
88
|
+
await this.decisions?.sync().catch(() => { });
|
|
89
|
+
}
|
|
90
|
+
/** Writes jinion.config.json for a project of the workspace, made for this repository unless `projectId` names one. */
|
|
91
|
+
async link({ workspaceId, projectId, name, overwrite }) {
|
|
92
|
+
const identity = await repositoryIdentity(this.root);
|
|
93
|
+
if (!identity)
|
|
94
|
+
throw new Error('Link the repository once it has a commit and a remote it is pushed to, such as one on GitHub.');
|
|
95
|
+
const found = readConfig(this.root);
|
|
96
|
+
if (found && found.config?.projectId !== projectId && !overwrite)
|
|
97
|
+
throw new AlreadyLinked(found.path);
|
|
98
|
+
const project = projectId ? await this.ownProject(workspaceId, projectId, identity) : await this.account.createProject(workspaceId, { name: name ?? basename(this.root), ...identity });
|
|
99
|
+
const path = writeConfig(this.root, { workspaceId, projectId: project.id });
|
|
100
|
+
await this.refresh();
|
|
101
|
+
return { path, project };
|
|
102
|
+
}
|
|
103
|
+
async requestAccess(message) {
|
|
104
|
+
const config = readConfig(this.root)?.config;
|
|
105
|
+
if (!config)
|
|
106
|
+
throw new Error(`This repository has no ${CONFIG_FILE} that names a project to ask for.`);
|
|
107
|
+
await this.account.requestAccess(config.projectId, message);
|
|
108
|
+
return this.refresh();
|
|
109
|
+
}
|
|
110
|
+
/** A member keeps a copy of the project's decisions; someone who lost access, or signed out, keeps none. */
|
|
111
|
+
keepDecisions(state) {
|
|
112
|
+
if (state.state === 'member') {
|
|
113
|
+
if (this.decisions?.projectId !== state.project.id)
|
|
114
|
+
this.decisions = new DecisionStore(state.project.id, this.account, () => this.changed());
|
|
115
|
+
void this.watchGit();
|
|
116
|
+
void this.syncDecisions();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (state.state === 'offline')
|
|
120
|
+
return;
|
|
121
|
+
const projectId = this.decisions?.projectId ?? readConfig(this.root)?.config?.projectId;
|
|
122
|
+
if (projectId && LOST.has(state.state))
|
|
123
|
+
new DecisionStore(projectId, this.account).purge();
|
|
124
|
+
this.decisions = undefined;
|
|
125
|
+
this.stopWatchingGit();
|
|
126
|
+
this.changed();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* HEAD, the branches, a fetch and the worktrees' own HEADs all live in the repository's common git folder; anything
|
|
130
|
+
* else there, such as new objects, says nothing of which commits a folder has.
|
|
131
|
+
*/
|
|
132
|
+
async watchGit() {
|
|
133
|
+
if (this.watchingGit)
|
|
134
|
+
return;
|
|
135
|
+
this.watchingGit = true;
|
|
136
|
+
const common = (await runGit(this.root, ['rev-parse', '--path-format=absolute', '--git-common-dir']).catch(() => '')).trim();
|
|
137
|
+
if (!common || !this.watchingGit)
|
|
138
|
+
return;
|
|
139
|
+
let soon;
|
|
140
|
+
try {
|
|
141
|
+
this.git = watch(common, { recursive: true }, (_, file) => {
|
|
142
|
+
if (!file || !MOVES.test(file))
|
|
143
|
+
return;
|
|
144
|
+
clearTimeout(soon);
|
|
145
|
+
soon = setTimeout(() => {
|
|
146
|
+
this.history.forget();
|
|
147
|
+
this.changed();
|
|
148
|
+
}, SETTLE_MS);
|
|
149
|
+
});
|
|
150
|
+
this.git.unref();
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// Without a watcher, what moved shows after the next turn or check.
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
stopWatchingGit() {
|
|
157
|
+
this.watchingGit = false;
|
|
158
|
+
this.git?.close();
|
|
159
|
+
this.git = undefined;
|
|
160
|
+
}
|
|
161
|
+
changed() {
|
|
162
|
+
for (const listener of this.listeners)
|
|
163
|
+
listener();
|
|
164
|
+
}
|
|
165
|
+
async check() {
|
|
166
|
+
const found = readConfig(this.root);
|
|
167
|
+
if (!found)
|
|
168
|
+
return { state: 'unlinked' };
|
|
169
|
+
if (found.problem !== undefined)
|
|
170
|
+
return { state: 'invalid', problem: found.problem };
|
|
171
|
+
if (!this.account.user())
|
|
172
|
+
return { state: 'signed-out' };
|
|
173
|
+
try {
|
|
174
|
+
return await this.ask(found.config);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
if (error instanceof ApiRefusal && error.status === 401)
|
|
178
|
+
return { state: 'signed-out' };
|
|
179
|
+
const before = this.store.get(teamAtom);
|
|
180
|
+
return { state: 'offline', known: before?.state === 'offline' ? before.known : before };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async ask(config) {
|
|
184
|
+
const access = await this.account.projectAccess(config.projectId);
|
|
185
|
+
switch (access.access) {
|
|
186
|
+
case 'not-found':
|
|
187
|
+
return { state: 'not-found' };
|
|
188
|
+
case 'requested':
|
|
189
|
+
return { state: 'requested', workspace: access.workspace };
|
|
190
|
+
case 'none':
|
|
191
|
+
return { state: 'no-access', workspace: access.workspace, canRequest: access.canRequest };
|
|
192
|
+
case 'member': {
|
|
193
|
+
const identity = await repositoryIdentity(this.root);
|
|
194
|
+
const ours = access.workspace.id === config.workspaceId && identity !== undefined && (await this.account.verifyProject(config.projectId, identity));
|
|
195
|
+
return ours ? { state: 'member', role: access.role, workspace: access.workspace, project: access.project } : { state: 'mismatch' };
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async ownProject(workspaceId, projectId, identity) {
|
|
200
|
+
const project = (await this.account.projects(workspaceId)).find((each) => each.id === projectId);
|
|
201
|
+
if (!project)
|
|
202
|
+
throw new Error('That project isn’t in this workspace.');
|
|
203
|
+
if (!(await this.account.verifyProject(projectId, identity)))
|
|
204
|
+
throw new Error(`${project.name} is the project of ${project.remoteUrl}, not of this repository.`);
|
|
205
|
+
return project;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/controllers/team.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export interface TurnHooks {
|
|
|
12
12
|
preparing(): Promise<void>;
|
|
13
13
|
/** After a turn ends, before anything queued is sent, with what it tells of itself. */
|
|
14
14
|
ended(turn: EndedTurn): void;
|
|
15
|
+
/** Whether the agent records the decisions it makes for the project's team. */
|
|
16
|
+
recordsDecisions(): boolean;
|
|
17
|
+
/** The decisions that bind the work, again, once they changed since the agent was told them. */
|
|
18
|
+
decisionsNote(): string | undefined;
|
|
15
19
|
}
|
|
16
20
|
/** A turn's metadata at its end, which the session completes with its backend, model and folder. */
|
|
17
21
|
export type EndedTurn = Omit<TurnRecord, 'backend' | 'model' | 'session' | 'folder'> & {
|
|
@@ -27,6 +31,8 @@ export declare class TurnController {
|
|
|
27
31
|
private agentTurnWaiting;
|
|
28
32
|
/** What the running turn showed so far, for its record at its end. */
|
|
29
33
|
private marks;
|
|
34
|
+
/** The user answered a question or approved a plan since the last turn began, which may have settled a decision. */
|
|
35
|
+
private settled;
|
|
30
36
|
constructor(context: SessionContext, dialogs: DialogController, attachments: AttachmentController, hooks: TurnHooks);
|
|
31
37
|
get working(): boolean;
|
|
32
38
|
prompt(submission: Submission): Promise<void>;
|
|
@@ -62,6 +68,7 @@ export declare class TurnController {
|
|
|
62
68
|
private firstEntry;
|
|
63
69
|
/** What the agent asks during the turn goes to the user as dialogs; cancelling one stops the turn. */
|
|
64
70
|
private runContext;
|
|
71
|
+
private note;
|
|
65
72
|
/** The agent got them even when it didn't say it read them, so they stay in the conversation, in this turn. */
|
|
66
73
|
private readTheRest;
|
|
67
74
|
private returnQueueToPrompt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turns.d.ts","sourceRoot":"","sources":["../../src/controllers/turns.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"turns.d.ts","sourceRoot":"","sources":["../../src/controllers/turns.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAG/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGpE,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,uBAAuB,CAAC;AAKpE,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,qFAAqF;IACrF,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,uFAAuF;IACvF,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,+EAA+E;IAC/E,gBAAgB,IAAI,OAAO,CAAC;IAC5B,gGAAgG;IAChG,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,oGAAoG;AACpG,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG;IACrF,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF,qBAAa,cAAc;IASvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXxB,gGAAgG;IAChG,OAAO,CAAC,gBAAgB,CAAS;IACjC,sEAAsE;IACtE,OAAO,CAAC,KAAK,CAAyB;IACtC,oHAAoH;IACpH,OAAO,CAAC,OAAO,CAAS;IAExB,YACmB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,SAAS,EAC/B;IAEJ,IAAI,OAAO,YAEV;IAEK,MAAM,CAAC,UAAU,EAAE,UAAU,iBAWlC;IAED,KAAK,CAAC,UAAU,EAAE,UAAU,QAW3B;IAED,qGAAqG;IACrG,IAAI,CAAC,EAAE,EAAE,MAAM,QASd;IAED,gHAAgH;IAC1G,OAAO,sBAcZ;IAED,OAAO,CAAC,UAAU,EAAE,UAAU,QAE7B;IAED,yDAAyD;IACzD,OAAO,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;aASnB;IAED,SAAS,SAER;IAED,WAAW,SAYV;IAED,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QASrB;IAED,OAAO,CAAC,QAAQ;IAIhB,sGAAsG;IACtG,OAAO,CAAC,YAAY;YAYL,cAAc;YAKf,GAAG;IAmDjB,OAAO,CAAC,MAAM;IAmBd,wGAAwG;IACxG,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;IAMlB,sGAAsG;IACtG,OAAO,CAAC,UAAU;IAqDlB,OAAO,CAAC,IAAI;IAQZ,+GAA+G;IAC/G,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,IAAI;CAcb"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { answerNote } from '../agent/answers.js';
|
|
3
|
+
import { FULL_ACCESS_NOTE } from '../agent/modes.js';
|
|
3
4
|
import { elapsed, plural } from '../lib/format.js';
|
|
4
5
|
import { errorMessage } from '../lib/errors.js';
|
|
5
6
|
import { quote } from '../lib/text.js';
|
|
@@ -9,6 +10,7 @@ import { DialogCancelled } from './dialogs.js';
|
|
|
9
10
|
import { promptOf } from '../prompt/submission.js';
|
|
10
11
|
import { asksBeforeCommits } from '../settings/project.js';
|
|
11
12
|
import { loadSettings } from '../settings/user.js';
|
|
13
|
+
import { SETTLED } from '../team/prompt.js';
|
|
12
14
|
const LONG_TURN_MS = 15_000;
|
|
13
15
|
// A backend says a usage or rate limit stopped the turn only in the error's own words.
|
|
14
16
|
const LIMIT = /\b(rate.?limit|usage limit|quota|limit reached|too many requests)\b/i;
|
|
@@ -21,6 +23,8 @@ export class TurnController {
|
|
|
21
23
|
agentTurnWaiting = false;
|
|
22
24
|
/** What the running turn showed so far, for its record at its end. */
|
|
23
25
|
marks = new Set();
|
|
26
|
+
/** The user answered a question or approved a plan since the last turn began, which may have settled a decision. */
|
|
27
|
+
settled = false;
|
|
24
28
|
constructor(context, dialogs, attachments, hooks) {
|
|
25
29
|
this.context = context;
|
|
26
30
|
this.dialogs = dialogs;
|
|
@@ -218,9 +222,15 @@ export class TurnController {
|
|
|
218
222
|
abort.abort();
|
|
219
223
|
throw error;
|
|
220
224
|
});
|
|
225
|
+
const settled = this.settled && this.hooks.recordsDecisions();
|
|
226
|
+
this.settled = false;
|
|
221
227
|
return {
|
|
222
228
|
signal,
|
|
223
|
-
ask: (questions) =>
|
|
229
|
+
ask: async (questions) => {
|
|
230
|
+
const answers = await stopOnCancel(this.dialogs.open({ id: 'ask', questions }, { message: `jinion asks: ${questions[0]?.prompt ?? 'a question'}`, signal }));
|
|
231
|
+
this.settled = true;
|
|
232
|
+
return answers;
|
|
233
|
+
},
|
|
224
234
|
approve: async (request, call) => {
|
|
225
235
|
if (call)
|
|
226
236
|
this.dispatch({ type: 'approval', id: call, waiting: true });
|
|
@@ -238,17 +248,24 @@ export class TurnController {
|
|
|
238
248
|
},
|
|
239
249
|
approvePlan: async (modes) => {
|
|
240
250
|
const decision = await stopOnCancel(this.dialogs.open({ id: 'plan', modes }, { message: 'The plan is ready for you to review.', signal }));
|
|
241
|
-
if (decision.approve)
|
|
251
|
+
if (decision.approve) {
|
|
242
252
|
this.hooks.planAccepted(decision.mode);
|
|
253
|
+
this.settled = true;
|
|
254
|
+
}
|
|
243
255
|
else
|
|
244
256
|
this.marks.add('plan-rejected');
|
|
245
257
|
return decision;
|
|
246
258
|
},
|
|
247
259
|
asksBeforeCommits: () => asksBeforeCommits(this.context.info.cwd),
|
|
248
|
-
|
|
249
|
-
note: answerNote(loadSettings().answers ?? 'balanced'),
|
|
260
|
+
note: this.note(settled),
|
|
250
261
|
};
|
|
251
262
|
}
|
|
263
|
+
note(settled) {
|
|
264
|
+
// From the file, not the atom: in the desktop app each project's core may have changed it since this one read it.
|
|
265
|
+
const answers = answerNote(loadSettings().answers ?? 'balanced');
|
|
266
|
+
const full = this.context.store.get(this.context.atoms.mode) === 'full' && FULL_ACCESS_NOTE;
|
|
267
|
+
return [answers, full, settled && SETTLED, this.hooks.decisionsNote()].filter(Boolean).join('\n\n') || undefined;
|
|
268
|
+
}
|
|
252
269
|
/** The agent got them even when it didn't say it read them, so they stay in the conversation, in this turn. */
|
|
253
270
|
readTheRest() {
|
|
254
271
|
for (const { id } of this.context.store.get(this.context.atoms.unread))
|