@agents-ensemble/cli 0.13.0 → 0.14.2
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 +9 -3
- package/config.example.yaml +3 -3
- package/dist/format-session-summary.d.ts.map +1 -1
- package/dist/format-session-summary.js +51 -45
- package/dist/format-session-summary.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/session-log-lines.js +1 -1
- package/dist/session-log-lines.js.map +1 -1
- package/dist/tui/activity-log.d.ts +1 -1
- package/dist/tui/activity-log.d.ts.map +1 -1
- package/dist/tui/activity-log.js +16 -2
- package/dist/tui/activity-log.js.map +1 -1
- package/dist/tui/create-issue-session-tui-host.d.ts.map +1 -1
- package/dist/tui/create-issue-session-tui-host.js +1 -1
- package/dist/tui/create-issue-session-tui-host.js.map +1 -1
- package/dist/tui/format-operator-context.d.ts.map +1 -1
- package/dist/tui/format-operator-context.js +3 -3
- package/dist/tui/format-operator-context.js.map +1 -1
- package/dist/tui/ink-test-keys.d.ts +4 -0
- package/dist/tui/ink-test-keys.d.ts.map +1 -1
- package/dist/tui/ink-test-keys.js +4 -0
- package/dist/tui/ink-test-keys.js.map +1 -1
- package/dist/tui/issue-session-tui-stream-cursor.test.js +3 -3
- package/dist/tui/issue-session-tui-stream-cursor.test.js.map +1 -1
- package/dist/tui/issue-session-tui-stream.d.ts.map +1 -1
- package/dist/tui/issue-session-tui-stream.js +133 -15
- package/dist/tui/issue-session-tui-stream.js.map +1 -1
- package/dist/tui/issue-session-tui-stream.test.js +369 -13
- package/dist/tui/issue-session-tui-stream.test.js.map +1 -1
- package/dist/tui/issue-session-tui.d.ts +3 -2
- package/dist/tui/issue-session-tui.d.ts.map +1 -1
- package/dist/tui/issue-session-tui.js +205 -21
- package/dist/tui/issue-session-tui.js.map +1 -1
- package/dist/tui/issue-session-tui.test.js +553 -37
- package/dist/tui/issue-session-tui.test.js.map +1 -1
- package/dist/tui/open-question-answer-suggestions.d.ts +19 -0
- package/dist/tui/open-question-answer-suggestions.d.ts.map +1 -0
- package/dist/tui/open-question-answer-suggestions.js +62 -0
- package/dist/tui/open-question-answer-suggestions.js.map +1 -0
- package/dist/tui/open-questions-pane.d.ts +19 -0
- package/dist/tui/open-questions-pane.d.ts.map +1 -1
- package/dist/tui/open-questions-pane.js +35 -34
- package/dist/tui/open-questions-pane.js.map +1 -1
- package/dist/tui/operator-command-suggestions.d.ts +15 -0
- package/dist/tui/operator-command-suggestions.d.ts.map +1 -1
- package/dist/tui/operator-input-history.d.ts +13 -0
- package/dist/tui/operator-input-history.d.ts.map +1 -0
- package/dist/tui/operator-input-history.js +51 -0
- package/dist/tui/operator-input-history.js.map +1 -0
- package/dist/tui/operator-input-layout.d.ts +2 -0
- package/dist/tui/operator-input-layout.d.ts.map +1 -1
- package/dist/tui/operator-input-layout.js +73 -0
- package/dist/tui/operator-input-layout.js.map +1 -1
- package/dist/tui/operator-text-area.d.ts +6 -4
- package/dist/tui/operator-text-area.d.ts.map +1 -1
- package/dist/tui/operator-text-area.js +17 -5
- package/dist/tui/operator-text-area.js.map +1 -1
- package/dist/tui/operator-text-area.test-double.d.ts +1 -1
- package/dist/tui/operator-text-area.test-double.d.ts.map +1 -1
- package/dist/tui/operator-text-area.test-double.js +15 -14
- package/dist/tui/operator-text-area.test-double.js.map +1 -1
- package/dist/tui/operator-text-area.test.js +17 -3
- package/dist/tui/operator-text-area.test.js.map +1 -1
- package/dist/tui/pane-layout.d.ts +2 -0
- package/dist/tui/pane-layout.d.ts.map +1 -1
- package/dist/tui/pane-layout.js +7 -3
- package/dist/tui/pane-layout.js.map +1 -1
- package/dist/tui/stream-layout.d.ts +3 -3
- package/dist/tui/stream-layout.d.ts.map +1 -1
- package/dist/tui/stream-layout.js +6 -6
- package/dist/tui/stream-layout.js.map +1 -1
- package/dist/tui/tui-layout-constants.d.ts +4 -2
- package/dist/tui/tui-layout-constants.d.ts.map +1 -1
- package/dist/tui/tui-layout-constants.js +4 -2
- package/dist/tui/tui-layout-constants.js.map +1 -1
- package/dist/tui/tui-view-model.d.ts.map +1 -1
- package/dist/tui/tui-view-model.js +2 -8
- package/dist/tui/tui-view-model.js.map +1 -1
- package/dist/tui/worker-display-name.d.ts +2 -0
- package/dist/tui/worker-display-name.d.ts.map +1 -0
- package/dist/tui/worker-display-name.js +4 -0
- package/dist/tui/worker-display-name.js.map +1 -0
- package/docs/config.md +92 -16
- package/docs/settings.md +3 -3
- package/package.json +3 -3
|
@@ -7,20 +7,20 @@ function shrinkHeight(current, minimum, amount) {
|
|
|
7
7
|
/**
|
|
8
8
|
* Fit the live panes below Static output while reserving one terminal row.
|
|
9
9
|
* The normal terminal case keeps the requested pane heights unchanged. On a
|
|
10
|
-
* short terminal,
|
|
11
|
-
*
|
|
12
|
-
* independent pane; the empty state may be nested inside the input pane.
|
|
10
|
+
* short terminal, shrink Workers first, then Open questions and input while
|
|
11
|
+
* preserving their minimum heights. An open-question height of zero omits
|
|
12
|
+
* that independent pane; the empty state may be nested inside the input pane.
|
|
13
13
|
*/
|
|
14
14
|
export function resolveStreamPaneHeights(params) {
|
|
15
15
|
const frameLimit = Math.max(0, Math.floor(params.terminalRows) - 1);
|
|
16
|
-
let workerPaneHeight = Math.max(
|
|
16
|
+
let workerPaneHeight = Math.max(PANE_BORDER_ROWS, params.workerPaneHeight ?? WORKER_PANE_HEIGHT);
|
|
17
17
|
let openQuestionsPaneHeight = params.openQuestionsPaneHeight > 0
|
|
18
18
|
? Math.max(PANE_BORDER_ROWS + 1, params.openQuestionsPaneHeight)
|
|
19
19
|
: 0;
|
|
20
20
|
let inputPaneHeight = Math.max(INPUT_PANE_BORDER_ROWS + 1, params.inputPaneHeight);
|
|
21
21
|
let overflow = workerPaneHeight + openQuestionsPaneHeight + inputPaneHeight - frameLimit;
|
|
22
|
-
if (overflow > 0
|
|
23
|
-
const shrunk = shrinkHeight(workerPaneHeight, PANE_BORDER_ROWS
|
|
22
|
+
if (overflow > 0) {
|
|
23
|
+
const shrunk = shrinkHeight(workerPaneHeight, PANE_BORDER_ROWS, overflow);
|
|
24
24
|
workerPaneHeight = shrunk.height;
|
|
25
25
|
overflow = shrunk.remaining;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-layout.js","sourceRoot":"","sources":["../../src/tui/stream-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AASnC,SAAS,YAAY,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc;IAIpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAKxC;IACC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"stream-layout.js","sourceRoot":"","sources":["../../src/tui/stream-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,15 @@ export declare const WORKER_PANE_TITLE = "Workers";
|
|
|
14
14
|
export declare const OPEN_QUESTIONS_PANE_TITLE = "Open questions";
|
|
15
15
|
/** Operator input ペインの UI ラベル。 */
|
|
16
16
|
export declare const INPUT_PANE_TITLE = "Operator input";
|
|
17
|
+
/** Operator input の入力行先頭に表示するプロンプト。 */
|
|
18
|
+
export declare const OPERATOR_INPUT_PROMPT = "> ";
|
|
17
19
|
/** Operator input ペイン枠線・タイトル色(他ペインと区別し視認性を確保)。 */
|
|
18
20
|
export declare const INPUT_PANE_BORDER_COLOR = "blue";
|
|
19
21
|
/** Operator input コンテキストヒント行の色。 */
|
|
20
22
|
export declare const INPUT_PANE_HINT_COLOR = "blue";
|
|
21
|
-
/** Operator input
|
|
23
|
+
/** Operator input の `> ` プロンプト色。 */
|
|
22
24
|
export declare const INPUT_PANE_PROMPT_COLOR = "blue";
|
|
23
|
-
/** Worker
|
|
25
|
+
/** Worker 状態ペインの既定高さ(枠線込み。動的な高さを渡さない利用箇所向け)。 */
|
|
24
26
|
export declare const WORKER_PANE_HEIGHT = 6;
|
|
25
27
|
/**
|
|
26
28
|
* Open questions ペインの最小高さ(枠線込み。タイトルは上枠線埋め込み + 本文 1 行)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-layout-constants.d.ts","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"tui-layout-constants.d.ts","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,6BAA6B;AAC7B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,mCAAmC;AACnC,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAE5C,oCAAoC;AACpC,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAExD,sDAAsD;AACtD,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAExD,0CAA0C;AAC1C,eAAO,MAAM,6BAA6B,iDAAmB,CAAC;AAE9D,0CAA0C;AAC1C,eAAO,MAAM,iCAAiC,qDAAa,CAAC;AAE5D,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,IAAmB,CAAC;AAEvD,kCAAkC;AAClC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,gCAAgC;AAChC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,uBAAuB;AACvB,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,0BAA0B;AAC1B,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
|
|
@@ -14,13 +14,15 @@ export const WORKER_PANE_TITLE = 'Workers';
|
|
|
14
14
|
export const OPEN_QUESTIONS_PANE_TITLE = 'Open questions';
|
|
15
15
|
/** Operator input ペインの UI ラベル。 */
|
|
16
16
|
export const INPUT_PANE_TITLE = 'Operator input';
|
|
17
|
+
/** Operator input の入力行先頭に表示するプロンプト。 */
|
|
18
|
+
export const OPERATOR_INPUT_PROMPT = '> ';
|
|
17
19
|
/** Operator input ペイン枠線・タイトル色(他ペインと区別し視認性を確保)。 */
|
|
18
20
|
export const INPUT_PANE_BORDER_COLOR = 'blue';
|
|
19
21
|
/** Operator input コンテキストヒント行の色。 */
|
|
20
22
|
export const INPUT_PANE_HINT_COLOR = 'blue';
|
|
21
|
-
/** Operator input
|
|
23
|
+
/** Operator input の `> ` プロンプト色。 */
|
|
22
24
|
export const INPUT_PANE_PROMPT_COLOR = 'blue';
|
|
23
|
-
/** Worker
|
|
25
|
+
/** Worker 状態ペインの既定高さ(枠線込み。動的な高さを渡さない利用箇所向け)。 */
|
|
24
26
|
export const WORKER_PANE_HEIGHT = 6;
|
|
25
27
|
/**
|
|
26
28
|
* Open questions ペインの最小高さ(枠線込み。タイトルは上枠線埋め込み + 本文 1 行)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-layout-constants.js","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"tui-layout-constants.js","sourceRoot":"","sources":["../../src/tui/tui-layout-constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,mCAAmC;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,oCAAoC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAExD,sDAAsD;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AAExD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AAE9D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAE5D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEvD,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,GAAG,cAAc,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD,gCAAgC;AAChC,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,uBAAuB;AACvB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-view-model.d.ts","sourceRoot":"","sources":["../../src/tui/tui-view-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,GACxB,eAAe,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAElD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,WAAW,EAAE,MAAM,eAAe,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,iBAAiB,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAC1C,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"tui-view-model.d.ts","sourceRoot":"","sources":["../../src/tui/tui-view-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,GACxB,eAAe,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAElD;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,WAAW,EAAE,MAAM,eAAe,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,iBAAiB,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,0BAA0B,EAAE,MAAM,IAAI,CAAC;IACvC,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAC1C,6EAA6E;IAC7E,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,YAAY,CAkGpB"}
|
|
@@ -66,18 +66,12 @@ export function createTuiViewModel(options = {}) {
|
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
const entry = { label, text: trimmed };
|
|
69
|
-
activityLog =
|
|
70
|
-
activityLogWindowSize === null
|
|
71
|
-
? [...activityLog, entry]
|
|
72
|
-
: appendActivityLogEntry(activityLog, entry, activityLogWindowSize);
|
|
69
|
+
activityLog = appendActivityLogEntry(activityLog, entry, activityLogWindowSize);
|
|
73
70
|
notify();
|
|
74
71
|
},
|
|
75
72
|
appendActivityLogSeparator() {
|
|
76
73
|
const entry = { label: 'separator', text: '' };
|
|
77
|
-
activityLog =
|
|
78
|
-
activityLogWindowSize === null
|
|
79
|
-
? [...activityLog, entry]
|
|
80
|
-
: appendActivityLogEntry(activityLog, entry, activityLogWindowSize);
|
|
74
|
+
activityLog = appendActivityLogEntry(activityLog, entry, activityLogWindowSize);
|
|
81
75
|
notify();
|
|
82
76
|
},
|
|
83
77
|
requestActivityLogReplay() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-view-model.js","sourceRoot":"","sources":["../../src/tui/tui-view-model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAGvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAWhE;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAyB;IAEzB,OAAO,QAAQ,CAAC,eAAe,EAAE,aAAa,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC;AACxF,CAAC;AAcD,MAAM,UAAU,kBAAkB,CAAC,UAG/B,EAAE;IACJ,MAAM,qBAAqB,GACzB,OAAO,CAAC,qBAAqB,KAAK,SAAS;QACzC,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACpC,IAAI,YAAY,GAAG,6BAA6B,CAAC;IACjD,IAAI,WAAW,GAAuB,EAAE,CAAC;IACzC,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,eAAiD,CAAC;IACtD,IAAI,QAAQ,GAAoB;QAC9B,YAAY;QACZ,WAAW;QACX,qBAAqB;QACrB,eAAe;QACf,YAAY;QACZ,eAAe;KAChB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,QAAQ,GAAG;YACT,YAAY;YACZ,WAAW;YACX,qBAAqB;YACrB,eAAe;YACf,YAAY;YACZ,eAAe;SAChB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,eAAe,EAAE,CAAC;QAClB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC;QACJ,CAAC;QACD,WAAW;YACT,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,eAAe,CAAC,KAAK;YACnB,YAAY,GAAG,KAAK,CAAC;YACrB,MAAM,EAAE,CAAC;QACX,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,IAAI;YAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAA6B,CAAC;YAClE,WAAW
|
|
1
|
+
{"version":3,"file":"tui-view-model.js","sourceRoot":"","sources":["../../src/tui/tui-view-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-display-name.d.ts","sourceRoot":"","sources":["../../src/tui/worker-display-name.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-display-name.js","sourceRoot":"","sources":["../../src/tui/worker-display-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,IAAY;IAChE,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AACpD,CAAC"}
|
package/docs/config.md
CHANGED
|
@@ -61,8 +61,7 @@ conductor:
|
|
|
61
61
|
acp:
|
|
62
62
|
defaultPreset: codex # ENSEMBLE_DEFAULT_ACP_CLI 相当
|
|
63
63
|
env: # codex-acp 子プロセス spawn に渡す env(user → project deep merge)
|
|
64
|
-
MODEL_PROVIDER: litellm #
|
|
65
|
-
CODEX_CONFIG: ~/.codex/litellm.config.toml
|
|
64
|
+
MODEL_PROVIDER: litellm # Codex provider ID。接続設定は Codex config 側
|
|
66
65
|
|
|
67
66
|
session:
|
|
68
67
|
worktree: isolated # --worktree 既定(isolated | in-repo)
|
|
@@ -78,9 +77,9 @@ github:
|
|
|
78
77
|
allowGhAuthTokenFallback: true
|
|
79
78
|
monitor:
|
|
80
79
|
enabled: true
|
|
81
|
-
debounceMs:
|
|
82
|
-
pollIntervalMs:
|
|
83
|
-
activePollIntervalMs:
|
|
80
|
+
debounceMs: 60000
|
|
81
|
+
pollIntervalMs: 120000
|
|
82
|
+
activePollIntervalMs: 60000
|
|
84
83
|
stopPollWaitMs: 5000
|
|
85
84
|
|
|
86
85
|
tui:
|
|
@@ -134,7 +133,31 @@ spawn 解決時、子プロセスへ渡す env は次の順でマージされま
|
|
|
134
133
|
|
|
135
134
|
#### LiteLLM(OpenAI 互換ゲートウェイ)向け config 例
|
|
136
135
|
|
|
137
|
-
|
|
136
|
+
Codex worker の接続先は Codex の provider 設定で定義し、`acp.env.MODEL_PROVIDER` で使う provider ID を選びます。ensemble はこの環境変数を `codex-acp` に渡すだけで、TOML ファイルを選んだり読み込んだりはしません。
|
|
137
|
+
|
|
138
|
+
`@agentclientprotocol/codex-acp` は `packages/core/package.json` で **2.2.2** に pin されています。この版では、`CODEX_CONFIG` は Codex session config に merge する **JSON オブジェクト文字列**として `JSON.parse` されます。TOML のパスを設定すると JSON parse に失敗します。`MODEL_PROVIDER` は新しい session に渡す **provider ID** で、設定ファイルの選択には使われません。ensemble はいずれの値も `acp.env` から子プロセスへ渡すだけです。
|
|
139
|
+
|
|
140
|
+
Codex の model ID はトップレベルの `model`、provider は `model_provider` で指定し、provider IDに対応する `[model_providers.<id>]` から接続先・API形式・認証方法を読みます。worker では Codex が通常の設定レイヤー(主に `~/.codex/config.toml`)を読み、必要であれば `CODEX_CONFIG` の JSON が session config に加わります。`MODEL_PROVIDER=litellm` だけでは、Codex は別ファイル `litellm.config.toml` を探さず、model IDも選びません。
|
|
141
|
+
|
|
142
|
+
`CODEX_CONFIG` の JSON には `model`、`model_provider`、`model_providers` などCodex session configのキーを含められます。ただし `MODEL_PROVIDER` を設定した場合は、codex-acp が新しいsessionの provider IDとしてその値を別途渡し、JSON内の `model_provider` より優先します。model IDとprovider IDに対応する定義は、それぞれCodexの通常configかJSON設定に必要です。model IDはLiteLLM側で提供されるものを指定してください。
|
|
143
|
+
|
|
144
|
+
以下の例では秘密値を記載せず、環境変数名を使います。実際の `LITELLM_API_KEY` はシェル等で設定してください。
|
|
145
|
+
|
|
146
|
+
#### A. provider 設定を正本 config にまとめる(推奨)
|
|
147
|
+
|
|
148
|
+
provider 定義を `~/.codex/config.toml` に置き、ensemble config では provider ID だけを指定します。Codex CLI と worker が同じ provider 定義を参照し、worker の接続先は `MODEL_PROVIDER` で切り替えられます。
|
|
149
|
+
|
|
150
|
+
```toml
|
|
151
|
+
# ~/.codex/config.toml
|
|
152
|
+
model = "YOUR_LITELLM_MODEL_ID"
|
|
153
|
+
model_provider = "litellm"
|
|
154
|
+
|
|
155
|
+
[model_providers.litellm]
|
|
156
|
+
name = "LiteLLM"
|
|
157
|
+
base_url = "https://litellm.example/v1"
|
|
158
|
+
wire_api = "responses"
|
|
159
|
+
env_key = "LITELLM_API_KEY"
|
|
160
|
+
```
|
|
138
161
|
|
|
139
162
|
```yaml
|
|
140
163
|
# ~/.ensemble/config.yaml または <repo>/.ensemble/config.yaml
|
|
@@ -142,23 +165,71 @@ acp:
|
|
|
142
165
|
defaultPreset: codex
|
|
143
166
|
env:
|
|
144
167
|
MODEL_PROVIDER: litellm
|
|
145
|
-
CODEX_CONFIG: ~/.codex/litellm.config.toml
|
|
146
168
|
```
|
|
147
169
|
|
|
148
|
-
`
|
|
170
|
+
`model` にはLiteLLM側で提供する実際のmodel IDを指定します。Codex CLI とworkerの両方がこのmodel設定を使います。`MODEL_PROVIDER` はworker sessionで使うproviderだけを選び、model IDは変更しません。別providerへ切り替える場合は、そのproviderでも同じmodel IDが利用できることを確認してください。Codex CLIで別の既定providerを使う場合は、`model_provider` をそのprovider IDにします。認証値は設定ファイルに書かず、Codexが参照する環境変数で渡してください。
|
|
171
|
+
|
|
172
|
+
#### B. Codex CLI のprofile overlayを使う
|
|
173
|
+
|
|
174
|
+
Codex CLI の `codex --profile litellm` は、まず `~/.codex/config.toml` を読み、その上に `~/.codex/litellm.config.toml` を重ねます。profile ファイルには `[profiles.litellm]` ではなく通常のトップレベル設定を書きます。Codex 0.134.0 以降、`config.toml` 内の `[profiles.litellm]` と `profile = "litellm"` による指定は使われません。
|
|
175
|
+
|
|
176
|
+
```toml
|
|
177
|
+
# ~/.codex/litellm.config.toml — Codex CLI 用 overlay
|
|
178
|
+
model = "YOUR_LITELLM_MODEL_ID"
|
|
179
|
+
model_provider = "litellm"
|
|
180
|
+
|
|
181
|
+
[model_providers.litellm]
|
|
182
|
+
name = "LiteLLM"
|
|
183
|
+
base_url = "https://litellm.example/v1"
|
|
184
|
+
wire_api = "responses"
|
|
185
|
+
env_key = "LITELLM_API_KEY"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
このprofile overlayは **Codex CLI 用**です。ensemble worker は `codex-acp` から Codex `app-server` を起動する経路であり、`codex --profile` を指定できません。worker にはAのように provider 定義を `~/.codex/config.toml` に置くか、Cのように `CODEX_CONFIG` でsession設定を渡してください。Codex の `config.toml` に別TOMLを読み込む公式include機能はありません。CLI profileとworkerで別ファイルを正本にする場合、worker側の設定にも同じprovider定義が必要です。手動で同期するか、設定生成で両方を作成してください。
|
|
189
|
+
|
|
190
|
+
#### C. worker 用 JSON 設定を別ファイルで管理する
|
|
191
|
+
|
|
192
|
+
小規模な設定や検証では、worker 専用の JSON ファイルを用意し、その**内容**を `CODEX_CONFIG` に渡せます。`CODEX_CONFIG` 自体にはファイルパスではなくJSON文字列を設定します。例えば、次のファイルを作成します。
|
|
193
|
+
|
|
194
|
+
```json
|
|
195
|
+
{
|
|
196
|
+
"model": "YOUR_LITELLM_MODEL_ID",
|
|
197
|
+
"model_providers": {
|
|
198
|
+
"litellm": {
|
|
199
|
+
"name": "LiteLLM",
|
|
200
|
+
"base_url": "https://litellm.example/v1",
|
|
201
|
+
"wire_api": "responses",
|
|
202
|
+
"env_key": "LITELLM_API_KEY"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
そのファイルの内容を環境変数に読み込み、`acp.env` では `CODEX_CONFIG` を上書きしないで起動します。
|
|
149
209
|
|
|
150
|
-
|
|
210
|
+
```sh
|
|
211
|
+
export CODEX_CONFIG="$(jq -c . "$HOME/.codex/ensemble-worker.json")"
|
|
212
|
+
ensemble issue 123
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
```yaml
|
|
216
|
+
# ~/.ensemble/config.yaml または <repo>/.ensemble/config.yaml
|
|
217
|
+
acp:
|
|
218
|
+
defaultPreset: codex
|
|
219
|
+
env:
|
|
220
|
+
MODEL_PROVIDER: litellm
|
|
221
|
+
```
|
|
151
222
|
|
|
152
|
-
|
|
153
|
-
|------|------------------|------------------|------|
|
|
154
|
-
| `codex --profile litellm`(CLI 直接) | Codex profile `litellm` | — | `~/.codex/config.toml` の `[profiles.litellm]` を読む |
|
|
155
|
-
| `ensemble issue` + 上記 config 例 | — | `MODEL_PROVIDER` / `CODEX_CONFIG` | codex-acp → `codex app-server`(**`--profile` 非対応**)。env で config ファイルを指定 |
|
|
223
|
+
`jq -c` は JSON を1行に整形して環境変数へ渡します。`acp.env` に `CODEX_CONFIG` を設定した場合は、親プロセスから継承した値より `acp.env` の値が優先されます。設定を別ファイルで保ちたい場合は、ファイル内容を起動前に環境変数へ変換してください。CではCodex CLIのprovider設定は変わらず、JSONはworker sessionにのみ適用されます。
|
|
156
224
|
|
|
157
|
-
|
|
225
|
+
#### Codex CLI と ensemble worker の違い
|
|
158
226
|
|
|
159
|
-
|
|
227
|
+
| 起動方法 | 設定の選択・読み込み | LiteLLM の指定 |
|
|
228
|
+
|----------|--------------------|----------------|
|
|
229
|
+
| `codex --profile litellm` | Codex CLI が `~/.codex/config.toml` に `~/.codex/litellm.config.toml` をoverlay | profileファイルに `model`、`model_provider`、provider 定義を記述 |
|
|
230
|
+
| ensemble の Codex worker | `codex-acp` → Codex `app-server`。`--profile` は渡せない。Codex の通常 config とsession設定を利用 | `MODEL_PROVIDER` でprovider IDを選択し、`model` は通常config(A)または `CODEX_CONFIG` JSON(C)で指定 |
|
|
160
231
|
|
|
161
|
-
`
|
|
232
|
+
`CODEX_CONFIG_PROFILE` によるprofile名指定は Codex 側で未実装です([openai/codex#38104](https://github.com/openai/codex/issues/38104))。したがって worker のprofile選択手段としては使えません。
|
|
162
233
|
|
|
163
234
|
#### resume と `acp.env` 変更
|
|
164
235
|
|
|
@@ -321,6 +392,11 @@ YAML に未知のキーがあっても **無視する**(警告なし)。将
|
|
|
321
392
|
|
|
322
393
|
- [pi-conductor-setup.md](pi-conductor-setup.md) — Pi conductor の初回セットアップ・認証・復旧(利用者向け正本)
|
|
323
394
|
- [settings.md](settings.md) — 全設定層の一覧・解決パターン(本書は config.yaml 詳細)
|
|
395
|
+
- [ADR 0028](adr/0028-authentication-delegation-and-ensemble-auth.md) — worker の認証移譲とCodex runtime設定
|
|
396
|
+
- [Codex profiles / custom model providers](https://developers.openai.com/codex/config-advanced#profiles) — Codex CLI profile overlay、`model`、`model_provider` の現行仕様
|
|
397
|
+
- [codex-acp 2.2.2 runtime options](https://github.com/agentclientprotocol/codex-acp/blob/v2.2.2/README.md#runtime-options) — `CODEX_CONFIG` / `MODEL_PROVIDER` の説明
|
|
398
|
+
- [codex-acp 2.2.2 起動処理](https://github.com/agentclientprotocol/codex-acp/blob/v2.2.2/src/index.ts#L90-L99) — 環境変数の parse と ACP 起動時の読み込み
|
|
399
|
+
- [codex-acp 2.2.2 session開始](https://github.com/agentclientprotocol/codex-acp/blob/v2.2.2/src/CodexAcpClient.ts#L745-L755) — session config と provider ID を Codex app-server へ渡す処理
|
|
324
400
|
- [ADR 0020](https://github.com/otolab/agents-ensemble/blob/main/docs/adr/0020-ensemble-config-setting-resolution.md) — 解決順の設計判断
|
|
325
401
|
- [ADR 0018](https://github.com/otolab/agents-ensemble/blob/main/docs/adr/0018-team-profile-four-layer-resolution.md) — `.ensemble/` 配下の規約(team-profile)
|
|
326
402
|
- [#223](https://github.com/otolab/agents-ensemble/issues/223) — config 基盤
|
package/docs/settings.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| **環境変数** | シェル / CI | 一時上書き・秘密情報・自動化注入 |
|
|
11
11
|
| **project config** | `<repoRoot>/.ensemble/config.yaml` | リポジトリ単位の既定 |
|
|
12
12
|
| **user config** | `~/.ensemble/config.yaml` | マシン全体の既定 |
|
|
13
|
-
| **user
|
|
13
|
+
| **user instructions** | `~/.ensemble/AGENTS.md` | profile に依存しない conductor / worker 共通の運用前提 |
|
|
14
14
|
| **team profile** | `profile.yaml`([elements.md](elements.md)) | worker 構成・workspace(**ACP は含まない → [config.md](config.md)**) |
|
|
15
15
|
| **Codex profile** | `~/.codex/config.toml` + `codex --profile` | Codex CLI の profile(ensemble team profile とは無関係) |
|
|
16
16
|
| **MCP** | `.agents/mcp.json` / `~/.ensemble/mcp.json` | conductor 向け MCP([config.md § MCP](config.md#conductor-mcp-設定mcpjson)) |
|
|
@@ -134,7 +134,7 @@ TUI 設定は `loadEnsembleConfig` 結果を `createIssueSessionTuiHost` へ渡
|
|
|
134
134
|
| 設定 | ファイル | 解決順 |
|
|
135
135
|
|------|----------|--------|
|
|
136
136
|
| conductor MCP | `.agents/mcp.json` / `~/.ensemble/mcp.json` | project > user(サーバー名単位 merge) |
|
|
137
|
-
|
|
|
137
|
+
| user instructions | `~/.ensemble/AGENTS.md` | user 固定。conductor と worker 全員に適用。project 層なし |
|
|
138
138
|
| team profile | `.ensemble/profiles/…` / `--profile` パス | [ADR 0018](https://github.com/otolab/agents-ensemble/blob/main/docs/adr/0018-team-profile-four-layer-resolution.md) |
|
|
139
139
|
|
|
140
140
|
## 一覧 — ランタイム(利用者が「設定」しない)
|
|
@@ -149,7 +149,7 @@ TUI 設定は `loadEnsembleConfig` 結果を `createIssueSessionTuiHost` へ渡
|
|
|
149
149
|
|
|
150
150
|
| やりたいこと | 推奨 |
|
|
151
151
|
|--------------|------|
|
|
152
|
-
| 複数 repo で conductor に共有する短い運用前提 | `~/.ensemble/AGENTS.md`([modular-prompt の文書の役割](modular-prompt.md)を参照) |
|
|
152
|
+
| 複数 repo で conductor と worker に共有する短い運用前提 | `~/.ensemble/AGENTS.md`([modular-prompt の文書の役割](modular-prompt.md)を参照) |
|
|
153
153
|
| チーム / 個人の恒久既定(モデル、worktree、monitor) | `~/.ensemble/config.yaml` または project `.ensemble/config.yaml` |
|
|
154
154
|
| CI で 1 ジョブだけ上書き | 環境変数(`CONDUCTOR_MODEL_ID` 等) |
|
|
155
155
|
| 1 回限りの実行 | CLI フラグ(初回メッセージは `ensemble issue <ref> [message...]`) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agents-ensemble/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "ensemble CLI — Issue-based agent orchestration",
|
|
6
6
|
"bin": {
|
|
@@ -17,8 +17,8 @@
|
|
|
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.
|
|
21
|
-
"@agents-ensemble/operator-agent": "0.
|
|
20
|
+
"@agents-ensemble/core": "0.14.2",
|
|
21
|
+
"@agents-ensemble/operator-agent": "0.2.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/js-yaml": "4.0.9",
|