@agents-ensemble/cli 0.6.5 → 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.
Files changed (66) hide show
  1. package/README.md +44 -3
  2. package/config.example.yaml +13 -0
  3. package/dist/conductor-auth-command.d.ts +18 -0
  4. package/dist/conductor-auth-command.d.ts.map +1 -0
  5. package/dist/conductor-auth-command.js +172 -0
  6. package/dist/conductor-auth-command.js.map +1 -0
  7. package/dist/index.js +52 -24
  8. package/dist/index.js.map +1 -1
  9. package/dist/inline-markdown.d.ts +3 -1
  10. package/dist/inline-markdown.d.ts.map +1 -1
  11. package/dist/inline-markdown.js +232 -33
  12. package/dist/inline-markdown.js.map +1 -1
  13. package/dist/session-log-lines.d.ts.map +1 -1
  14. package/dist/session-log-lines.js +24 -6
  15. package/dist/session-log-lines.js.map +1 -1
  16. package/dist/session-sinks.d.ts.map +1 -1
  17. package/dist/session-sinks.js +1 -0
  18. package/dist/session-sinks.js.map +1 -1
  19. package/dist/tui/activity-log.d.ts +8 -0
  20. package/dist/tui/activity-log.d.ts.map +1 -1
  21. package/dist/tui/activity-log.js +16 -0
  22. package/dist/tui/activity-log.js.map +1 -1
  23. package/dist/tui/create-issue-session-tui-host.d.ts.map +1 -1
  24. package/dist/tui/create-issue-session-tui-host.js +27 -2
  25. package/dist/tui/create-issue-session-tui-host.js.map +1 -1
  26. package/dist/tui/issue-session-tui-stream.d.ts +4 -1
  27. package/dist/tui/issue-session-tui-stream.d.ts.map +1 -1
  28. package/dist/tui/issue-session-tui-stream.js +46 -10
  29. package/dist/tui/issue-session-tui-stream.js.map +1 -1
  30. package/dist/tui/issue-session-tui-stream.test.js +311 -2
  31. package/dist/tui/issue-session-tui-stream.test.js.map +1 -1
  32. package/dist/tui/issue-session-tui.d.ts +5 -3
  33. package/dist/tui/issue-session-tui.d.ts.map +1 -1
  34. package/dist/tui/issue-session-tui.js +29 -15
  35. package/dist/tui/issue-session-tui.js.map +1 -1
  36. package/dist/tui/issue-session-tui.test.js +147 -11
  37. package/dist/tui/issue-session-tui.test.js.map +1 -1
  38. package/dist/tui/open-questions-pane.d.ts.map +1 -1
  39. package/dist/tui/open-questions-pane.js +30 -12
  40. package/dist/tui/open-questions-pane.js.map +1 -1
  41. package/dist/tui/stream-scrollback.d.ts +29 -0
  42. package/dist/tui/stream-scrollback.d.ts.map +1 -0
  43. package/dist/tui/stream-scrollback.js +35 -0
  44. package/dist/tui/stream-scrollback.js.map +1 -0
  45. package/dist/tui/tui-layout-constants.d.ts +9 -4
  46. package/dist/tui/tui-layout-constants.d.ts.map +1 -1
  47. package/dist/tui/tui-layout-constants.js +9 -4
  48. package/dist/tui/tui-layout-constants.js.map +1 -1
  49. package/dist/tui/tui-resize-recovery.d.ts +24 -0
  50. package/dist/tui/tui-resize-recovery.d.ts.map +1 -0
  51. package/dist/tui/tui-resize-recovery.js +34 -0
  52. package/dist/tui/tui-resize-recovery.js.map +1 -0
  53. package/dist/tui/tui-terminal-size.d.ts +16 -5
  54. package/dist/tui/tui-terminal-size.d.ts.map +1 -1
  55. package/dist/tui/tui-terminal-size.js +40 -8
  56. package/dist/tui/tui-terminal-size.js.map +1 -1
  57. package/dist/tui/tui-view-model.d.ts +2 -0
  58. package/dist/tui/tui-view-model.d.ts.map +1 -1
  59. package/dist/tui/tui-view-model.js +7 -0
  60. package/dist/tui/tui-view-model.js.map +1 -1
  61. package/dist/tui/wrap-text-to-width.d.ts.map +1 -1
  62. package/dist/tui/wrap-text-to-width.js +4 -1
  63. package/dist/tui/wrap-text-to-width.js.map +1 -1
  64. package/docs/config.md +70 -4
  65. package/docs/settings.md +17 -4
  66. package/package.json +2 -2
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **正本:** npm の `@agents-ensemble/cli` と GitHub の CLI 利用者向け入口。インストール・最小クイックスタート・doc 索引を掲載します。
4
4
 
5
- `@agents-ensemble/cli` は、GitHub Issue を起点に conductor が worker を起動・制御する CLI です。
5
+ `@agents-ensemble/cli` は、GitHub Issue を起点に conductor が worker を起動・制御する CLI です。conductor は Cursor SDK(既定)または Pi(opt-in)を選べます。
6
6
 
7
7
  ## インストール
8
8
 
@@ -16,19 +16,60 @@ pnpm add -g @agents-ensemble/cli
16
16
  ensemble --help
17
17
  ```
18
18
 
19
+ ## Conductor backend の選択
20
+
21
+ 既定の backend は `cursor`(Cursor SDK)です。Pi を使う場合は、リポジトリの `.ensemble/config.yaml` またはユーザ設定の `~/.ensemble/config.yaml` で `conductor.backend` を `pi` にします。
22
+
23
+ ```yaml
24
+ conductor:
25
+ backend: pi
26
+ ```
27
+
28
+ Pi backend は Pi の設定ファイルを読みます。モデル設定は次のいずれかの resource root に置き、認証は `ensemble auth` または Pi の環境変数・設定ファイルから provider 単位で解決します(プロジェクト設定がユーザ設定を上書きします)。
29
+
30
+ | 層 | パス |
31
+ |----|------|
32
+ | ユーザ | `~/.ensemble/pi/` |
33
+ | プロジェクト | `<repoRoot>/.ensemble/pi/` |
34
+
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 のコンパイル結果を優先します。
38
+
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-対応範囲) を参照してください。
40
+
41
+ MCP は #354 の harness 内蔵 in-process bridge で Pi に接続します。解決済み `mcp.json` がある場合は MCP tools が、設定が無い場合も harness tools が、最小起動から常に有効です。bridge は Pi ExtensionAPI extension ではなく、harness が管理する tool adapter です。設計上の前提と制限は [ADR 0025](../adr/0025-conductor-agent-backend-sdk-and-pi.md) を参照してください。
42
+
43
+ backend はセッション開始時に選択され、resume の途中では切り替えられません。system prompt の渡し方、認証、resume の差分は [ADR 0025](../adr/0025-conductor-agent-backend-sdk-and-pi.md) にまとまっています。
44
+
45
+ backend を選んだ後の主経路は共通です。リポジトリのディレクトリで、対象 Issue を同じ `ensemble issue <url>` コマンドに渡します。
46
+
19
47
  ## 最小クイックスタート
20
48
 
21
- 初回だけ、worker・conductor・GitHub API の認証を準備します。
49
+ 初回だけ、worker・選択した conductor backend・GitHub API の認証を準備します。
22
50
 
23
51
  既定の `cursor` preset は、npm パッケージに含まれない Cursor Agent CLI の `agent` コマンドを使用します。先に [Cursor Agent CLI の公式インストール手順](https://cursor.com/docs/cli) に従ってインストールしてください。
24
52
 
53
+ | 対象 | 準備 |
54
+ |------|------|
55
+ | worker(既定の Cursor ACP) | `agent login` |
56
+ | conductor(Cursor SDK、既定) | `ensemble auth login` |
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) |
59
+ | GitHub API(gh CLI を使う場合) | `gh auth login` |
60
+
25
61
  ```bash
26
62
  # worker(既定の Cursor ACP)
27
63
  agent login
28
64
 
29
- # conductor(Cursor SDK)
65
+ # conductor(Cursor SDK を使う場合)
30
66
  ensemble auth login
31
67
 
68
+ # conductor(Pi を使う場合。provider 省略時は settings.json から解決)
69
+ ensemble auth login --provider <provider-id>
70
+ ensemble auth status
71
+ ensemble models list
72
+
32
73
  # GitHub API(gh CLI を使う場合)
33
74
  gh auth login
34
75
  ```
@@ -12,8 +12,21 @@ profile:
12
12
  default: implementer-and-reviewer
13
13
 
14
14
  conductor:
15
+ # conductor backend(profile で指定した場合は profile が優先。cursor | pi)
16
+ # この例は Pi resource 配線を示すため pi。既定 backend は cursor。
17
+ backend: pi
15
18
  # conductor モデル id(CLI --model / CONDUCTOR_MODEL_ID より優先度低)
16
19
  model: default
20
+ # Pi backend の resource root(任意。パスだけを上書きする)
21
+ # 相対パスは repoRoot 基準、~ はユーザ home 基準
22
+ pi:
23
+ agentDir: ~/.ensemble/pi
24
+ projectDir: .ensemble/pi
25
+ # 上記の各 root に settings.json / auth.json / models.json、
26
+ # extensions/ / skills/ / prompts/ / themes/ を配置します。
27
+ # settings.json は headless conductor の対応キー(モデル選択・
28
+ # 認証 fallback・resource path)のみ有効です。thinking / packages /
29
+ # TUI 等の Pi coding-agent 設定は警告なしで無視します。
17
30
 
18
31
  acp:
19
32
  # profile / worker に acp 未指定時の built-in preset
@@ -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 { getConductorAuthStatus, listConductorModels, loginConductor, logoutConductor, resolveIssueUrl, } from '@agents-ensemble/core';
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
- const auth = program.command('auth').description('Conductor (SDK) authentication');
68
- auth
69
- .command('login')
70
- .description('Browser login for conductor. Stores credentials in ~/.cursor/sdk/auth.json')
71
- .action(async () => {
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 loginConductor();
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
- .command('logout')
85
- .description('Clear stored conductor (SDK) credentials from ~/.cursor/sdk/auth.json')
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 logoutConductor();
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
- .command('status')
98
- .description('Show conductor (SDK) authentication status')
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 getConductorAuthStatus();
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
- .command('models')
126
- .description('Conductor (SDK) model catalog');
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 catalog = await listConductorModels();
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,15 @@ export interface InlineMarkdownSegment {
3
3
  text: string;
4
4
  bold?: boolean;
5
5
  code?: boolean;
6
+ href?: string;
6
7
  }
7
8
  export type InlineMarkdownLine = InlineMarkdownSegment[];
8
9
  /**
9
10
  * Inline Markdown を表示用 segment 列へ変換する。
10
11
  *
11
12
  * marked の block / inline lexer を利用するため、エスケープと inline token のネストを
12
- * regex 置換で再実装せずに扱える。Phase 1 外の構文は raw 表記を保持する。
13
+ * regex 置換で再実装せずに扱える。対応ブロック内の構造も子 token を再帰走査し、
14
+ * Phase 2 外の構文は raw 表記を保持する。
13
15
  */
14
16
  export declare function parseInlineMarkdown(text: string): InlineMarkdownSegment[];
15
17
  /** 共通 segment 列を stderr / dialogue 向け ANSI テキストへ変換する。 */
@@ -1 +1 @@
1
- {"version":3,"file":"inline-markdown.d.ts","sourceRoot":"","sources":["../src/inline-markdown.ts"],"names":[],"mappings":"AAGA,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;AAyGzD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAqBzE;AAeD,yDAAyD;AACzD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,qBAAqB,EAAE,GAChC,MAAM,CAER;AAED,6DAA6D;AAC7D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"inline-markdown.d.ts","sourceRoot":"","sources":["../src/inline-markdown.ts"],"names":[],"mappings":"AAGA,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;AA4XzD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAqBzE;AAeD,yDAAyD;AACzD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,qBAAqB,EAAE,GAChC,MAAM,CAER;AAED,6DAA6D;AAC7D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D"}