@agents-ensemble/cli 0.7.0 → 0.8.0
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/README.md +12 -4
- package/dist/conductor-auth-command.d.ts +18 -0
- package/dist/conductor-auth-command.d.ts.map +1 -0
- package/dist/conductor-auth-command.js +172 -0
- package/dist/conductor-auth-command.js.map +1 -0
- package/dist/index.js +52 -24
- package/dist/index.js.map +1 -1
- package/dist/session-log-lines.d.ts.map +1 -1
- package/dist/session-log-lines.js +10 -5
- package/dist/session-log-lines.js.map +1 -1
- package/dist/session-sinks.d.ts.map +1 -1
- package/dist/session-sinks.js +1 -0
- package/dist/session-sinks.js.map +1 -1
- package/docs/config.md +3 -1
- package/docs/settings.md +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -25,14 +25,16 @@ conductor:
|
|
|
25
25
|
backend: pi
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
Pi backend は Pi
|
|
28
|
+
Pi backend は Pi の設定ファイルを読みます。モデル設定は次のいずれかの resource root に置き、認証は `ensemble auth` または Pi の環境変数・設定ファイルから provider 単位で解決します(プロジェクト設定がユーザ設定を上書きします)。
|
|
29
29
|
|
|
30
30
|
| 層 | パス |
|
|
31
31
|
|----|------|
|
|
32
32
|
| ユーザ | `~/.ensemble/pi/` |
|
|
33
33
|
| プロジェクト | `<repoRoot>/.ensemble/pi/` |
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
`ensemble auth login` は設定済みの conductor backend に分岐します。Cursor は Cursor SDK のブラウザログイン、Pi は **provider 単位のログイン**です。Pi では `--provider <id>` を指定でき、省略時は Pi `settings.json` の `defaultProvider`(または選択モデル)から決まります。API-key provider は TTY の secret prompt から `~/.ensemble/pi/auth.json`(または `conductor.pi.agentDir` の `auth.json`)へ保存し、OAuth provider は Pi の `AuthStorage.login` を使って URL・device code を stderr に表示します。`ensemble auth logout` は選択 provider の user 層 credential を削除し、`ensemble auth status` は秘密値を表示せず状態・保存先を示します。プロジェクト層の `<repoRoot>/.ensemble/pi/auth.json` は既存の project-over-user 読取優先を保ち、login が書き換えることはありません。project 層の明示的な OAuth credential は refresh できないため実行時には使わず、`ensemble auth login --provider <id>` で user 層へ保存する必要があります。`ensemble models list` は認証済み Pi model のみを表示します。
|
|
36
|
+
|
|
37
|
+
Pi の resource root は `~/.ensemble/pi/` と `<repoRoot>/.ensemble/pi/` です。`conductor.pi.agentDir` / `conductor.pi.projectDir` で root のみ上書きできます。`settings.json` / `auth.json` / `models.json` / `extensions/` / `skills/` / `prompts/` / `themes/` を解決し、skills は compiled system prompt に追加され、prompts は `/name args` として展開されます。themes は headless conductor で読み込み・project 同名解決まで行いますが、TUI renderer がないため色・表示設定は適用しません。`.ensemble/pi/SYSTEM.md` / `APPEND_SYSTEM.md` は conductor の system prompt には使わず、modular-prompt のコンパイル結果を優先します。
|
|
36
38
|
|
|
37
39
|
`settings.json` の headless 対応は、モデル選択(`defaultProvider` / `defaultModel`)、認証 fallback(`apiKey` / `apiKeys`)、resource path(`extensions` / `skills` / `prompts` / `themes`)に限定されます。`defaultThinkingLevel`、`thinkingBudgets`、`packages`、`enableSkillCommands` など Pi coding-agent の挙動・TUI・package 設定は警告なしで無視します。詳細な対応キーと失敗モードは [config.md の headless 対応範囲](../config.md#settingsjson-の-headless-対応範囲) を参照してください。
|
|
38
40
|
|
|
@@ -52,16 +54,22 @@ backend を選んだ後の主経路は共通です。リポジトリのディレ
|
|
|
52
54
|
|------|------|
|
|
53
55
|
| worker(既定の Cursor ACP) | `agent login` |
|
|
54
56
|
| conductor(Cursor SDK、既定) | `ensemble auth login` |
|
|
55
|
-
| conductor(Pi) |
|
|
57
|
+
| conductor(Pi、API key) | `ensemble auth login --provider <id>`(TTY の secret prompt) |
|
|
58
|
+
| conductor(Pi、OAuth) | `ensemble auth login --provider <id>`(TTY。URL / device code は stderr) |
|
|
56
59
|
| GitHub API(gh CLI を使う場合) | `gh auth login` |
|
|
57
60
|
|
|
58
61
|
```bash
|
|
59
62
|
# worker(既定の Cursor ACP)
|
|
60
63
|
agent login
|
|
61
64
|
|
|
62
|
-
# conductor(Cursor SDK
|
|
65
|
+
# conductor(Cursor SDK を使う場合)
|
|
63
66
|
ensemble auth login
|
|
64
67
|
|
|
68
|
+
# conductor(Pi を使う場合。provider 省略時は settings.json から解決)
|
|
69
|
+
ensemble auth login --provider <provider-id>
|
|
70
|
+
ensemble auth status
|
|
71
|
+
ensemble models list
|
|
72
|
+
|
|
65
73
|
# GitHub API(gh CLI を使う場合)
|
|
66
74
|
gh auth login
|
|
67
75
|
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ConductorAuthOptions, type ConductorAuthStatus, type ConductorLoginResult, type ConductorLogoutResult, type EnsembleConfig, type ResolvedProfile } from '@agents-ensemble/core';
|
|
2
|
+
export interface ConductorCommandOptions {
|
|
3
|
+
repoRoot?: string;
|
|
4
|
+
profile?: string;
|
|
5
|
+
provider?: string;
|
|
6
|
+
modelId?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ResolvedConductorCommandContext {
|
|
9
|
+
repoRoot: string;
|
|
10
|
+
config: EnsembleConfig;
|
|
11
|
+
profile: ResolvedProfile;
|
|
12
|
+
auth: ConductorAuthOptions;
|
|
13
|
+
}
|
|
14
|
+
export declare function resolveConductorCommandContext(options?: ConductorCommandOptions): Promise<ResolvedConductorCommandContext>;
|
|
15
|
+
export declare function runConductorLogin(options?: ConductorCommandOptions): Promise<ConductorLoginResult>;
|
|
16
|
+
export declare function runConductorLogout(options?: ConductorCommandOptions): Promise<ConductorLogoutResult>;
|
|
17
|
+
export declare function runConductorAuthStatus(options?: ConductorCommandOptions): Promise<ConductorAuthStatus>;
|
|
18
|
+
//# sourceMappingURL=conductor-auth-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conductor-auth-command.d.ts","sourceRoot":"","sources":["../src/conductor-auth-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAUL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,wBAAsB,8BAA8B,CAClD,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CAsC1C;AAED,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAGhC;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAG9B"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { createInterface } from 'node:readline';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { getConductorAuthStatus, isPiConductorOAuthProvider, loadEnsembleConfig, loadProfile, loginConductor, logoutConductor, resolvePiConductorProvider, resolveConductorAuthBackend, resolveConductorPiResourcePaths, } from '@agents-ensemble/core';
|
|
4
|
+
export async function resolveConductorCommandContext(options = {}) {
|
|
5
|
+
const repoRoot = resolve(options.repoRoot ?? process.cwd());
|
|
6
|
+
const config = await loadEnsembleConfig(repoRoot);
|
|
7
|
+
const profile = (await loadProfile({
|
|
8
|
+
profile: options.profile,
|
|
9
|
+
cwd: repoRoot,
|
|
10
|
+
config,
|
|
11
|
+
})).profile;
|
|
12
|
+
const backend = resolveConductorAuthBackend({ profile, config });
|
|
13
|
+
const configuredModel = config.conductor.model !== 'default' && config.conductor.model !== 'auto'
|
|
14
|
+
? config.conductor.model
|
|
15
|
+
: undefined;
|
|
16
|
+
const pi = backend === 'pi'
|
|
17
|
+
? {
|
|
18
|
+
cwd: repoRoot,
|
|
19
|
+
pi: resolveConductorPiResourcePaths({ repoRoot, config }),
|
|
20
|
+
}
|
|
21
|
+
: undefined;
|
|
22
|
+
return {
|
|
23
|
+
repoRoot,
|
|
24
|
+
config,
|
|
25
|
+
profile,
|
|
26
|
+
auth: {
|
|
27
|
+
backend,
|
|
28
|
+
profile,
|
|
29
|
+
config,
|
|
30
|
+
...(pi ? { pi } : {}),
|
|
31
|
+
...(options.provider ? { provider: options.provider } : {}),
|
|
32
|
+
...(options.modelId ?? configuredModel
|
|
33
|
+
? { modelId: options.modelId ?? configuredModel }
|
|
34
|
+
: {}),
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export async function runConductorLogin(options = {}) {
|
|
39
|
+
const context = await resolveConductorCommandContext(options);
|
|
40
|
+
if (context.auth.backend !== 'pi') {
|
|
41
|
+
return loginConductor(context.auth);
|
|
42
|
+
}
|
|
43
|
+
const piOptions = context.auth.pi;
|
|
44
|
+
const providerOptions = {
|
|
45
|
+
...piOptions,
|
|
46
|
+
...(context.auth.modelId ? { modelId: context.auth.modelId } : {}),
|
|
47
|
+
...(options.provider ? { provider: options.provider } : {}),
|
|
48
|
+
...(options.modelId ? { modelId: options.modelId } : {}),
|
|
49
|
+
};
|
|
50
|
+
const oauth = await isPiConductorOAuthProvider(providerOptions);
|
|
51
|
+
if (oauth) {
|
|
52
|
+
requireInteractiveTty('Pi OAuth login');
|
|
53
|
+
return loginConductor({
|
|
54
|
+
...context.auth,
|
|
55
|
+
oauthCallbacks: createOAuthLoginCallbacks(),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const provider = options.provider ?? (await resolvePiConductorProvider(providerOptions));
|
|
59
|
+
const apiKey = await promptSecret(`Pi API key for ${provider}: `);
|
|
60
|
+
return loginConductor({
|
|
61
|
+
...context.auth,
|
|
62
|
+
provider,
|
|
63
|
+
apiKey,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export async function runConductorLogout(options = {}) {
|
|
67
|
+
const context = await resolveConductorCommandContext(options);
|
|
68
|
+
return logoutConductor(context.auth);
|
|
69
|
+
}
|
|
70
|
+
export async function runConductorAuthStatus(options = {}) {
|
|
71
|
+
const context = await resolveConductorCommandContext(options);
|
|
72
|
+
return getConductorAuthStatus(context.auth);
|
|
73
|
+
}
|
|
74
|
+
function requireInteractiveTty(operation) {
|
|
75
|
+
if (!process.stdin.isTTY) {
|
|
76
|
+
throw new Error(`${operation} requires a TTY. Run it from an interactive terminal (SSH is supported), or configure Pi auth.json/environment credentials manually.`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function promptSecret(prompt) {
|
|
80
|
+
requireInteractiveTty('Pi API-key login');
|
|
81
|
+
const input = process.stdin;
|
|
82
|
+
const output = process.stderr;
|
|
83
|
+
return new Promise((resolveAnswer, reject) => {
|
|
84
|
+
let answer = '';
|
|
85
|
+
let settled = false;
|
|
86
|
+
const cleanup = () => {
|
|
87
|
+
input.off('data', onData);
|
|
88
|
+
if (input.setRawMode)
|
|
89
|
+
input.setRawMode(false);
|
|
90
|
+
input.pause();
|
|
91
|
+
};
|
|
92
|
+
const finish = (error) => {
|
|
93
|
+
if (settled)
|
|
94
|
+
return;
|
|
95
|
+
settled = true;
|
|
96
|
+
cleanup();
|
|
97
|
+
output.write('\n');
|
|
98
|
+
if (error)
|
|
99
|
+
reject(error);
|
|
100
|
+
else
|
|
101
|
+
resolveAnswer(answer);
|
|
102
|
+
};
|
|
103
|
+
const onData = (chunk) => {
|
|
104
|
+
for (const character of String(chunk)) {
|
|
105
|
+
if (character === '\u0003') {
|
|
106
|
+
finish(new Error('Pi API-key login cancelled.'));
|
|
107
|
+
}
|
|
108
|
+
else if (character === '\r' || character === '\n') {
|
|
109
|
+
finish();
|
|
110
|
+
}
|
|
111
|
+
else if (character === '\u007f' || character === '\b') {
|
|
112
|
+
answer = answer.slice(0, -1);
|
|
113
|
+
}
|
|
114
|
+
else if (character >= ' ') {
|
|
115
|
+
answer += character;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
output.write(prompt);
|
|
120
|
+
input.resume();
|
|
121
|
+
if (input.setRawMode)
|
|
122
|
+
input.setRawMode(true);
|
|
123
|
+
input.on('data', onData);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function createOAuthLoginCallbacks() {
|
|
127
|
+
const write = (message) => {
|
|
128
|
+
process.stderr.write(`${message}\n`);
|
|
129
|
+
};
|
|
130
|
+
return {
|
|
131
|
+
onAuth: (info) => {
|
|
132
|
+
write(`Open this URL to authenticate Pi: ${info.url}`);
|
|
133
|
+
if (info.instructions)
|
|
134
|
+
write(info.instructions);
|
|
135
|
+
},
|
|
136
|
+
onDeviceCode: (info) => {
|
|
137
|
+
write(`Pi device code: ${info.userCode}`);
|
|
138
|
+
write(`Verification URL: ${info.verificationUri}`);
|
|
139
|
+
if (info.expiresInSeconds)
|
|
140
|
+
write(`Expires in: ${info.expiresInSeconds}s`);
|
|
141
|
+
},
|
|
142
|
+
onProgress: write,
|
|
143
|
+
onPrompt: (prompt) => promptLine(prompt.message),
|
|
144
|
+
onManualCodeInput: () => promptLine('Enter the authorization code: '),
|
|
145
|
+
onSelect: async (prompt) => {
|
|
146
|
+
write(prompt.message);
|
|
147
|
+
prompt.options.forEach((option, index) => write(`${index + 1}) ${option.label}`));
|
|
148
|
+
const answer = await promptLine('Select a login method: ');
|
|
149
|
+
const index = Number.parseInt(answer, 10) - 1;
|
|
150
|
+
return Number.isInteger(index) && prompt.options[index]
|
|
151
|
+
? prompt.options[index].id
|
|
152
|
+
: undefined;
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
async function promptLine(prompt) {
|
|
157
|
+
requireInteractiveTty('Pi OAuth login');
|
|
158
|
+
const readline = createInterface({
|
|
159
|
+
input: process.stdin,
|
|
160
|
+
output: process.stderr,
|
|
161
|
+
terminal: true,
|
|
162
|
+
});
|
|
163
|
+
try {
|
|
164
|
+
return await new Promise((resolveAnswer) => {
|
|
165
|
+
readline.question(prompt, resolveAnswer);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
readline.close();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=conductor-auth-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conductor-auth-command.js","sourceRoot":"","sources":["../src/conductor-auth-command.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
|
-
import {
|
|
4
|
+
import { listConductorModels, resolveIssueUrl, } from '@agents-ensemble/core';
|
|
5
5
|
import { readCliPackageVersion } from './cli-version.js';
|
|
6
6
|
import { executeIssueCommand } from './issue-command.js';
|
|
7
7
|
import { formatModelsListJson, formatModelsListText } from './format-models-list.js';
|
|
@@ -10,6 +10,7 @@ import { resolveIssueSummaryFormat } from './resolve-summary-format.js';
|
|
|
10
10
|
import { writeIssueSessionSummary } from './write-issue-session-summary.js';
|
|
11
11
|
import { formatProfilesListJson, formatProfilesListText } from './format-profiles-list.js';
|
|
12
12
|
import { normalizeInitialOperatorMessage } from './operator-message.js';
|
|
13
|
+
import { runConductorAuthStatus, runConductorLogin, runConductorLogout, resolveConductorCommandContext, } from './conductor-auth-command.js';
|
|
13
14
|
const program = new Command();
|
|
14
15
|
program
|
|
15
16
|
.name('ensemble')
|
|
@@ -64,13 +65,23 @@ program
|
|
|
64
65
|
process.exit(1);
|
|
65
66
|
}
|
|
66
67
|
});
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
function addConductorCommandOptions(command) {
|
|
69
|
+
return command
|
|
70
|
+
.option('--repo-root <path>', 'Repository root used for config, profile, and Pi project resources', process.cwd())
|
|
71
|
+
.option('--profile <name>', 'Team profile used to resolve conductor.backend')
|
|
72
|
+
.option('--provider <id>', 'Pi provider (default: settings.json defaultProvider)')
|
|
73
|
+
.option('--model-id <id>', 'Pi model id used to infer the provider');
|
|
74
|
+
}
|
|
75
|
+
const auth = program.command('auth').description('Conductor authentication');
|
|
76
|
+
addConductorCommandOptions(auth.command('login'))
|
|
77
|
+
.description('Log in to the configured conductor backend (Cursor browser login or Pi provider login)')
|
|
78
|
+
.action(async (options) => {
|
|
72
79
|
try {
|
|
73
|
-
const result = await
|
|
80
|
+
const result = await runConductorLogin(options);
|
|
81
|
+
if ('method' in result) {
|
|
82
|
+
console.log(`Pi: logged in provider ${result.provider} (${result.method}); stored in ${result.authPath}`);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
74
85
|
const who = result.email ?? 'unknown';
|
|
75
86
|
console.log(`Logged in as ${who}`);
|
|
76
87
|
console.log(`API key expires: ${new Date(result.apiKeyExpiresAtMs).toISOString()}`);
|
|
@@ -80,12 +91,15 @@ auth
|
|
|
80
91
|
process.exit(1);
|
|
81
92
|
}
|
|
82
93
|
});
|
|
83
|
-
auth
|
|
84
|
-
.
|
|
85
|
-
.
|
|
86
|
-
.action(async () => {
|
|
94
|
+
addConductorCommandOptions(auth.command('logout'))
|
|
95
|
+
.description('Clear stored credentials for the configured conductor backend')
|
|
96
|
+
.action(async (options) => {
|
|
87
97
|
try {
|
|
88
|
-
await
|
|
98
|
+
const result = await runConductorLogout(options);
|
|
99
|
+
if (result && 'backend' in result && result.backend === 'pi') {
|
|
100
|
+
console.log(`Pi: provider ${result.provider} logged out`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
89
103
|
console.log('SDK: logged out');
|
|
90
104
|
}
|
|
91
105
|
catch (error) {
|
|
@@ -93,12 +107,24 @@ auth
|
|
|
93
107
|
process.exit(1);
|
|
94
108
|
}
|
|
95
109
|
});
|
|
96
|
-
auth
|
|
97
|
-
.
|
|
98
|
-
.
|
|
99
|
-
.action(async () => {
|
|
110
|
+
addConductorCommandOptions(auth.command('status'))
|
|
111
|
+
.description('Show non-secret authentication status for the configured backend')
|
|
112
|
+
.action(async (options) => {
|
|
100
113
|
try {
|
|
101
|
-
const status = await
|
|
114
|
+
const status = await runConductorAuthStatus(options);
|
|
115
|
+
if ('providers' in status) {
|
|
116
|
+
console.log(`Pi auth file: ${status.authPath}`);
|
|
117
|
+
if (status.providers.length === 0) {
|
|
118
|
+
console.log('Pi: no provider credentials configured');
|
|
119
|
+
}
|
|
120
|
+
for (const provider of status.providers) {
|
|
121
|
+
const state = provider.configured ? 'configured' : 'not configured';
|
|
122
|
+
const source = provider.source ? `; source=${provider.source}` : '';
|
|
123
|
+
const label = provider.label ? `; label=${provider.label}` : '';
|
|
124
|
+
console.log(`Pi: ${provider.provider}: ${state}${source}${label}`);
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
102
128
|
if (status.status === 'logged-in') {
|
|
103
129
|
const who = status.email ?? 'unknown';
|
|
104
130
|
const expires = status.apiKeyExpiresAtMs
|
|
@@ -121,16 +147,18 @@ auth
|
|
|
121
147
|
process.exit(1);
|
|
122
148
|
}
|
|
123
149
|
});
|
|
124
|
-
const models = program
|
|
125
|
-
|
|
126
|
-
.description('
|
|
127
|
-
models
|
|
128
|
-
.command('list')
|
|
129
|
-
.description('List models available to the authenticated conductor account')
|
|
150
|
+
const models = program.command('models').description('Conductor model catalog');
|
|
151
|
+
addConductorCommandOptions(models.command('list'))
|
|
152
|
+
.description('List models available to the authenticated conductor backend')
|
|
130
153
|
.option('--json', 'Output JSON')
|
|
131
154
|
.action(async (options) => {
|
|
132
155
|
try {
|
|
133
|
-
const
|
|
156
|
+
const context = await resolveConductorCommandContext(options);
|
|
157
|
+
const catalog = await listConductorModels({
|
|
158
|
+
...context.auth,
|
|
159
|
+
...(options.provider ? { provider: options.provider } : {}),
|
|
160
|
+
...(options.modelId ? { modelId: options.modelId } : {}),
|
|
161
|
+
});
|
|
134
162
|
if (options.json) {
|
|
135
163
|
console.log(formatModelsListJson(catalog));
|
|
136
164
|
return;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-log-lines.d.ts","sourceRoot":"","sources":["../src/session-log-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AA6C/B,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"session-log-lines.d.ts","sourceRoot":"","sources":["../src/session-log-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AA6C/B,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CA4F/E;AAED,sDAAsD;AACtD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CA0CnF;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAmCtF;AAUD,iCAAiC;AACjC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAQtF"}
|
|
@@ -3,24 +3,24 @@ function classifyConductorSendError(message, code) {
|
|
|
3
3
|
const signal = `${message} ${code ?? ''}`;
|
|
4
4
|
if (isConductorAuthError(signal)) {
|
|
5
5
|
return {
|
|
6
|
-
category: 'conductor
|
|
7
|
-
recovery: '
|
|
6
|
+
category: 'conductor の認証障害',
|
|
7
|
+
recovery: '認証状態を確認し、表示された backend 固有の復旧手順で再試行してください',
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
if (/connection stalled repeatedly|connection|transport|network|timeout|timed out|deadline exceeded|unavailable|socket/i.test(signal)) {
|
|
11
11
|
return {
|
|
12
|
-
category: 'conductor
|
|
12
|
+
category: 'conductor の接続障害',
|
|
13
13
|
recovery: '接続状態を確認してから再試行してください',
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
if (/model blocked|content policy|safety/i.test(signal)) {
|
|
17
17
|
return {
|
|
18
|
-
category: 'conductor
|
|
18
|
+
category: 'conductor のモデル拒否',
|
|
19
19
|
recovery: 'モデル設定と入力内容を確認して再試行してください',
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
return {
|
|
23
|
-
category: 'conductor
|
|
23
|
+
category: 'conductor の実行障害',
|
|
24
24
|
recovery: 'エラー詳細を確認し、必要ならセッションを再試行してください',
|
|
25
25
|
};
|
|
26
26
|
}
|
|
@@ -67,6 +67,11 @@ export function formatHarnessLogBody(event) {
|
|
|
67
67
|
}
|
|
68
68
|
case 'permission.pending':
|
|
69
69
|
return renderSessionLogEvent(event);
|
|
70
|
+
case 'permission.cleanup': {
|
|
71
|
+
const worker = event.workerId ? ` worker=${event.workerId}` : '';
|
|
72
|
+
const ids = event.entries.map((entry) => entry.id).join(',');
|
|
73
|
+
return `permission.cleanup reason=${event.reason}${worker} count=${event.entries.length}${ids ? ` ids=${ids}` : ''}`;
|
|
74
|
+
}
|
|
70
75
|
case 'conductor.send': {
|
|
71
76
|
let line = `conductor.send n=${event.sendCount} status=${event.status} workerDone=${event.workerDispatches} workerFailed=${event.workerFailures}`;
|
|
72
77
|
if (event.status === 'error') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-log-lines.js","sourceRoot":"","sources":["../src/session-log-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAO/B,SAAS,0BAA0B,CACjC,OAAe,EACf,IAAa;IAEb,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;IAE1C,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"session-log-lines.js","sourceRoot":"","sources":["../src/session-log-lines.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sinks.d.ts","sourceRoot":"","sources":["../src/session-sinks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CASlF;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"session-sinks.d.ts","sourceRoot":"","sources":["../src/session-sinks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CASlF;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc,CAyCpF;AAED,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,sBAA2B,GACnC,cAAc,CAShB"}
|
package/dist/session-sinks.js
CHANGED
|
@@ -43,6 +43,7 @@ export function createDialogueSink(options = {}) {
|
|
|
43
43
|
case 'session.continue':
|
|
44
44
|
case 'session.post_loop_wait':
|
|
45
45
|
case 'conductor.dispatch_hold':
|
|
46
|
+
case 'permission.cleanup':
|
|
46
47
|
case 'conductor.auth.recovery':
|
|
47
48
|
case 'conductor.auth.reconnect':
|
|
48
49
|
case 'conductor.transport.reconnect':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sinks.js","sourceRoot":"","sources":["../src/session-sinks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAOlE,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,0BAA0B,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAOD,6CAA6C;AAC7C,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,gBAAgB;gBACnB,WAAW,CAAC,eAAe,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;oBACxD,WAAW,CACT,gBAAgB,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CACpE,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,KAAK,kBAAkB,CAAC;YACxB,KAAK,0BAA0B,CAAC;YAChC,KAAK,iCAAiC,CAAC;YACvC,KAAK,gCAAgC,CAAC;YACtC,KAAK,+BAA+B,CAAC;YACrC,KAAK,iCAAiC,CAAC;YACvC,KAAK,8BAA8B,CAAC;YACpC,KAAK,sBAAsB,CAAC;YAC5B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,cAAc,CAAC;YACpB,KAAK,eAAe,CAAC;YACrB,KAAK,uBAAuB,CAAC;YAC7B,KAAK,cAAc,CAAC;YACpB,KAAK,wBAAwB,CAAC;YAC9B,KAAK,qBAAqB,CAAC;YAC3B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,kBAAkB,CAAC;YACxB,KAAK,wBAAwB,CAAC;YAC9B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,0BAA0B,CAAC;YAChC,KAAK,+BAA+B;gBAClC,MAAM;QACV,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAOD,wEAAwE;AACxE,MAAM,UAAU,qBAAqB,CACnC,UAAkC,EAAE;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-sinks.js","sourceRoot":"","sources":["../src/session-sinks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAOlE,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,UAA8B,EAAE;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,0BAA0B,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAOD,6CAA6C;AAC7C,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,gBAAgB;gBACnB,WAAW,CAAC,eAAe,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;oBACxD,WAAW,CACT,gBAAgB,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CACpE,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,KAAK,kBAAkB,CAAC;YACxB,KAAK,0BAA0B,CAAC;YAChC,KAAK,iCAAiC,CAAC;YACvC,KAAK,gCAAgC,CAAC;YACtC,KAAK,+BAA+B,CAAC;YACrC,KAAK,iCAAiC,CAAC;YACvC,KAAK,8BAA8B,CAAC;YACpC,KAAK,sBAAsB,CAAC;YAC5B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,cAAc,CAAC;YACpB,KAAK,eAAe,CAAC;YACrB,KAAK,uBAAuB,CAAC;YAC7B,KAAK,cAAc,CAAC;YACpB,KAAK,wBAAwB,CAAC;YAC9B,KAAK,qBAAqB,CAAC;YAC3B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,kBAAkB,CAAC;YACxB,KAAK,wBAAwB,CAAC;YAC9B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,oBAAoB,CAAC;YAC1B,KAAK,yBAAyB,CAAC;YAC/B,KAAK,0BAA0B,CAAC;YAChC,KAAK,+BAA+B;gBAClC,MAAM;QACV,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAOD,wEAAwE;AACxE,MAAM,UAAU,qBAAqB,CACnC,UAAkC,EAAE;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/docs/config.md
CHANGED
|
@@ -123,6 +123,8 @@ profile / worker に `acp` がある worker は `--default-acp-*` / config `acp.
|
|
|
123
123
|
- `prompts/`: Markdown template を読み込み、`/name args` の user prompt を Pi 標準の引数置換で展開します。
|
|
124
124
|
- `themes/`: Pi 標準 JSON として読み込み、project 同名を優先します。conductor は headless `pi-agent-core` のため TUI renderer がなく、theme の色・表示設定はモデル入出力には適用しません。
|
|
125
125
|
|
|
126
|
+
Pi の認証 CLI は provider 単位です。`ensemble auth login --provider <id>` は API-key provider なら secret prompt の値を user root の `auth.json`(既定 `~/.ensemble/pi/auth.json`)へ `AuthStorage.set` し、OAuth provider なら Pi の `AuthStorage.login` を TTY / stderr 経由で実行します。`--provider` を省略した場合は `settings.json` の `defaultProvider` または選択モデルから解決します。`logout` / `status` も同じ provider 解決を使います。project `auth.json` は既存の project-over-user 読取優先を維持しますが、login の書込み先にはなりません。project 層の明示的な OAuth credential は `AuthStorage` の refresh 対象外なので stale access token を使わず、実行時にエラーとして user 層ログインを案内します。OAuth は `ensemble auth login --provider <id>` で user 層へ保存してください。`ensemble models list` は `ModelRegistry` と project resource の解決結果から認証済み model だけを表示します。
|
|
127
|
+
|
|
126
128
|
#### `settings.json` の headless 対応範囲
|
|
127
129
|
|
|
128
130
|
conductor は `pi-agent-core` を直接使い、`pi-coding-agent` の設定適用器・TUI・package manager は起動しません。そのため `settings.json` は Pi 標準のファイル名と resource path の意味を保ちますが、headless conductor が実際に参照するキーだけを契約とします。
|
|
@@ -219,7 +221,7 @@ JSON が不正、または `mcpServers` / サーバー定義の形式が不正
|
|
|
219
221
|
|
|
220
222
|
## 秘密情報を config に書かない
|
|
221
223
|
|
|
222
|
-
**token 本体を config に平文で保存しない。** 認証は環境変数、`gh auth login
|
|
224
|
+
**token 本体を config に平文で保存しない。** 認証は環境変数、`gh auth login`、Cursor の `ensemble auth login`、または Pi の provider 単位 `ensemble auth login` / `AuthStorage` を使う。
|
|
223
225
|
|
|
224
226
|
## スキーマ外キー
|
|
225
227
|
|
package/docs/settings.md
CHANGED
|
@@ -28,7 +28,7 @@ CLI > 環境変数 > project config > user config > コード default
|
|
|
28
28
|
|
|
29
29
|
`profile.default` / `conductor.model` / `acp.defaultPreset` など。設計判断は [ADR 0020](https://github.com/otolab/agents-ensemble/blob/main/docs/adr/0020-ensemble-config-setting-resolution.md)。
|
|
30
30
|
|
|
31
|
-
`conductor.backend` は、選択した profile の `conductor.backend` を project/user の deep merge 済み config より優先し、どちらも未指定なら `cursor` を使います。`cursor` は Cursor SDK 経路、`pi` は Pi Agent Core 経路を選びます。Pi は compiled conductor instructions を native system prompt に載せ、`~/.ensemble/pi` と `<repoRoot>/.ensemble/pi` の `settings.json` / `auth.json` / `models.json` / `extensions/` / `skills/` / `prompts/` / `themes/` を解決します。skills は system prompt へ追加し、prompts は `/name args` で展開します。themes は headless conductor のため読み込み・project 同名解決のみ行い、TUI 表示には使いません。root は `conductor.pi.agentDir` / `conductor.pi.projectDir` で上書きできます。`.ensemble/pi/SYSTEM.md` / `APPEND_SYSTEM.md` は無視します。`ensemble auth login` は
|
|
31
|
+
`conductor.backend` は、選択した profile の `conductor.backend` を project/user の deep merge 済み config より優先し、どちらも未指定なら `cursor` を使います。`cursor` は Cursor SDK 経路、`pi` は Pi Agent Core 経路を選びます。Pi は compiled conductor instructions を native system prompt に載せ、`~/.ensemble/pi` と `<repoRoot>/.ensemble/pi` の `settings.json` / `auth.json` / `models.json` / `extensions/` / `skills/` / `prompts/` / `themes/` を解決します。skills は system prompt へ追加し、prompts は `/name args` で展開します。themes は headless conductor のため読み込み・project 同名解決のみ行い、TUI 表示には使いません。root は `conductor.pi.agentDir` / `conductor.pi.projectDir` で上書きできます。`.ensemble/pi/SYSTEM.md` / `APPEND_SYSTEM.md` は無視します。`ensemble auth login|logout|status` は backend に分岐し、Pi では provider 単位に `AuthStorage` を使います。API key は TTY の secret prompt から user 層へ保存し、OAuth は Pi の OAuth flow を stderr 対話で実行します(SSH でも URL / device code を利用できます)。resume では sidecar に保存した backend と起動時の解決結果が一致しない場合、次のエラーで conductor を起動せず失敗します。
|
|
32
32
|
|
|
33
33
|
```text
|
|
34
34
|
Session sidecar conductorBackend mismatch: pi !== cursor
|
|
@@ -62,7 +62,7 @@ config キーなし。CI・スクリプト・端末検出、または 1 回限
|
|
|
62
62
|
|------|--------|
|
|
63
63
|
| GitHub API | `GITHUB_TOKEN` > `GH_TOKEN` > (`allowGhAuthTokenFallback: true` 時のみ)`gh auth token` |
|
|
64
64
|
| conductor (cursor) | `CURSOR_API_KEY` > `~/.cursor/sdk/auth.json`(`ensemble auth login`) |
|
|
65
|
-
| conductor (pi) |
|
|
65
|
+
| conductor (pi) | project `auth.json` の読取優先 > user `AuthStorage`(`~/.ensemble/pi/auth.json`、`conductor.pi.agentDir` で上書き) > `settings.json` fallback > provider 環境変数。`ensemble auth` は user 層へ provider 単位で保存。project 層の明示的な OAuth credential は refresh できないため使わず、user 層の `AuthStorage` へログインする |
|
|
66
66
|
| worker ACP(preset 依存) | preset ごとに README / ADR 0019 参照 |
|
|
67
67
|
|
|
68
68
|
## 一覧 — Phase 1(config.yaml)
|
|
@@ -114,7 +114,7 @@ TUI 設定は `loadEnsembleConfig` 結果を `createIssueSessionTuiHost` へ渡
|
|
|
114
114
|
|------|----------|------------------------|
|
|
115
115
|
| GitHub API token | `GITHUB_TOKEN` / `GH_TOKEN` | `github.auth.allowGhAuthTokenFallback` のみ |
|
|
116
116
|
| conductor API key (cursor) | `CURSOR_API_KEY` | —(`ensemble auth login` は別経路) |
|
|
117
|
-
| conductor API key (pi) | provider ごとの環境変数(Pi の env mapping) | Pi `auth.json` / `settings.json` にも設定可能 |
|
|
117
|
+
| conductor API key (pi) | provider ごとの環境変数(Pi の env mapping) | `ensemble auth login --provider <id>`、Pi `auth.json` / `settings.json` にも設定可能 |
|
|
118
118
|
|
|
119
119
|
## 一覧 — 別ファイル
|
|
120
120
|
|
|
@@ -138,7 +138,7 @@ TUI 設定は `loadEnsembleConfig` 結果を `createIssueSessionTuiHost` へ渡
|
|
|
138
138
|
| チーム / 個人の恒久既定(モデル、worktree、monitor) | `~/.ensemble/config.yaml` または project `.ensemble/config.yaml` |
|
|
139
139
|
| CI で 1 ジョブだけ上書き | 環境変数(`CONDUCTOR_MODEL_ID` 等) |
|
|
140
140
|
| 1 回限りの実行 | CLI フラグ(初回メッセージは `ensemble issue <ref> [message...]`) |
|
|
141
|
-
| token | Cursor: 環境変数 or `ensemble auth login`、Pi: Pi
|
|
141
|
+
| token | Cursor: 環境変数 or `ensemble auth login`、Pi: `ensemble auth login --provider <id>` / Pi `auth.json` / provider 環境変数、GitHub: `gh auth login`(いずれも config に書かない) |
|
|
142
142
|
| tmux 内で Issue リンクを短縮表示 | `~/.ensemble/config.yaml` に `tui.forceHyperlink: on`(または env `FORCE_HYPERLINK=1`) |
|
|
143
143
|
| worker ごとの ACP / cwd | `profile.yaml` |
|
|
144
144
|
| conductor の MCP | `mcp.json` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agents-ensemble/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "ensemble CLI — Issue-based agent orchestration",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"react": "19.2.0",
|
|
18
18
|
"react-ink-textarea": "npm:@otolab/react-ink-textarea@0.4.1-otolab.3",
|
|
19
19
|
"string-width": "8.1.0",
|
|
20
|
-
"@agents-ensemble/core": "0.
|
|
20
|
+
"@agents-ensemble/core": "0.8.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/js-yaml": "4.0.9",
|