@agents-ensemble/cli 0.0.0 → 0.1.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/dist/async-operator-input.d.ts +6 -0
- package/dist/async-operator-input.d.ts.map +1 -0
- package/dist/async-operator-input.js +58 -0
- package/dist/async-operator-input.js.map +1 -0
- package/dist/display/create-session-display-sink.d.ts +9 -0
- package/dist/display/create-session-display-sink.d.ts.map +1 -0
- package/dist/display/create-session-display-sink.js +31 -0
- package/dist/display/create-session-display-sink.js.map +1 -0
- package/dist/display/select-session-display-backend.d.ts +11 -0
- package/dist/display/select-session-display-backend.d.ts.map +1 -0
- package/dist/display/select-session-display-backend.js +16 -0
- package/dist/display/select-session-display-backend.js.map +1 -0
- package/dist/display/session-display-backend.d.ts +7 -0
- package/dist/display/session-display-backend.d.ts.map +1 -0
- package/dist/display/session-display-backend.js +2 -0
- package/dist/display/session-display-backend.js.map +1 -0
- package/dist/display/session-display-reducer.d.ts +6 -0
- package/dist/display/session-display-reducer.d.ts.map +1 -0
- package/dist/display/session-display-reducer.js +74 -0
- package/dist/display/session-display-reducer.js.map +1 -0
- package/dist/display/session-display-state.d.ts +14 -0
- package/dist/display/session-display-state.d.ts.map +1 -0
- package/dist/display/session-display-state.js +6 -0
- package/dist/display/session-display-state.js.map +1 -0
- package/dist/display/string-session-display-backend.d.ts +8 -0
- package/dist/display/string-session-display-backend.d.ts.map +1 -0
- package/dist/display/string-session-display-backend.js +18 -0
- package/dist/display/string-session-display-backend.js.map +1 -0
- package/dist/display/stub-session-display-backend.d.ts +15 -0
- package/dist/display/stub-session-display-backend.d.ts.map +1 -0
- package/dist/display/stub-session-display-backend.js +17 -0
- package/dist/display/stub-session-display-backend.js.map +1 -0
- package/dist/format-models-list.d.ts +9 -0
- package/dist/format-models-list.d.ts.map +1 -0
- package/dist/format-models-list.js +17 -0
- package/dist/format-models-list.js.map +1 -0
- package/dist/format-session-summary.d.ts +4 -0
- package/dist/format-session-summary.d.ts.map +1 -0
- package/dist/format-session-summary.js +25 -0
- package/dist/format-session-summary.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +124 -0
- package/dist/index.js.map +1 -0
- package/dist/issue-command.d.ts +38 -0
- package/dist/issue-command.d.ts.map +1 -0
- package/dist/issue-command.js +117 -0
- package/dist/issue-command.js.map +1 -0
- package/dist/parse-worktree-mode.d.ts +4 -0
- package/dist/parse-worktree-mode.d.ts.map +1 -0
- package/dist/parse-worktree-mode.js +10 -0
- package/dist/parse-worktree-mode.js.map +1 -0
- package/dist/prompt-human-inquiry.d.ts +3 -0
- package/dist/prompt-human-inquiry.d.ts.map +1 -0
- package/dist/prompt-human-inquiry.js +29 -0
- package/dist/prompt-human-inquiry.js.map +1 -0
- package/dist/prompt-operator-input.d.ts +7 -0
- package/dist/prompt-operator-input.d.ts.map +1 -0
- package/dist/prompt-operator-input.js +51 -0
- package/dist/prompt-operator-input.js.map +1 -0
- package/dist/prompt-permission.d.ts +4 -0
- package/dist/prompt-permission.d.ts.map +1 -0
- package/dist/prompt-permission.js +8 -0
- package/dist/prompt-permission.js.map +1 -0
- package/dist/resolve-cli-max-turns.d.ts +8 -0
- package/dist/resolve-cli-max-turns.d.ts.map +1 -0
- package/dist/resolve-cli-max-turns.js +13 -0
- package/dist/resolve-cli-max-turns.js.map +1 -0
- package/dist/session-log-lines.d.ts +10 -0
- package/dist/session-log-lines.d.ts.map +1 -0
- package/dist/session-log-lines.js +121 -0
- package/dist/session-log-lines.js.map +1 -0
- package/dist/session-sinks.d.ts +20 -0
- package/dist/session-sinks.d.ts.map +1 -0
- package/dist/session-sinks.js +67 -0
- package/dist/session-sinks.js.map +1 -0
- package/dist/tui/activity-log.d.ts +32 -0
- package/dist/tui/activity-log.d.ts.map +1 -0
- package/dist/tui/activity-log.js +79 -0
- package/dist/tui/activity-log.js.map +1 -0
- package/dist/tui/compute-operator-input-cursor-y.d.ts +48 -0
- package/dist/tui/compute-operator-input-cursor-y.d.ts.map +1 -0
- package/dist/tui/compute-operator-input-cursor-y.js +52 -0
- package/dist/tui/compute-operator-input-cursor-y.js.map +1 -0
- package/dist/tui/create-issue-session-tui-host.d.ts +12 -0
- package/dist/tui/create-issue-session-tui-host.d.ts.map +1 -0
- package/dist/tui/create-issue-session-tui-host.js +88 -0
- package/dist/tui/create-issue-session-tui-host.js.map +1 -0
- package/dist/tui/create-issue-session-tui-host.test.d.ts +2 -0
- package/dist/tui/create-issue-session-tui-host.test.d.ts.map +1 -0
- package/dist/tui/create-issue-session-tui-host.test.js +133 -0
- package/dist/tui/create-issue-session-tui-host.test.js.map +1 -0
- package/dist/tui/create-tui-telemetry-sink.d.ts +5 -0
- package/dist/tui/create-tui-telemetry-sink.d.ts.map +1 -0
- package/dist/tui/create-tui-telemetry-sink.js +18 -0
- package/dist/tui/create-tui-telemetry-sink.js.map +1 -0
- package/dist/tui/format-operator-context.d.ts +9 -0
- package/dist/tui/format-operator-context.d.ts.map +1 -0
- package/dist/tui/format-operator-context.js +17 -0
- package/dist/tui/format-operator-context.js.map +1 -0
- package/dist/tui/ime-text-input.d.ts +31 -0
- package/dist/tui/ime-text-input.d.ts.map +1 -0
- package/dist/tui/ime-text-input.js +111 -0
- package/dist/tui/ime-text-input.js.map +1 -0
- package/dist/tui/ime-text-input.test.d.ts +2 -0
- package/dist/tui/ime-text-input.test.d.ts.map +1 -0
- package/dist/tui/ime-text-input.test.js +62 -0
- package/dist/tui/ime-text-input.test.js.map +1 -0
- package/dist/tui/ink-test-keys.d.ts +22 -0
- package/dist/tui/ink-test-keys.d.ts.map +1 -0
- package/dist/tui/ink-test-keys.js +26 -0
- package/dist/tui/ink-test-keys.js.map +1 -0
- package/dist/tui/issue-session-tui.d.ts +8 -0
- package/dist/tui/issue-session-tui.d.ts.map +1 -0
- package/dist/tui/issue-session-tui.js +201 -0
- package/dist/tui/issue-session-tui.js.map +1 -0
- package/dist/tui/issue-session-tui.test.d.ts +2 -0
- package/dist/tui/issue-session-tui.test.d.ts.map +1 -0
- package/dist/tui/issue-session-tui.test.js +529 -0
- package/dist/tui/issue-session-tui.test.js.map +1 -0
- package/dist/tui/open-questions-pane.d.ts +32 -0
- package/dist/tui/open-questions-pane.d.ts.map +1 -0
- package/dist/tui/open-questions-pane.js +101 -0
- package/dist/tui/open-questions-pane.js.map +1 -0
- package/dist/tui/operator-input-key-reducer.d.ts +36 -0
- package/dist/tui/operator-input-key-reducer.d.ts.map +1 -0
- package/dist/tui/operator-input-key-reducer.js +141 -0
- package/dist/tui/operator-input-key-reducer.js.map +1 -0
- package/dist/tui/operator-input-layout.d.ts +29 -0
- package/dist/tui/operator-input-layout.d.ts.map +1 -0
- package/dist/tui/operator-input-layout.js +120 -0
- package/dist/tui/operator-input-layout.js.map +1 -0
- package/dist/tui/orchestration-pane-frame.d.ts +9 -0
- package/dist/tui/orchestration-pane-frame.d.ts.map +1 -0
- package/dist/tui/orchestration-pane-frame.js +27 -0
- package/dist/tui/orchestration-pane-frame.js.map +1 -0
- package/dist/tui/tui-layout-constants.d.ts +48 -0
- package/dist/tui/tui-layout-constants.d.ts.map +1 -0
- package/dist/tui/tui-layout-constants.js +48 -0
- package/dist/tui/tui-layout-constants.js.map +1 -0
- package/dist/tui/tui-view-model.d.ts +20 -0
- package/dist/tui/tui-view-model.d.ts.map +1 -0
- package/dist/tui/tui-view-model.js +69 -0
- package/dist/tui/tui-view-model.js.map +1 -0
- package/dist/tui/wrap-text-to-width.d.ts +14 -0
- package/dist/tui/wrap-text-to-width.d.ts.map +1 -0
- package/dist/tui/wrap-text-to-width.js +55 -0
- package/dist/tui/wrap-text-to-width.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { OperatorInputContext } from '@agents-ensemble/core';
|
|
2
|
+
import type { SessionDisplayState } from '../display/session-display-state.js';
|
|
3
|
+
import { type ActivityLogEntry, type ActivityLogLabel } from './activity-log.js';
|
|
4
|
+
export interface TuiViewSnapshot {
|
|
5
|
+
displayState: SessionDisplayState;
|
|
6
|
+
activityLog: ActivityLogEntry[];
|
|
7
|
+
postLoopWaiting: boolean;
|
|
8
|
+
operatorContext: OperatorInputContext | undefined;
|
|
9
|
+
}
|
|
10
|
+
export interface TuiViewModel {
|
|
11
|
+
subscribe: (listener: () => void) => () => void;
|
|
12
|
+
getSnapshot: () => TuiViewSnapshot;
|
|
13
|
+
setDisplayState: (state: SessionDisplayState) => void;
|
|
14
|
+
appendActivityLog: (label: ActivityLogLabel, text: string) => void;
|
|
15
|
+
appendActivityLogSeparator: () => void;
|
|
16
|
+
setPostLoopWaiting: (waiting: boolean) => void;
|
|
17
|
+
setOperatorContext: (context: OperatorInputContext | undefined) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createTuiViewModel(): TuiViewModel;
|
|
20
|
+
//# sourceMappingURL=tui-view-model.d.ts.map
|
|
@@ -0,0 +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,EAEL,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,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,oBAAoB,GAAG,SAAS,CAAC;CACnD;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,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,kBAAkB,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAmEjD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { INITIAL_SESSION_DISPLAY_STATE } from '../display/session-display-state.js';
|
|
2
|
+
import { appendActivityLogEntry, } from './activity-log.js';
|
|
3
|
+
import { trimBlankLinesOnly } from './operator-input-layout.js';
|
|
4
|
+
export function createTuiViewModel() {
|
|
5
|
+
let displayState = INITIAL_SESSION_DISPLAY_STATE;
|
|
6
|
+
let activityLog = [];
|
|
7
|
+
let postLoopWaiting = false;
|
|
8
|
+
let operatorContext;
|
|
9
|
+
let snapshot = {
|
|
10
|
+
displayState,
|
|
11
|
+
activityLog,
|
|
12
|
+
postLoopWaiting,
|
|
13
|
+
operatorContext,
|
|
14
|
+
};
|
|
15
|
+
const listeners = new Set();
|
|
16
|
+
const rebuildSnapshot = () => {
|
|
17
|
+
snapshot = {
|
|
18
|
+
displayState,
|
|
19
|
+
activityLog,
|
|
20
|
+
postLoopWaiting,
|
|
21
|
+
operatorContext,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const notify = () => {
|
|
25
|
+
rebuildSnapshot();
|
|
26
|
+
for (const listener of listeners) {
|
|
27
|
+
listener();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
subscribe(listener) {
|
|
32
|
+
listeners.add(listener);
|
|
33
|
+
return () => {
|
|
34
|
+
listeners.delete(listener);
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
getSnapshot() {
|
|
38
|
+
return snapshot;
|
|
39
|
+
},
|
|
40
|
+
setDisplayState(state) {
|
|
41
|
+
displayState = state;
|
|
42
|
+
notify();
|
|
43
|
+
},
|
|
44
|
+
appendActivityLog(label, text) {
|
|
45
|
+
const trimmed = trimBlankLinesOnly(text);
|
|
46
|
+
if (!trimmed) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
activityLog = appendActivityLogEntry(activityLog, { label, text: trimmed });
|
|
50
|
+
notify();
|
|
51
|
+
},
|
|
52
|
+
appendActivityLogSeparator() {
|
|
53
|
+
activityLog = appendActivityLogEntry(activityLog, { label: 'separator', text: '' });
|
|
54
|
+
notify();
|
|
55
|
+
},
|
|
56
|
+
setPostLoopWaiting(waiting) {
|
|
57
|
+
if (postLoopWaiting === waiting) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
postLoopWaiting = waiting;
|
|
61
|
+
notify();
|
|
62
|
+
},
|
|
63
|
+
setOperatorContext(context) {
|
|
64
|
+
operatorContext = context;
|
|
65
|
+
notify();
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=tui-view-model.js.map
|
|
@@ -0,0 +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,sBAAsB,GAGvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAmBhE,MAAM,UAAU,kBAAkB;IAChC,IAAI,YAAY,GAAG,6BAA6B,CAAC;IACjD,IAAI,WAAW,GAAuB,EAAE,CAAC;IACzC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,eAAiD,CAAC;IACtD,IAAI,QAAQ,GAAoB;QAC9B,YAAY;QACZ,WAAW;QACX,eAAe;QACf,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,eAAe;YACf,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,WAAW,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5E,MAAM,EAAE,CAAC;QACX,CAAC;QACD,0BAA0B;YACxB,WAAW,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpF,MAAM,EAAE,CAAC;QACX,CAAC;QACD,kBAAkB,CAAC,OAAO;YACxB,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YACD,eAAe,GAAG,OAAO,CAAC;YAC1B,MAAM,EAAE,CAAC;QACX,CAAC;QACD,kBAAkB,CAAC,OAAO;YACxB,eAAe,GAAG,OAAO,CAAC;YAC1B,MAAM,EAAE,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 枠線・padding を除いたペイン内の有効幅(表示幅ベース)。 */
|
|
2
|
+
export declare function getPaneContentWidth(options: {
|
|
3
|
+
columns: number;
|
|
4
|
+
paddingX?: number;
|
|
5
|
+
borderWidth?: number;
|
|
6
|
+
}): number;
|
|
7
|
+
/**
|
|
8
|
+
* テキストを指定表示幅以内に折り返す(横方向のみ。既存の改行は維持)。
|
|
9
|
+
* 単語境界(空白)を優先し、無ければ硬く分割する。CJK は `string-width` で幅計算。
|
|
10
|
+
*/
|
|
11
|
+
export declare function wrapTextToWidth(text: string, width: number): string[];
|
|
12
|
+
/** {@link wrapTextToWidth} と同じ折り返し位置を返す(テスト・カーソル計算用)。 */
|
|
13
|
+
export declare function findWrapBreakIndex(text: string, width: number): number;
|
|
14
|
+
//# sourceMappingURL=wrap-text-to-width.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-text-to-width.d.ts","sourceRoot":"","sources":["../../src/tui/wrap-text-to-width.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAIT;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBrE;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBtE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import stringWidth from 'string-width';
|
|
2
|
+
/** 枠線・padding を除いたペイン内の有効幅(表示幅ベース)。 */
|
|
3
|
+
export function getPaneContentWidth(options) {
|
|
4
|
+
const paddingX = options.paddingX ?? 0;
|
|
5
|
+
const borderWidth = options.borderWidth ?? 0;
|
|
6
|
+
return Math.max(1, options.columns - borderWidth - paddingX * 2);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* テキストを指定表示幅以内に折り返す(横方向のみ。既存の改行は維持)。
|
|
10
|
+
* 単語境界(空白)を優先し、無ければ硬く分割する。CJK は `string-width` で幅計算。
|
|
11
|
+
*/
|
|
12
|
+
export function wrapTextToWidth(text, width) {
|
|
13
|
+
if (width < 1) {
|
|
14
|
+
return [text];
|
|
15
|
+
}
|
|
16
|
+
if (text === '') {
|
|
17
|
+
return [''];
|
|
18
|
+
}
|
|
19
|
+
const lines = [];
|
|
20
|
+
for (const paragraph of text.split('\n')) {
|
|
21
|
+
let remaining = paragraph;
|
|
22
|
+
while (stringWidth(remaining) > width) {
|
|
23
|
+
const breakAt = findWrapBreakIndex(remaining, width);
|
|
24
|
+
lines.push(remaining.slice(0, breakAt));
|
|
25
|
+
remaining = remaining.slice(breakAt).trimStart();
|
|
26
|
+
}
|
|
27
|
+
lines.push(remaining);
|
|
28
|
+
}
|
|
29
|
+
return lines;
|
|
30
|
+
}
|
|
31
|
+
/** {@link wrapTextToWidth} と同じ折り返し位置を返す(テスト・カーソル計算用)。 */
|
|
32
|
+
export function findWrapBreakIndex(text, width) {
|
|
33
|
+
if (stringWidth(text) <= width) {
|
|
34
|
+
return text.length;
|
|
35
|
+
}
|
|
36
|
+
let breakAt = 0;
|
|
37
|
+
for (let index = 1; index <= text.length; index++) {
|
|
38
|
+
if (stringWidth(text.slice(0, index)) <= width) {
|
|
39
|
+
breakAt = index;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (breakAt === 0) {
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
const chunk = text.slice(0, breakAt);
|
|
49
|
+
const lastSpace = chunk.lastIndexOf(' ');
|
|
50
|
+
if (lastSpace > 0 && stringWidth(chunk.slice(0, lastSpace)) <= width) {
|
|
51
|
+
return lastSpace;
|
|
52
|
+
}
|
|
53
|
+
return breakAt;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=wrap-text-to-width.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap-text-to-width.js","sourceRoot":"","sources":["../../src/tui/wrap-text-to-width.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,uCAAuC;AACvC,MAAM,UAAU,mBAAmB,CAAC,OAInC;IACC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACxC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAa;IAC5D,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAC/C,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agents-ensemble/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "ensemble CLI — Issue-based agent orchestration",
|
|
6
6
|
"bin": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"ink": "7.1.1",
|
|
15
15
|
"react": "19.2.0",
|
|
16
16
|
"string-width": "8.1.0",
|
|
17
|
-
"@agents-ensemble/core": "0.
|
|
17
|
+
"@agents-ensemble/core": "0.1.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/js-yaml": "4.0.9",
|