@letrquan/book 0.2.0 → 0.3.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/CHANGELOG.md +2747 -40
- package/README.md +132 -1311
- package/dist/additional-roots-H7UNAEHS.js +31 -0
- package/dist/{app-MOXXWEOY.js → app-GE4OHJOC.js} +5740 -4045
- package/dist/app-GE4OHJOC.js.map +1 -0
- package/dist/{chunk-5GDZ22YP.js → chunk-224FJZLH.js} +99 -108
- package/dist/chunk-224FJZLH.js.map +1 -0
- package/dist/chunk-2AAOF5B5.js +28 -0
- package/dist/chunk-2AAOF5B5.js.map +1 -0
- package/dist/{chunk-CAGOB2N4.js → chunk-4AS7LKKQ.js} +6 -4
- package/dist/chunk-4AS7LKKQ.js.map +1 -0
- package/dist/chunk-525CAZPY.js +120 -0
- package/dist/chunk-525CAZPY.js.map +1 -0
- package/dist/{chunk-URLQAXTR.js → chunk-56SIEMDX.js} +2 -2
- package/dist/chunk-56SIEMDX.js.map +1 -0
- package/dist/{chunk-XIFFTATU.js → chunk-5YHTKWJN.js} +5420 -4031
- package/dist/chunk-5YHTKWJN.js.map +1 -0
- package/dist/chunk-62QL5QUP.js +283 -0
- package/dist/chunk-62QL5QUP.js.map +1 -0
- package/dist/{chunk-KWHQ2XXL.js → chunk-67UZEWWF.js} +3 -3
- package/dist/chunk-67UZEWWF.js.map +1 -0
- package/dist/chunk-6OQQOMZR.js +785 -0
- package/dist/chunk-6OQQOMZR.js.map +1 -0
- package/dist/{chunk-GTVB4HEM.js → chunk-AQEQX4FF.js} +344 -315
- package/dist/chunk-AQEQX4FF.js.map +1 -0
- package/dist/chunk-C7ADUNPR.js +273 -0
- package/dist/chunk-C7ADUNPR.js.map +1 -0
- package/dist/{chunk-E75IPST5.js → chunk-EFJ2NH6E.js} +12 -58
- package/dist/chunk-EFJ2NH6E.js.map +1 -0
- package/dist/{chunk-5KLVH3PY.js → chunk-HQI7NYGX.js} +5 -3
- package/dist/chunk-HQI7NYGX.js.map +1 -0
- package/dist/chunk-IME7R2UI.js +6541 -0
- package/dist/chunk-IME7R2UI.js.map +1 -0
- package/dist/chunk-J4F2QLM2.js +273 -0
- package/dist/chunk-J4F2QLM2.js.map +1 -0
- package/dist/{chunk-MAQXCUR4.js → chunk-J62VZYOB.js} +444 -112
- package/dist/chunk-J62VZYOB.js.map +1 -0
- package/dist/chunk-JTPOI3KU.js +826 -0
- package/dist/chunk-JTPOI3KU.js.map +1 -0
- package/dist/{chunk-WKBO5R4O.js → chunk-KBQS35OV.js} +2 -2
- package/dist/chunk-KBQS35OV.js.map +1 -0
- package/dist/chunk-KXAYUIKP.js +90 -0
- package/dist/chunk-KXAYUIKP.js.map +1 -0
- package/dist/{chunk-VZQXX3WW.js → chunk-QYBD22H5.js} +1 -1
- package/dist/chunk-QYBD22H5.js.map +1 -0
- package/dist/{chunk-V4BOYR52.js → chunk-RFJ6Q6LE.js} +763 -198
- package/dist/chunk-RFJ6Q6LE.js.map +1 -0
- package/dist/{chunk-7N4J557C.js → chunk-RT5SATF7.js} +1 -1
- package/dist/chunk-RT5SATF7.js.map +1 -0
- package/dist/{chunk-C7D4NJ2D.js → chunk-S4JMID4G.js} +68 -26
- package/dist/chunk-S4JMID4G.js.map +1 -0
- package/dist/{chunk-ANSJPYGI.js → chunk-SOW4WRQP.js} +3 -3
- package/dist/chunk-SOW4WRQP.js.map +1 -0
- package/dist/{chunk-J7MIZ5CA.js → chunk-TLX3H2CL.js} +518 -79
- package/dist/chunk-TLX3H2CL.js.map +1 -0
- package/dist/{chunk-DGMQEI6Y.js → chunk-VPNLCMVR.js} +22 -9
- package/dist/chunk-VPNLCMVR.js.map +1 -0
- package/dist/{chunk-BTZZUCLI.js → chunk-W3XFHEF4.js} +173 -29
- package/dist/chunk-W3XFHEF4.js.map +1 -0
- package/dist/{chunk-574C6MQR.js → chunk-X4NJT436.js} +130 -60
- package/dist/chunk-X4NJT436.js.map +1 -0
- package/dist/chunk-X66I2NQO.js +137 -0
- package/dist/chunk-X66I2NQO.js.map +1 -0
- package/dist/chunk-XHAO3K7I.js +18 -0
- package/dist/chunk-XHAO3K7I.js.map +1 -0
- package/dist/{chunk-3U5IBM24.js → chunk-Y2VHN7TC.js} +2 -2
- package/dist/chunk-Y2VHN7TC.js.map +1 -0
- package/dist/chunk-YC6W4EJH.js +947 -0
- package/dist/chunk-YC6W4EJH.js.map +1 -0
- package/dist/{chunk-24AXE6SP.js → chunk-ZPSZZUWF.js} +1 -1
- package/dist/chunk-ZPSZZUWF.js.map +1 -0
- package/dist/{command-approvals-6Y57VCWZ.js → command-approvals-VBIU6BLM.js} +6 -5
- package/dist/context-CBOBDY5Q.js +38 -0
- package/dist/{hook-approvals-CTUFKEJT.js → hook-approvals-ZVT4V7IM.js} +5 -5
- package/dist/index.js +996 -155
- package/dist/index.js.map +1 -1
- package/dist/{interactive-assets-CCAAWVKH.js → interactive-assets-T4I4SEHU.js} +13 -9
- package/dist/interactive-assets-T4I4SEHU.js.map +1 -0
- package/dist/job-runner.js +159 -111
- package/dist/job-runner.js.map +1 -1
- package/dist/job-supervisor.d.ts +2 -0
- package/dist/job-supervisor.js +112 -0
- package/dist/job-supervisor.js.map +1 -0
- package/dist/loader-S77OVTHH.js +18 -0
- package/dist/{mcp-approvals-WNPH65BK.js → mcp-approvals-HJ2VDYMC.js} +5 -5
- package/dist/{mcp-config-YIJIES2C.js → mcp-config-RNB5LEVE.js} +3 -3
- package/dist/memory-store-DZUT5HUH.js +75 -0
- package/dist/{model-window-store-YFVNXCIP.js → model-window-store-MTSQ5JDJ.js} +8 -4
- package/dist/openai-compatible-2OB54YST.js +14 -0
- package/dist/{permission-approvals-76PVREFD.js → permission-approvals-YLV6UC5W.js} +5 -5
- package/dist/permissions-DHOKF3W2.js +45 -0
- package/dist/sandbox-WRYTZH3D.js +41 -0
- package/dist/{scrollback-LUKLIBVI.js → scrollback-35ME2GFX.js} +32 -22
- package/dist/scrollback-35ME2GFX.js.map +1 -0
- package/dist/sdk.d.ts +2219 -2361
- package/dist/sdk.js +53 -38
- package/dist/sdk.js.map +1 -1
- package/dist/settings-loader-JUNPGAAM.js +35 -0
- package/dist/settings-loader-JUNPGAAM.js.map +1 -0
- package/dist/{shell-selection-V6QAYXPX.js → shell-selection-CDHGJ4GC.js} +2 -2
- package/dist/shell-selection-CDHGJ4GC.js.map +1 -0
- package/package.json +23 -22
- package/dist/app-MOXXWEOY.js.map +0 -1
- package/dist/chunk-24AXE6SP.js.map +0 -1
- package/dist/chunk-3U5IBM24.js.map +0 -1
- package/dist/chunk-574C6MQR.js.map +0 -1
- package/dist/chunk-5GDZ22YP.js.map +0 -1
- package/dist/chunk-5KLVH3PY.js.map +0 -1
- package/dist/chunk-7N4J557C.js.map +0 -1
- package/dist/chunk-A7JLBK2Y.js +0 -3506
- package/dist/chunk-A7JLBK2Y.js.map +0 -1
- package/dist/chunk-ANSJPYGI.js.map +0 -1
- package/dist/chunk-BTZZUCLI.js.map +0 -1
- package/dist/chunk-C7D4NJ2D.js.map +0 -1
- package/dist/chunk-CAGOB2N4.js.map +0 -1
- package/dist/chunk-DGMQEI6Y.js.map +0 -1
- package/dist/chunk-E75IPST5.js.map +0 -1
- package/dist/chunk-EYGD6X2T.js +0 -180
- package/dist/chunk-EYGD6X2T.js.map +0 -1
- package/dist/chunk-GTVB4HEM.js.map +0 -1
- package/dist/chunk-J7MIZ5CA.js.map +0 -1
- package/dist/chunk-KWHQ2XXL.js.map +0 -1
- package/dist/chunk-L6LK2QIQ.js +0 -657
- package/dist/chunk-L6LK2QIQ.js.map +0 -1
- package/dist/chunk-MAQXCUR4.js.map +0 -1
- package/dist/chunk-S4XL7HOM.js +0 -402
- package/dist/chunk-S4XL7HOM.js.map +0 -1
- package/dist/chunk-URLQAXTR.js.map +0 -1
- package/dist/chunk-V4BOYR52.js.map +0 -1
- package/dist/chunk-VZQXX3WW.js.map +0 -1
- package/dist/chunk-WKBO5R4O.js.map +0 -1
- package/dist/chunk-XIFFTATU.js.map +0 -1
- package/dist/context-ZC5IFEAX.js +0 -25
- package/dist/interactive-assets-CCAAWVKH.js.map +0 -1
- package/dist/loader-4IDS2RIE.js +0 -15
- package/dist/openai-compatible-RHZUBHV6.js +0 -10
- package/dist/permissions-CHCKTFQQ.js +0 -28
- package/dist/sandbox-CNVAQDA7.js +0 -23
- package/dist/scrollback-LUKLIBVI.js.map +0 -1
- package/dist/settings-loader-M2QP5TX2.js +0 -21
- package/patches/ink+6.8.0.patch +0 -13
- package/scripts/apply-ink-patch.mjs +0 -29
- package/scripts/ink-patch.mjs +0 -59
- package/scripts/verify-ink-patch.mjs +0 -11
- /package/dist/{command-approvals-6Y57VCWZ.js.map → additional-roots-H7UNAEHS.js.map} +0 -0
- /package/dist/{context-ZC5IFEAX.js.map → command-approvals-VBIU6BLM.js.map} +0 -0
- /package/dist/{hook-approvals-CTUFKEJT.js.map → context-CBOBDY5Q.js.map} +0 -0
- /package/dist/{loader-4IDS2RIE.js.map → hook-approvals-ZVT4V7IM.js.map} +0 -0
- /package/dist/{mcp-approvals-WNPH65BK.js.map → loader-S77OVTHH.js.map} +0 -0
- /package/dist/{mcp-config-YIJIES2C.js.map → mcp-approvals-HJ2VDYMC.js.map} +0 -0
- /package/dist/{model-window-store-YFVNXCIP.js.map → mcp-config-RNB5LEVE.js.map} +0 -0
- /package/dist/{openai-compatible-RHZUBHV6.js.map → memory-store-DZUT5HUH.js.map} +0 -0
- /package/dist/{permission-approvals-76PVREFD.js.map → model-window-store-MTSQ5JDJ.js.map} +0 -0
- /package/dist/{permissions-CHCKTFQQ.js.map → openai-compatible-2OB54YST.js.map} +0 -0
- /package/dist/{sandbox-CNVAQDA7.js.map → permission-approvals-YLV6UC5W.js.map} +0 -0
- /package/dist/{settings-loader-M2QP5TX2.js.map → permissions-DHOKF3W2.js.map} +0 -0
- /package/dist/{shell-selection-V6QAYXPX.js.map → sandbox-WRYTZH3D.js.map} +0 -0
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
mcpServersToRecord,
|
|
5
5
|
partitionMcpServersByApproval,
|
|
6
6
|
persistMcpProjectServerChoice
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-56SIEMDX.js";
|
|
8
|
+
import "./chunk-VPNLCMVR.js";
|
|
9
|
+
import "./chunk-X4NJT436.js";
|
|
10
|
+
import "./chunk-ZPSZZUWF.js";
|
|
11
11
|
export {
|
|
12
12
|
evaluateMcpServerApproval,
|
|
13
13
|
mcpServerFingerprint,
|
|
@@ -15,4 +15,4 @@ export {
|
|
|
15
15
|
partitionMcpServersByApproval,
|
|
16
16
|
persistMcpProjectServerChoice
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=mcp-approvals-
|
|
18
|
+
//# sourceMappingURL=mcp-approvals-HJ2VDYMC.js.map
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
isValidMcpServerName,
|
|
5
5
|
loadMcpConfig,
|
|
6
6
|
resolveMcpServerList
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-Y2VHN7TC.js";
|
|
8
|
+
import "./chunk-ZPSZZUWF.js";
|
|
9
9
|
export {
|
|
10
10
|
consoleMcpDiagnosticSink,
|
|
11
11
|
formatMcpServerCommand,
|
|
@@ -13,4 +13,4 @@ export {
|
|
|
13
13
|
loadMcpConfig,
|
|
14
14
|
resolveMcpServerList
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=mcp-config-
|
|
16
|
+
//# sourceMappingURL=mcp-config-RNB5LEVE.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_MAX_INDEX_LINES,
|
|
3
|
+
DELEGATED_MEMORY_TYPES,
|
|
4
|
+
MAX_BODY_CHARS,
|
|
5
|
+
MEMORY_TYPES,
|
|
6
|
+
approveMemoryCandidate,
|
|
7
|
+
canModelWriteMemory,
|
|
8
|
+
countMemoryCandidates,
|
|
9
|
+
deleteMemoryEntry,
|
|
10
|
+
discardMemoryCandidate,
|
|
11
|
+
getMemoryExtractionLockPath,
|
|
12
|
+
getMemoryExtractionStatePath,
|
|
13
|
+
getMemoryHealth,
|
|
14
|
+
getMemoryInboxDir,
|
|
15
|
+
getNewestMemoryWriteTime,
|
|
16
|
+
getProjectMemoryDir,
|
|
17
|
+
isMemorySaveAvailable,
|
|
18
|
+
listMemoryCandidates,
|
|
19
|
+
listMemoryFiles,
|
|
20
|
+
loadMemoryContext,
|
|
21
|
+
memoryEntryDriver,
|
|
22
|
+
memoryFileForSlug,
|
|
23
|
+
memoryWriteScope,
|
|
24
|
+
readMemoryFile,
|
|
25
|
+
rulesNameMemorySave,
|
|
26
|
+
sanitizeMemorySlug,
|
|
27
|
+
sanitizeMemoryTitle,
|
|
28
|
+
saveMemory,
|
|
29
|
+
shouldRejectMemoryText,
|
|
30
|
+
slugifyWorkspace,
|
|
31
|
+
writeMemoryCandidate
|
|
32
|
+
} from "./chunk-6OQQOMZR.js";
|
|
33
|
+
import "./chunk-J62VZYOB.js";
|
|
34
|
+
import "./chunk-JTPOI3KU.js";
|
|
35
|
+
import "./chunk-KXAYUIKP.js";
|
|
36
|
+
import "./chunk-525CAZPY.js";
|
|
37
|
+
import "./chunk-X66I2NQO.js";
|
|
38
|
+
import "./chunk-62QL5QUP.js";
|
|
39
|
+
import "./chunk-224FJZLH.js";
|
|
40
|
+
import "./chunk-VPNLCMVR.js";
|
|
41
|
+
import "./chunk-X4NJT436.js";
|
|
42
|
+
import "./chunk-ZPSZZUWF.js";
|
|
43
|
+
export {
|
|
44
|
+
DEFAULT_MAX_INDEX_LINES,
|
|
45
|
+
DELEGATED_MEMORY_TYPES,
|
|
46
|
+
MAX_BODY_CHARS,
|
|
47
|
+
MEMORY_TYPES,
|
|
48
|
+
approveMemoryCandidate,
|
|
49
|
+
canModelWriteMemory,
|
|
50
|
+
countMemoryCandidates,
|
|
51
|
+
deleteMemoryEntry,
|
|
52
|
+
discardMemoryCandidate,
|
|
53
|
+
getMemoryExtractionLockPath,
|
|
54
|
+
getMemoryExtractionStatePath,
|
|
55
|
+
getMemoryHealth,
|
|
56
|
+
getMemoryInboxDir,
|
|
57
|
+
getNewestMemoryWriteTime,
|
|
58
|
+
getProjectMemoryDir,
|
|
59
|
+
isMemorySaveAvailable,
|
|
60
|
+
listMemoryCandidates,
|
|
61
|
+
listMemoryFiles,
|
|
62
|
+
loadMemoryContext,
|
|
63
|
+
memoryEntryDriver,
|
|
64
|
+
memoryFileForSlug,
|
|
65
|
+
memoryWriteScope,
|
|
66
|
+
readMemoryFile,
|
|
67
|
+
rulesNameMemorySave,
|
|
68
|
+
sanitizeMemorySlug,
|
|
69
|
+
sanitizeMemoryTitle,
|
|
70
|
+
saveMemory,
|
|
71
|
+
shouldRejectMemoryText,
|
|
72
|
+
slugifyWorkspace,
|
|
73
|
+
writeMemoryCandidate
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=memory-store-DZUT5HUH.js.map
|
|
@@ -6,12 +6,14 @@ import {
|
|
|
6
6
|
MemoryModelWindowStore,
|
|
7
7
|
createModelWindowStore,
|
|
8
8
|
defaultModelWindowStorePath,
|
|
9
|
+
learnedModelWindowEntrySchema,
|
|
10
|
+
looseModelWindowStoreSchema,
|
|
9
11
|
ratchetModelWindow,
|
|
10
12
|
readModelWindowStore,
|
|
11
13
|
writeModelWindowStore
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-4AS7LKKQ.js";
|
|
15
|
+
import "./chunk-X4NJT436.js";
|
|
16
|
+
import "./chunk-ZPSZZUWF.js";
|
|
15
17
|
export {
|
|
16
18
|
FileModelWindowStore,
|
|
17
19
|
LEARNED_WINDOW_SAFETY_MARGIN,
|
|
@@ -20,8 +22,10 @@ export {
|
|
|
20
22
|
MemoryModelWindowStore,
|
|
21
23
|
createModelWindowStore,
|
|
22
24
|
defaultModelWindowStorePath,
|
|
25
|
+
learnedModelWindowEntrySchema,
|
|
26
|
+
looseModelWindowStoreSchema,
|
|
23
27
|
ratchetModelWindow,
|
|
24
28
|
readModelWindowStore,
|
|
25
29
|
writeModelWindowStore
|
|
26
30
|
};
|
|
27
|
-
//# sourceMappingURL=model-window-store-
|
|
31
|
+
//# sourceMappingURL=model-window-store-MTSQ5JDJ.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
chatCompletionStream,
|
|
3
|
+
convertTools,
|
|
4
|
+
parseCompatibleUsage
|
|
5
|
+
} from "./chunk-AQEQX4FF.js";
|
|
6
|
+
import "./chunk-2AAOF5B5.js";
|
|
7
|
+
import "./chunk-RT5SATF7.js";
|
|
8
|
+
import "./chunk-62QL5QUP.js";
|
|
9
|
+
export {
|
|
10
|
+
chatCompletionStream,
|
|
11
|
+
convertTools,
|
|
12
|
+
parseCompatibleUsage
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=openai-compatible-2OB54YST.js.map
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
evaluateProjectAllowRule,
|
|
3
3
|
partitionProjectAllowRules,
|
|
4
4
|
persistProjectAllowRuleChoice
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-KBQS35OV.js";
|
|
6
|
+
import "./chunk-VPNLCMVR.js";
|
|
7
|
+
import "./chunk-X4NJT436.js";
|
|
8
|
+
import "./chunk-ZPSZZUWF.js";
|
|
9
9
|
export {
|
|
10
10
|
evaluateProjectAllowRule,
|
|
11
11
|
partitionProjectAllowRules,
|
|
12
12
|
persistProjectAllowRuleChoice
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=permission-approvals-
|
|
14
|
+
//# sourceMappingURL=permission-approvals-YLV6UC5W.js.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ALWAYS_ALLOWED_TOOLS,
|
|
3
|
+
WORKSPACE_READ_JUDGING_MODES,
|
|
4
|
+
WORKSPACE_READ_ONLY_GIT_TOOLS,
|
|
5
|
+
WORKSPACE_READ_REFUSAL_MODES,
|
|
6
|
+
WORKSPACE_READ_TOOLS,
|
|
7
|
+
evaluatePermission,
|
|
8
|
+
evaluatePermissionDetail,
|
|
9
|
+
hasAdjudicationPolicy,
|
|
10
|
+
parseRule,
|
|
11
|
+
permissionReasonOf,
|
|
12
|
+
permissionResultOf,
|
|
13
|
+
permissionRuleForToolCall,
|
|
14
|
+
permissionRuleLadder,
|
|
15
|
+
permissionRuleMatchesCall,
|
|
16
|
+
permissionRuleOf,
|
|
17
|
+
primaryArgForRule
|
|
18
|
+
} from "./chunk-J62VZYOB.js";
|
|
19
|
+
import "./chunk-JTPOI3KU.js";
|
|
20
|
+
import "./chunk-525CAZPY.js";
|
|
21
|
+
import "./chunk-X66I2NQO.js";
|
|
22
|
+
import "./chunk-62QL5QUP.js";
|
|
23
|
+
import "./chunk-224FJZLH.js";
|
|
24
|
+
import "./chunk-VPNLCMVR.js";
|
|
25
|
+
import "./chunk-X4NJT436.js";
|
|
26
|
+
import "./chunk-ZPSZZUWF.js";
|
|
27
|
+
export {
|
|
28
|
+
ALWAYS_ALLOWED_TOOLS,
|
|
29
|
+
WORKSPACE_READ_JUDGING_MODES,
|
|
30
|
+
WORKSPACE_READ_ONLY_GIT_TOOLS,
|
|
31
|
+
WORKSPACE_READ_REFUSAL_MODES,
|
|
32
|
+
WORKSPACE_READ_TOOLS,
|
|
33
|
+
evaluatePermission,
|
|
34
|
+
evaluatePermissionDetail,
|
|
35
|
+
hasAdjudicationPolicy,
|
|
36
|
+
parseRule,
|
|
37
|
+
permissionReasonOf,
|
|
38
|
+
permissionResultOf,
|
|
39
|
+
permissionRuleForToolCall,
|
|
40
|
+
permissionRuleLadder,
|
|
41
|
+
permissionRuleMatchesCall,
|
|
42
|
+
permissionRuleOf,
|
|
43
|
+
primaryArgForRule
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=permissions-DHOKF3W2.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildSandboxExecution,
|
|
3
|
+
createSandbox,
|
|
4
|
+
decideSandboxExecution,
|
|
5
|
+
describeControlPathRefusal,
|
|
6
|
+
hasDomainPolicy,
|
|
7
|
+
matchesExcludedCommand,
|
|
8
|
+
protectedWorkspacePaths,
|
|
9
|
+
readCoreHooksPaths,
|
|
10
|
+
readGitConfigIncludes,
|
|
11
|
+
realSandboxHost,
|
|
12
|
+
sandboxBackendAvailable,
|
|
13
|
+
sandboxCoverage,
|
|
14
|
+
sandboxPolicySummary,
|
|
15
|
+
unbindablePaths,
|
|
16
|
+
unsandboxedRefusalMessage,
|
|
17
|
+
withGitConfigReadOnlyNotice
|
|
18
|
+
} from "./chunk-JTPOI3KU.js";
|
|
19
|
+
import "./chunk-X66I2NQO.js";
|
|
20
|
+
import "./chunk-62QL5QUP.js";
|
|
21
|
+
import "./chunk-224FJZLH.js";
|
|
22
|
+
import "./chunk-ZPSZZUWF.js";
|
|
23
|
+
export {
|
|
24
|
+
buildSandboxExecution,
|
|
25
|
+
createSandbox,
|
|
26
|
+
decideSandboxExecution,
|
|
27
|
+
describeControlPathRefusal,
|
|
28
|
+
hasDomainPolicy,
|
|
29
|
+
matchesExcludedCommand,
|
|
30
|
+
protectedWorkspacePaths,
|
|
31
|
+
readCoreHooksPaths,
|
|
32
|
+
readGitConfigIncludes,
|
|
33
|
+
realSandboxHost,
|
|
34
|
+
sandboxBackendAvailable,
|
|
35
|
+
sandboxCoverage,
|
|
36
|
+
sandboxPolicySummary,
|
|
37
|
+
unbindablePaths,
|
|
38
|
+
unsandboxedRefusalMessage,
|
|
39
|
+
withGitConfigReadOnlyNotice
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=sandbox-WRYTZH3D.js.map
|
|
@@ -1,31 +1,39 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createDefaultRegistry,
|
|
3
3
|
runAgentLoop
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-5YHTKWJN.js";
|
|
5
|
+
import "./chunk-Y2VHN7TC.js";
|
|
6
|
+
import "./chunk-IME7R2UI.js";
|
|
7
|
+
import "./chunk-AQEQX4FF.js";
|
|
8
|
+
import "./chunk-67UZEWWF.js";
|
|
9
|
+
import "./chunk-W3XFHEF4.js";
|
|
10
|
+
import "./chunk-6OQQOMZR.js";
|
|
11
|
+
import "./chunk-J62VZYOB.js";
|
|
12
|
+
import "./chunk-JTPOI3KU.js";
|
|
13
|
+
import "./chunk-4AS7LKKQ.js";
|
|
14
|
+
import "./chunk-QYBD22H5.js";
|
|
15
|
+
import "./chunk-EFJ2NH6E.js";
|
|
16
|
+
import "./chunk-KXAYUIKP.js";
|
|
17
|
+
import "./chunk-HQI7NYGX.js";
|
|
18
|
+
import "./chunk-2AAOF5B5.js";
|
|
19
|
+
import "./chunk-YC6W4EJH.js";
|
|
20
|
+
import "./chunk-C7ADUNPR.js";
|
|
21
|
+
import "./chunk-RT5SATF7.js";
|
|
22
|
+
import "./chunk-XHAO3K7I.js";
|
|
23
|
+
import "./chunk-525CAZPY.js";
|
|
24
|
+
import "./chunk-X66I2NQO.js";
|
|
25
|
+
import "./chunk-62QL5QUP.js";
|
|
12
26
|
import {
|
|
13
27
|
getPrimaryArg,
|
|
14
28
|
toolResultErrorMessage,
|
|
15
29
|
toolResultSucceeded
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-WKBO5R4O.js";
|
|
23
|
-
import "./chunk-ANSJPYGI.js";
|
|
24
|
-
import "./chunk-DGMQEI6Y.js";
|
|
30
|
+
} from "./chunk-224FJZLH.js";
|
|
31
|
+
import "./chunk-KBQS35OV.js";
|
|
32
|
+
import "./chunk-SOW4WRQP.js";
|
|
33
|
+
import "./chunk-VPNLCMVR.js";
|
|
34
|
+
import "./chunk-X4NJT436.js";
|
|
35
|
+
import "./chunk-ZPSZZUWF.js";
|
|
25
36
|
import "./chunk-5RDRAO4B.js";
|
|
26
|
-
import "./chunk-CAGOB2N4.js";
|
|
27
|
-
import "./chunk-574C6MQR.js";
|
|
28
|
-
import "./chunk-24AXE6SP.js";
|
|
29
37
|
|
|
30
38
|
// src/cli/scrollback.ts
|
|
31
39
|
import { createInterface } from "readline/promises";
|
|
@@ -123,7 +131,9 @@ async function askPermission(call, read, output) {
|
|
|
123
131
|
`[permission] ${call.name}${getPrimaryArg(call.arguments) ? ` ${getPrimaryArg(call.arguments)}` : ""}
|
|
124
132
|
Allow? [y]es/[n]o/[a]lways: `
|
|
125
133
|
);
|
|
126
|
-
const
|
|
134
|
+
const line = await read("");
|
|
135
|
+
if (line === null) return { result: "deny", reason: "no_approver" };
|
|
136
|
+
const answer = line.trim().toLowerCase();
|
|
127
137
|
if (answer === "a" || answer === "always") return "always";
|
|
128
138
|
if (answer === "y" || answer === "yes") return "allow";
|
|
129
139
|
return "deny";
|
|
@@ -133,4 +143,4 @@ export {
|
|
|
133
143
|
formatToolResult,
|
|
134
144
|
runScrollbackSession
|
|
135
145
|
};
|
|
136
|
-
//# sourceMappingURL=scrollback-
|
|
146
|
+
//# sourceMappingURL=scrollback-35ME2GFX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/scrollback.ts"],"sourcesContent":["import { createInterface } from 'node:readline/promises';\nimport type { AgentConfig, PermissionMode } from '../types/runtime.js';\nimport type { AgentLoopCallbacks } from '../types/providers.js';\nimport type { Message } from '../types/messages.js';\nimport type { PermissionDecision, PermissionResult, ToolCall, ToolResult } from '../types/tools.js';\nimport { runAgentLoop } from '../agent/loop.js';\nimport { createDefaultRegistry, type ToolRegistry } from '../tools/registry.js';\nimport { getPrimaryArg } from '../tools/primary-arg.js';\nimport { toolResultErrorMessage, toolResultSucceeded } from '../tools/result.js';\n\nexport interface ScrollbackOptions {\n mode: PermissionMode;\n input?: NodeJS.ReadableStream;\n output?: { write: (s: string) => boolean | void };\n readPrompt?: () => Promise<string | null>;\n runLoop?: typeof runAgentLoop;\n registry?: ToolRegistry;\n}\n\nexport function formatToolCall(call: ToolCall): string {\n const primary = getPrimaryArg(call.arguments);\n return `\\n[tool] ${call.name}${primary ? ` ${primary}` : ''}\\n`;\n}\n\nexport function formatToolResult(result: ToolResult, call?: ToolCall): string {\n const success = toolResultSucceeded(result);\n const label = success ? '[OK]' : '[ERR]';\n const name = call?.name ?? 'tool';\n const primary = call ? getPrimaryArg(call.arguments) : '';\n const detail = success ? result.content : (toolResultErrorMessage(result) ?? '');\n return `${label} ${name}${primary ? ` ${primary}` : ''}${detail ? `\\n${detail.trimEnd()}` : ''}\\n`;\n}\n\nexport async function runScrollbackSession(\n config: AgentConfig,\n options: ScrollbackOptions,\n): Promise<Message[]> {\n const output = options.output ?? process.stdout;\n const registry =\n options.registry ?? createDefaultRegistry({ agents: config.settings.agents.mode !== 'off' });\n const runLoop = options.runLoop ?? runAgentLoop;\n const history: Message[] = [];\n const toolCalls = new Map<string, ToolCall>();\n const close = createPromptReader(options);\n\n output.write('Book scrollback mode. Terminal scrollback owns history. Type /exit to quit.\\n\\n');\n\n try {\n while (true) {\n const prompt = await close.read('You> ');\n if (prompt === null) break;\n const trimmed = prompt.trim();\n if (!trimmed) continue;\n if (trimmed === '/exit') break;\n if (trimmed === '/clear') {\n history.length = 0;\n output.write('[cleared]\\n');\n continue;\n }\n\n output.write('\\nBook\\n');\n const updated = await runLoop(\n config,\n registry,\n prompt,\n history,\n {\n onText: (text) => output.write(text),\n onReasoning: (text) => output.write(`\\n[thinking] ${text}\\n`),\n onToolCall: (call) => {\n toolCalls.set(call.id, call);\n output.write(formatToolCall(call));\n },\n onToolResult: (result) =>\n output.write(formatToolResult(result, toolCalls.get(result.toolCallId))),\n onError: (error) => output.write(`\\n[error] ${error}\\n`),\n onTurnStart: (turn) => {\n if (turn > 1) output.write(`\\nBook turn ${turn}\\n`);\n },\n onDone: () => output.write('\\n'),\n onPermissionRequired: (call) => askPermission(call, close.read, output),\n onUsage: () => {},\n } satisfies AgentLoopCallbacks,\n options.mode,\n );\n\n history.length = 0;\n history.push(...updated);\n output.write('\\n');\n }\n } finally {\n close.close();\n }\n\n return history;\n}\n\nfunction createPromptReader(options: ScrollbackOptions): {\n read: (prompt?: string) => Promise<string | null>;\n close: () => void;\n} {\n if (options.readPrompt)\n return { read: () => options.readPrompt?.() ?? Promise.resolve(null), close: () => {} };\n\n const rl = createInterface({\n input: options.input ?? process.stdin,\n output: process.stdout,\n });\n\n return {\n read: (prompt = 'You> ') => rl.question(prompt),\n close: () => rl.close(),\n };\n}\n\nasync function askPermission(\n call: ToolCall,\n read: (prompt?: string) => Promise<string | null>,\n output: { write: (s: string) => boolean | void },\n): Promise<PermissionResult | PermissionDecision> {\n output.write(\n `[permission] ${call.name}${getPrimaryArg(call.arguments) ? ` ${getPrimaryArg(call.arguments)}` : ''}\\nAllow? [y]es/[n]o/[a]lways: `,\n );\n const line = await read('');\n // The input closed: nobody is left to answer, which is not a person saying no (#264).\n if (line === null) return { result: 'deny', reason: 'no_approver' };\n const answer = line.trim().toLowerCase();\n if (answer === 'a' || answer === 'always') return 'always';\n if (answer === 'y' || answer === 'yes') return 'allow';\n return 'deny';\n}\n"],"mappings":"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","names":[]}
|