chainlesschain 0.166.32 → 0.166.36
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 +24 -1
- package/package.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-DKUOkYex.js → AIOps-Zs-zPwVG.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-B3luFrPA.js → ActionButton-HZlxM6H0.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-jbZ8R2S3.js → Analytics-CXyThRDb.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CFS2vzPS.js → AppLayout-DeyYh_EF.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-sS0Qpy5q.js → Artifacts-BQDtMwkx.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-CZ7kfjCG.js → Audit-DNH4UOux.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BpWc5SgP.js → BackgroundAgents-BkKdIxE6.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DpEYnvoy.js → Backup-DYy4aJom.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-kFzUGLnl.js → BaseInput-DjoyGVYm.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BP_8aAfJ.js → Chat-D86ZYgOD.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-yFeZ15D4.js → ChatBubbleRenderer-RxI_YYth.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-HR1HQ06d.js → Checkbox-C7p8UY99.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DxAqDPjT.js → Codegen-DnapqgV5.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BaCLih7J.js → Col-C29J2DBT.js} +1 -1
- package/src/assets/web-panel/assets/{Community-ZX64uW8D.js → Community-Bf3KeLCr.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-CLtMoXTt.js → Compact-DA83wB48.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BlyxBDrs.js → Compliance-CXXVgRFG.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CtQZIYPh.js → Cowork-B28Ftuqv.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-BebN-ajI.js → Cron-CO-BcnDf.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-3gRU0-58.js → Crosschain-BmgPMFCs.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DSVTtLnb.js → DID-CYW9WslA.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CvnhOWqc.js → Dashboard-CWWhVWds.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BhdofmCJ.js → Dropdown-CjTuc1-n.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-Dhpua9Lo.js → EmailListRenderer-BrROAu4d.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DA1mLqQ4.js → FamilyGuardDashboard-Ci8Lmk8W.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-D6SUyKGb.js → Federation-CKzKVLE_.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BcMiwguB.js → FormItemContext-CC2CK5PQ.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CGEB1WcH.js → GenericCardRenderer-BYa3ElyT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DGCNNqR_.js → Git-Bmn3ucA4.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-D4HVyFdL.js → Governance-DqEOXitg.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BOoEmvKl.js → Inference-BjfeExba.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-ECLI0C0_.js → KnowledgeGraph-CBTyIFlJ.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-Cf9GjHtX.js → Logs-KZfA_M9Q.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-C3J59f8v.js → MarkdownRenderer-BG7vi3V4.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-DeL4rOAJ.js → Marketplace-BFeK4he0.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-Dvn3KpLW.js → McpTools-Brg7uUoK.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-CSlLy-aw.js → Memory-Ce4AmyX3.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-yNIe8-74.js → MobileBridge-Dx1VBL_E.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-CsS8Lozw.js → MobileProjects-DPyRr2Xl.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-Q7iMzSds.js → Mtc-BzRmtDQU.js} +3 -3
- package/src/assets/web-panel/assets/{MtcAudit-CW71IQrK.js → MtcAudit-DvZ5kLvJ.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-pursAeeT.js → Multisig-D8uGUjX1.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-DtNo1qqO.js → NLProgramming-igc-TQE5.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-B1xUFwUT.js → Notes-CTqDYlek.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-BgmQs_J8.js → NotificationSettings-CkcLa2rb.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-DI9t8YZl.js → OrderTableRenderer-BfScYvnH.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BbrrT6gR.js → Organization-BjKK9SdB.js} +2 -2
- package/src/assets/web-panel/assets/{Overflow-BcPi4YUc.js → Overflow-BkcghTPE.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DfRteW76.js → P2P-l9f34Xu8.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-De81lu5Q.js → PdhVaultBrowser-yVXWmwWe.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-DLCRaOe3.js → Permissions-DeSYs0VV.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-fuTL6z8u.js → PersonalDataHub-CmKmhy0q.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-D3ztsQDw.js → Pipeline-DBxS4R_r.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-4f-SQ4ie.js → Privacy-CKngdGw3.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CC_ZFjrV.js → ProjectInit-0Pso0jXN.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-C9FWHcne.js → ProjectSettings-BHrqWQ6r.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-CR3ETMQQ.js → Projects-B8wIh9PK.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BWcbdgXx.js → Providers-CXFTOHRV.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-BavxpdIK.js → QrScannerModal-DfN0c_BN.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CZ7gupY4.js → QuickAsk-v1Z5hty_.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BQNpBYLL.js → Recommend-DOaVmZUi.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-2LU0Vr44.js → RemoteSession--EWcPBY1.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-oYWo7qyp.js → Reputation-DUWFSNvV.js} +1 -1
- package/src/assets/web-panel/assets/{Row-B8Yj-Csx.js → Row-0-bFnXWF.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CbxKbHJr.js → RssFeed-B_uTfubW.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DGe-u9s0.js → Search-CqxiTLfB.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BwjfMAFI.js → Security-CGoHOz5B.js} +2 -2
- package/src/assets/web-panel/assets/{Services-BB5NQHwQ.js → Services-COhAbS45.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BPSVUive.js → Skeleton-B97crp6v.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DU2D-IYQ.js → Skills-er_XdavV.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DLX0vcyj.js → Sla-RpkWkzOL.js} +1 -1
- package/src/assets/web-panel/assets/SpeechSettings-DDVXmT5y.js +1 -0
- package/src/assets/web-panel/assets/{SyncSettings-QuDslViv.js → SyncSettings-Bbiw6ohw.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-C-jF6Kwk.js → Tasks-CRghr7lo.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-B6tY1zm-.js → Templates-BUQkfydG.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BXx5FAY1.js → Tenant-CfUFOsZu.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CNk8KI4J.js → Terminal-BGY7gi4M.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Bo2YVc2l.js → TimelineRenderer-B3Len0l7.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Bs1Oq8t9.js → Tokens-BjeHn2zI.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CtDhiQxG.js → Trigger-ctcZ2mcv.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-riAZiPHp.js → Trust-oncF3TpO.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-DZRzYaNL.js → UkeySign-BwKbVYCd.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DTwOdg2x.js → VideoEditing-D1dgL-3U.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-ByuDECxb.js → Wallet-4hXAfjBL.js} +3 -3
- package/src/assets/web-panel/assets/{WebAuthn-CkSKfId0.js → WebAuthn-C8p3cotb.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-BmyJJndu.js → WorkflowEditor-BnrjG77E.js} +1 -1
- package/src/assets/web-panel/assets/{chat-s1LiqLff.js → chat-B-YNK7EI.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CMKVIFUx.js → colors-B9HYvK-e.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DQGdG4Y5.js → compact-item-BJr0quBA.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Csln9jj1.js → createContext-CXfbQEWD.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-DNpXMZaQ.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D1RYDhMF.js → hasIn-B7Q02hdZ.js} +1 -1
- package/src/assets/web-panel/assets/index-2hcdmWpb.js +1 -0
- package/src/assets/web-panel/assets/{index-DmIeFdLq.js → index-4gZEpDAG.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUVbDS_3.js → index-6wWd08X-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CiB2ZOQm.js → index-B6h86qjh.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cew8V1UQ.js → index-BB4KIBso.js} +1 -1
- package/src/assets/web-panel/assets/{index-DIFiRztW.js → index-BClzZrmx.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bqhj13Jf.js → index-BNL9lmWL.js} +1 -1
- package/src/assets/web-panel/assets/{index-D1kWd1be.js → index-BU_adeUp.js} +1 -1
- package/src/assets/web-panel/assets/{index-rHRlGEnX.js → index-Bd3nX6aj.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTg3OrkW.js → index-Bf0OxvOh.js} +1 -1
- package/src/assets/web-panel/assets/{index-C1y8O1ZP.js → index-BleXwr2w.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGBHLqy3.js → index-BmCD1_HC.js} +1 -1
- package/src/assets/web-panel/assets/{index-B39ap5Fq.js → index-BmvpVSmM.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6eoC11O.js → index-BoNVnnAq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUlRsoXi.js → index-BtunVZuS.js} +1 -1
- package/src/assets/web-panel/assets/{index--G_4msyB.js → index-BvRqE3Un.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0vls3Cv.js → index-C3M8M9_U.js} +1 -1
- package/src/assets/web-panel/assets/{index-ugL-2h6d.js → index-C7IZWdoB.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxVtT9q8.js → index-CEujQqdl.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8sTim5H.js → index-COdAugDt.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHic4uvV.js → index-CQ7qYZS4.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3TPgm-r.js → index-CU7cBzr9.js} +1 -1
- package/src/assets/web-panel/assets/{index-BFHhLE91.js → index-CXgHZ_HG.js} +1 -1
- package/src/assets/web-panel/assets/{index-DauplA4h.js → index-CcyxVqzn.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2v6xn0e.js → index-D0zuXz4s.js} +1 -1
- package/src/assets/web-panel/assets/{index-CHmRaTdN.js → index-D1GP2MQz.js} +1 -1
- package/src/assets/web-panel/assets/{index-FLnF1aVs.js → index-D5g5_oua.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmAjtQdv.js → index-DMoUa3dF.js} +1 -1
- package/src/assets/web-panel/assets/{index-8mlgjcck.js → index-DPUg6cVc.js} +1 -1
- package/src/assets/web-panel/assets/{index-BJsa5jwk.js → index-D_UneDq3.js} +1 -1
- package/src/assets/web-panel/assets/index-DbQCUG4D.js +1 -0
- package/src/assets/web-panel/assets/{index-BsmEoBNu.js → index-DsV1HA0Z.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bl5BNEwF.js → index-DutYFyC0.js} +1 -1
- package/src/assets/web-panel/assets/{index-BvrkxTu0.js → index-G7Z_On_n.js} +1 -1
- package/src/assets/web-panel/assets/{index-BiT8auXA.js → index-Gjegl5Ig.js} +1 -1
- package/src/assets/web-panel/assets/{index-jPM2-LMz.js → index-HzCaU25O.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQ86qdvJ.js → index-cq5Q-RHa.js} +19 -19
- package/src/assets/web-panel/assets/{index-CJwH7xWo.js → index-iCKFl_jt.js} +1 -1
- package/src/assets/web-panel/assets/{index-DU23ertt.js → index-kAggAkrB.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DWJU65d6.js → initDefaultProps-DrzGM6fO.js} +1 -1
- package/src/assets/web-panel/assets/{motion-B0cCdvX2.js → motion-SE_xFnGL.js} +1 -1
- package/src/assets/web-panel/assets/{move-CSWGW4YZ.js → move-CrPjKNiG.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-_P9unVrC.js → mtc-parser-CpcyFPK6.js} +1 -1
- package/src/assets/web-panel/assets/{omit-eUFaswv5.js → omit-BV0g7vf4.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Hmk4wpqj.js → pickAttrs-lWpsc-k6.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-COIVVq2l.js → placementArrow-CiewvU4X.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CkXZS7fs.js → responsiveObserve-DbF8pamO.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BGdyZ1Ue.js → slide-Bn82Ip9-.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-rbVNSZAN.js → statusUtils-J76gk_-G.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CcdFI5tK.js → styleChecker-BL95J74a.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-C9yiJQMh.js → useFlexGapSupport-BUzhdQsv.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-B73ulQmg.js → useFs-B2Fppepb.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DNN-hD_j.js → usePersonalDataHub-DjTASfYE.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BN1KizIr.js → vnode-BwrOgBqP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-0KE4Sg53.js → zoom-B6MeT_Gw.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/llm.js +4 -3
- package/src/data/changelog.json +52 -0
- package/src/lib/evolution/evolution-artifact-ports.js +40 -3
- package/src/lib/evolution/evolution-file-identity.js +50 -0
- package/src/lib/evolution/evolution-file-witness.js +206 -91
- package/src/lib/evolution/evolution-ledger-file-backend.js +4 -0
- package/src/lib/evolution/evolution-ledger.js +37 -5
- package/src/lib/evolution/evolution-witness-segments.js +330 -0
- package/src/lib/evolution/progressive-canary-external-watchdog.js +6 -4
- package/src/lib/evolution/skill-candidate-registry.js +45 -11
- package/src/lib/evolution/skill-release-registry.js +46 -12
- package/src/lib/llm-connection-probe.js +21 -4
- package/src/lib/remote-read-loop-guard.js +72 -13
- package/src/lib/text-file-search-worker.js +147 -0
- package/src/lib/text-file-search.js +116 -0
- package/src/lib/web-fetch-snapshots.js +211 -0
- package/src/lib/web-fetch.js +192 -18
- package/src/lib/web-search.js +118 -10
- package/src/runtime/agent-core.js +44 -0
- package/src/runtime/coding-agent-contract-shared.cjs +98 -4
- package/src/assets/web-panel/assets/SpeechSettings-CsPt1rpa.js +0 -1
- package/src/assets/web-panel/assets/devWarning-C8YOOF96.js +0 -1
- package/src/assets/web-panel/assets/index-BUXHmygu.js +0 -1
- package/src/assets/web-panel/assets/index-CsNpDb_W.js +0 -1
|
@@ -388,7 +388,8 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
388
388
|
title: "Search Files",
|
|
389
389
|
kind: "filesystem",
|
|
390
390
|
tier: "mvp",
|
|
391
|
-
description:
|
|
391
|
+
description:
|
|
392
|
+
"Search for files by name pattern or content. For a long text file, pass path and pattern: returns matching line/column positions, nearby context, and nextRead arguments for read_file. This streams the file instead of loading it into model context. Continue capped results with nextOffset as offset. Omit path for the existing directory search.",
|
|
392
393
|
inputSchema: {
|
|
393
394
|
type: "object",
|
|
394
395
|
properties: {
|
|
@@ -396,6 +397,40 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
396
397
|
type: "string",
|
|
397
398
|
description: "Glob pattern or search string",
|
|
398
399
|
},
|
|
400
|
+
path: {
|
|
401
|
+
type: "string",
|
|
402
|
+
description:
|
|
403
|
+
"One text file to search by literal keyword (takes precedence over directory/content_search).",
|
|
404
|
+
},
|
|
405
|
+
regex: {
|
|
406
|
+
type: "boolean",
|
|
407
|
+
description:
|
|
408
|
+
"Single-file search only: evaluate a regular expression in overlapping 64K text windows (default false). Prefer literals for exact coverage across window boundaries.",
|
|
409
|
+
},
|
|
410
|
+
caseSensitive: {
|
|
411
|
+
type: "boolean",
|
|
412
|
+
description: "Single-file search only: match case (default false).",
|
|
413
|
+
},
|
|
414
|
+
offset: {
|
|
415
|
+
type: "integer",
|
|
416
|
+
minimum: 0,
|
|
417
|
+
description:
|
|
418
|
+
"Single-file search: zero-based character offset to continue from nextOffset (default 0).",
|
|
419
|
+
},
|
|
420
|
+
maxMatches: {
|
|
421
|
+
type: "integer",
|
|
422
|
+
minimum: 1,
|
|
423
|
+
maximum: 100,
|
|
424
|
+
description:
|
|
425
|
+
"Single-file search: maximum matching excerpts (default 20).",
|
|
426
|
+
},
|
|
427
|
+
contextChars: {
|
|
428
|
+
type: "integer",
|
|
429
|
+
minimum: 0,
|
|
430
|
+
maximum: 1000,
|
|
431
|
+
description:
|
|
432
|
+
"Single-file search: characters around each match (default 150).",
|
|
433
|
+
},
|
|
399
434
|
directory: {
|
|
400
435
|
type: "string",
|
|
401
436
|
description: "Directory to search in (default: cwd)",
|
|
@@ -699,7 +734,7 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
699
734
|
kind: "network",
|
|
700
735
|
tier: "extension",
|
|
701
736
|
description:
|
|
702
|
-
"
|
|
737
|
+
"Download a web page over HTTP(S), save the extracted text locally, and return one chunk. Continue with the same URL/format and returned snapshotId + nextOffset as offset; subsequent chunks read the saved document without downloading again. Use maxChars to limit each chunk, not maxBytes. Snapshots expire after 30 minutes or cache eviction. GitHub Actions pages contain status/annotations; retrieve actual job logs using authenticated gh run view <run-id> --job <job-id> --log-failed --repo <owner/repo>. Honors allowlist from .chainlesschain/config.json:webFetch.",
|
|
703
738
|
inputSchema: {
|
|
704
739
|
type: "object",
|
|
705
740
|
properties: {
|
|
@@ -714,7 +749,53 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
714
749
|
},
|
|
715
750
|
maxBytes: {
|
|
716
751
|
type: "number",
|
|
717
|
-
description:
|
|
752
|
+
description:
|
|
753
|
+
"Raw HTTP download limit BEFORE text extraction (default: 10000000 / 10 MB). Larger text pages return a marked incomplete prefix by default; raise this for more of the page. Do not lower this to shorten output; use maxChars instead.",
|
|
754
|
+
},
|
|
755
|
+
maxChars: {
|
|
756
|
+
type: "number",
|
|
757
|
+
description:
|
|
758
|
+
"Characters per saved-text chunk (default: 20000). Returns hasMore, nextOffset and snapshotId for continuation. Applies to markdown/text/html; JSON values remain intact.",
|
|
759
|
+
},
|
|
760
|
+
snapshotId: {
|
|
761
|
+
type: "string",
|
|
762
|
+
description:
|
|
763
|
+
"Returned snapshot ID. Reads the already downloaded document from local storage without any HTTP request. Keep the same URL and format.",
|
|
764
|
+
},
|
|
765
|
+
query: {
|
|
766
|
+
type: "string",
|
|
767
|
+
description:
|
|
768
|
+
"Search the saved webpage for a literal keyword without network access (requires snapshotId). Returns matching offsets/context and nextRead arguments. Omit query when reading the matched section.",
|
|
769
|
+
},
|
|
770
|
+
maxMatches: {
|
|
771
|
+
type: "integer",
|
|
772
|
+
minimum: 1,
|
|
773
|
+
maximum: 100,
|
|
774
|
+
description:
|
|
775
|
+
"Saved-page keyword search: result limit (default 20); continue with nextOffset as offset.",
|
|
776
|
+
},
|
|
777
|
+
contextChars: {
|
|
778
|
+
type: "integer",
|
|
779
|
+
minimum: 0,
|
|
780
|
+
maximum: 1000,
|
|
781
|
+
description:
|
|
782
|
+
"Saved-page keyword search: context around each hit (default 150).",
|
|
783
|
+
},
|
|
784
|
+
caseSensitive: {
|
|
785
|
+
type: "boolean",
|
|
786
|
+
description:
|
|
787
|
+
"Saved-page keyword search: case-sensitive matching (default false).",
|
|
788
|
+
},
|
|
789
|
+
offset: {
|
|
790
|
+
type: "number",
|
|
791
|
+
description:
|
|
792
|
+
"Zero-based character position in extracted text (default: 0). For the next chunk, use the previous result's nextOffset with its snapshotId.",
|
|
793
|
+
},
|
|
794
|
+
onOverflow: {
|
|
795
|
+
type: "string",
|
|
796
|
+
enum: ["truncate", "error"],
|
|
797
|
+
description:
|
|
798
|
+
"When the raw download exceeds maxBytes: truncate (default) returns the available prefix with downloadTruncated=true and guidance to fetch more; error requires a complete response. JSON always requires a complete response.",
|
|
718
799
|
},
|
|
719
800
|
timeout: {
|
|
720
801
|
type: "number",
|
|
@@ -739,7 +820,7 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
739
820
|
kind: "network",
|
|
740
821
|
tier: "extension",
|
|
741
822
|
description:
|
|
742
|
-
"
|
|
823
|
+
"Discover web sources from keywords when no URL is known. Return ranked results (title, url, snippet) plus an optional synthesized answer; cite source URLs. This is keyword search, not URL fetching. Use web_fetch only for sources that need full-text inspection, then search/read their saved snapshot locally. Backend is configured via .chainlesschain/config.json:webSearch (default provider: auto — uses whichever API key is set, else keyless DuckDuckGo). Verification challenges are errors, not empty search results.",
|
|
743
824
|
inputSchema: {
|
|
744
825
|
type: "object",
|
|
745
826
|
properties: {
|
|
@@ -766,6 +847,19 @@ const CODING_AGENT_TOOL_CONTRACTS = Object.freeze([
|
|
|
766
847
|
type: "number",
|
|
767
848
|
description: "Maximum number of results to return (default: 8)",
|
|
768
849
|
},
|
|
850
|
+
maxBytes: {
|
|
851
|
+
type: "integer",
|
|
852
|
+
minimum: 1,
|
|
853
|
+
description:
|
|
854
|
+
"Raw search response download limit (default 10000000). Do not lower this to shorten snippets.",
|
|
855
|
+
},
|
|
856
|
+
maxSnippetChars: {
|
|
857
|
+
type: "integer",
|
|
858
|
+
minimum: 1,
|
|
859
|
+
maximum: 10000,
|
|
860
|
+
description:
|
|
861
|
+
"Characters per search-result snippet (default 2000). Read the linked webpage for full text.",
|
|
862
|
+
},
|
|
769
863
|
timeout: {
|
|
770
864
|
type: "number",
|
|
771
865
|
description: "Request timeout in ms (default: 15000)",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u,J as j,U as b,R as c,c as a,K as i,a as R,r as k,o as F,b as C,P as O,Q as p,S as z,V as E}from"./vendor-Bn1JzzAn.js";import{t as M,_ as Q,b as K,u as T,d as S}from"./index-DQ86qdvJ.js";import{i as X,R as q}from"./icons-DG5UD-6K.js";const v=Object.freeze({defaultEngine:"webspeech",webSpeech:{lang:"zh-CN"},whisperAPI:{apiKey:"",baseURL:"https://api.openai.com/v1",model:"whisper-1",language:"zh",timeout:6e4},whisperLocal:{serverUrl:"http://localhost:8002",modelSize:"base",device:"auto",timeout:12e4}}),Y=["webspeech","whisper-api","whisper-local"];function B(g,t){if(typeof g=="number"&&Number.isFinite(g))return g;const s=parseFloat(g);return Number.isFinite(s)?s:t}function Z(g){return JSON.parse(JSON.stringify(g))}function D(g){const t=Z(v);if(!g)return t;const s=g.trim();if(!s||/key not found/i.test(s))return t;const e=M(s);if(!e||typeof e!="object"||Array.isArray(e))return t;if(typeof e.defaultEngine=="string"&&Y.includes(e.defaultEngine)&&(t.defaultEngine=e.defaultEngine),e.webSpeech&&typeof e.webSpeech=="object"&&typeof e.webSpeech.lang=="string"&&e.webSpeech.lang&&(t.webSpeech.lang=e.webSpeech.lang),e.whisperAPI&&typeof e.whisperAPI=="object"){const l=e.whisperAPI;typeof l.apiKey=="string"&&(t.whisperAPI.apiKey=l.apiKey),typeof l.baseURL=="string"&&l.baseURL&&(t.whisperAPI.baseURL=l.baseURL),typeof l.model=="string"&&l.model&&(t.whisperAPI.model=l.model),typeof l.language=="string"&&l.language&&(t.whisperAPI.language=l.language),l.timeout!==void 0&&(t.whisperAPI.timeout=B(l.timeout,v.whisperAPI.timeout))}if(e.whisperLocal&&typeof e.whisperLocal=="object"){const l=e.whisperLocal;typeof l.serverUrl=="string"&&l.serverUrl&&(t.whisperLocal.serverUrl=l.serverUrl),typeof l.modelSize=="string"&&l.modelSize&&(t.whisperLocal.modelSize=l.modelSize),typeof l.device=="string"&&l.device&&(t.whisperLocal.device=l.device),l.timeout!==void 0&&(t.whisperLocal.timeout=B(l.timeout,v.whisperLocal.timeout))}return t}function J(g,t){const s={};g.defaultEngine!==t.defaultEngine&&(s.defaultEngine=t.defaultEngine);for(const e of["webSpeech","whisperAPI","whisperLocal"]){const l=g[e]||{},w=t[e]||{};for(const o of Object.keys(v[e]))l[o]!==w[o]&&(s[`${e}.${o}`]=w[o])}return s}const $={__name:"SpeechSettings",setup(g,{expose:t}){t();const{t:s}=K(),e=T(),l=k(!1),w=k(!1),o=R(JSON.parse(JSON.stringify(v))),h=k(JSON.parse(JSON.stringify(v))),y=C(()=>[{value:"webspeech",label:s("speechSettings.engineOptions.webspeech")},{value:"whisper-api",label:s("speechSettings.engineOptions.whisper-api")},{value:"whisper-local",label:s("speechSettings.engineOptions.whisper-local")}]),f=C(()=>{const d=`speechSettings.engineHint.${o.defaultEngine}`,n=s(d);return n===d?"":n}),_=C(()=>Object.keys(J(h.value,o)).length>0);function m(d){o.defaultEngine=d.defaultEngine,Object.assign(o.webSpeech,d.webSpeech),Object.assign(o.whisperAPI,d.whisperAPI),Object.assign(o.whisperLocal,d.whisperLocal),h.value=JSON.parse(JSON.stringify(d))}async function r(){l.value=!0;try{const{output:d}=await e.execute("config get speech",1e4);m(D(d))}catch(d){/key not found/i.test(d.message)?m(JSON.parse(JSON.stringify(v))):S.error(s("speechSettings.messages.loadFailed",{err:d.message}))}finally{l.value=!1}}function N(){m(h.value)}async function L(){const d=J(h.value,o),n=Object.keys(d);if(n.length===0){S.info(s("speechSettings.messages.noChanges"));return}w.value=!0;let P=0,I=0;for(const A of n){const H=d[A],V=String(H).replace(/"/g,'\\"'),W=`config set speech.${A} "${V}"`;try{const{output:U,exitCode:G}=await e.execute(W,1e4);G!==0||/error|failed|失败/i.test(U)?(I++,S.error(s("speechSettings.messages.saveItemFailed",{key:A,err:U.slice(0,80)}))):P++}catch(U){I++,S.error(s("speechSettings.messages.saveItemFailed",{key:A,err:U.message}))}}w.value=!1,I===0?(S.success(s("speechSettings.messages.saveOk",{count:P})),h.value=JSON.parse(JSON.stringify(o))):P>0&&(S.warning(s("speechSettings.messages.savePartial",{ok:P,fail:I})),await r())}F(()=>{r()});const x={t:s,ws:e,loading:l,saving:w,form:o,baseline:h,engineOptions:y,engineHint:f,isDirty:_,applyConfig:m,loadConfig:r,resetForm:N,saveConfig:L,reactive:R,ref:k,computed:C,onMounted:F,get useI18n(){return K},get ReloadOutlined(){return q},get SoundOutlined(){return X},get message(){return S},get useWsStore(){return T},get parseSpeechConfig(){return D},get diffSpeechConfig(){return J},get SPEECH_DEFAULTS(){return v}};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},ee={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},te={class:"page-title"},ae={class:"page-sub"},ie={style:{color:"var(--text-primary)"}},le={style:{color:"var(--text-muted)","font-size":"11px"}},ne={style:{color:"var(--text-primary)"}},se={style:{color:"var(--text-primary)"}},oe={style:{color:"var(--text-primary)"}},re={style:{display:"flex",gap:"12px","align-items":"center"}},de={key:0,style:{color:"#faad14","font-size":"12px"}};function pe(g,t,s,e,l,w){const o=u("a-button"),h=u("a-alert"),y=u("a-select"),f=u("a-form-item"),_=u("a-form"),m=u("a-card"),r=u("a-select-option"),N=u("a-input-password"),L=u("a-input"),x=u("a-input-number"),d=u("a-spin");return O(),j("div",null,[b("div",ee,[b("div",null,[b("h2",te,c(e.t("speechSettings.title")),1),b("p",ae,c(e.t("speechSettings.subtitle")),1)]),a(o,{loading:e.loading,onClick:e.loadConfig},{icon:i(()=>[a(e.ReloadOutlined)]),default:i(()=>[p(" "+c(e.t("speechSettings.refresh")),1)]),_:1},8,["loading"])]),a(h,{message:e.t("speechSettings.alert.message"),description:e.t("speechSettings.alert.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"]),a(d,{spinning:e.loading},{default:i(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:i(()=>[b("span",ie,[a(e.SoundOutlined,{style:{"margin-right":"8px"}}),p(c(e.t("speechSettings.engineCardTitle")),1)])]),default:i(()=>[a(_,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:i(()=>[a(f,{label:e.t("speechSettings.engineLabel")},{extra:i(()=>[b("span",le,c(e.engineHint),1)]),default:i(()=>[a(y,{value:e.form.defaultEngine,"onUpdate:value":t[0]||(t[0]=n=>e.form.defaultEngine=n),style:{width:"320px"},disabled:e.saving,options:e.engineOptions},null,8,["value","disabled","options"])]),_:1},8,["label"])]),_:1})]),_:1}),e.form.defaultEngine==="webspeech"?(O(),z(m,{key:0,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:i(()=>[b("span",ne,c(e.t("speechSettings.webSpeech.cardTitle")),1)]),default:i(()=>[a(_,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:i(()=>[a(f,{label:e.t("speechSettings.webSpeech.langLabel")},{default:i(()=>[a(y,{value:e.form.webSpeech.lang,"onUpdate:value":t[1]||(t[1]=n=>e.form.webSpeech.lang=n),style:{width:"240px"},disabled:e.saving},{default:i(()=>[a(r,{value:"zh-CN"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.zh-CN")),1)]),_:1}),a(r,{value:"zh-TW"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.zh-TW")),1)]),_:1}),a(r,{value:"en-US"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.en-US")),1)]),_:1}),a(r,{value:"en-GB"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.en-GB")),1)]),_:1}),a(r,{value:"ja-JP"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.ja-JP")),1)]),_:1}),a(r,{value:"ko-KR"},{default:i(()=>[p(c(e.t("speechSettings.webSpeech.langOptions.ko-KR")),1)]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):E("v-if",!0),e.form.defaultEngine==="whisper-api"?(O(),z(m,{key:1,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:i(()=>[b("span",se,c(e.t("speechSettings.whisperAPI.cardTitle")),1)]),default:i(()=>[a(_,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:i(()=>[a(f,{label:e.t("speechSettings.whisperAPI.apiKeyLabel")},{default:i(()=>[a(N,{value:e.form.whisperAPI.apiKey,"onUpdate:value":t[2]||(t[2]=n=>e.form.whisperAPI.apiKey=n),placeholder:"sk-...",disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperAPI.baseUrlLabel")},{default:i(()=>[a(L,{value:e.form.whisperAPI.baseURL,"onUpdate:value":t[3]||(t[3]=n=>e.form.whisperAPI.baseURL=n),disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperAPI.modelLabel")},{default:i(()=>[a(L,{value:e.form.whisperAPI.model,"onUpdate:value":t[4]||(t[4]=n=>e.form.whisperAPI.model=n),disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperAPI.languageLabel")},{default:i(()=>[a(L,{value:e.form.whisperAPI.language,"onUpdate:value":t[5]||(t[5]=n=>e.form.whisperAPI.language=n),disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperAPI.timeoutLabel")},{default:i(()=>[a(x,{value:e.form.whisperAPI.timeout,"onUpdate:value":t[6]||(t[6]=n=>e.form.whisperAPI.timeout=n),min:1e3,max:6e5,step:1e3,style:{width:"200px"},disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):E("v-if",!0),e.form.defaultEngine==="whisper-local"?(O(),z(m,{key:2,style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:i(()=>[b("span",oe,c(e.t("speechSettings.whisperLocal.cardTitle")),1)]),default:i(()=>[a(_,{"label-col":{span:6},"wrapper-col":{span:18},style:{"max-width":"720px"}},{default:i(()=>[a(f,{label:e.t("speechSettings.whisperLocal.serverUrlLabel")},{default:i(()=>[a(L,{value:e.form.whisperLocal.serverUrl,"onUpdate:value":t[7]||(t[7]=n=>e.form.whisperLocal.serverUrl=n),placeholder:"http://localhost:8002",disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperLocal.modelSizeLabel")},{default:i(()=>[a(y,{value:e.form.whisperLocal.modelSize,"onUpdate:value":t[8]||(t[8]=n=>e.form.whisperLocal.modelSize=n),style:{width:"180px"},disabled:e.saving},{default:i(()=>[a(r,{value:"tiny"},{default:i(()=>[...t[11]||(t[11]=[p("tiny",-1)])]),_:1}),a(r,{value:"base"},{default:i(()=>[...t[12]||(t[12]=[p("base",-1)])]),_:1}),a(r,{value:"small"},{default:i(()=>[...t[13]||(t[13]=[p("small",-1)])]),_:1}),a(r,{value:"medium"},{default:i(()=>[...t[14]||(t[14]=[p("medium",-1)])]),_:1}),a(r,{value:"large"},{default:i(()=>[...t[15]||(t[15]=[p("large",-1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperLocal.deviceLabel")},{default:i(()=>[a(y,{value:e.form.whisperLocal.device,"onUpdate:value":t[9]||(t[9]=n=>e.form.whisperLocal.device=n),style:{width:"180px"},disabled:e.saving},{default:i(()=>[a(r,{value:"auto"},{default:i(()=>[...t[16]||(t[16]=[p("auto",-1)])]),_:1}),a(r,{value:"cpu"},{default:i(()=>[...t[17]||(t[17]=[p("cpu",-1)])]),_:1}),a(r,{value:"cuda"},{default:i(()=>[...t[18]||(t[18]=[p("cuda",-1)])]),_:1})]),_:1},8,["value","disabled"])]),_:1},8,["label"]),a(f,{label:e.t("speechSettings.whisperLocal.timeoutLabel")},{default:i(()=>[a(x,{value:e.form.whisperLocal.timeout,"onUpdate:value":t[10]||(t[10]=n=>e.form.whisperLocal.timeout=n),min:1e3,max:6e5,step:1e3,style:{width:"200px"},disabled:e.saving},null,8,["value","disabled"])]),_:1},8,["label"])]),_:1})]),_:1})):E("v-if",!0),b("div",re,[a(o,{onClick:e.resetForm,disabled:e.saving||e.loading},{default:i(()=>[p(c(e.t("speechSettings.buttons.reset")),1)]),_:1},8,["disabled"]),a(o,{type:"primary",loading:e.saving,disabled:!e.isDirty,onClick:e.saveConfig},{default:i(()=>[p(c(e.t("speechSettings.buttons.save")),1)]),_:1},8,["loading","disabled"]),e.isDirty?(O(),j("span",de,c(e.t("speechSettings.dirtyHint")),1)):E("v-if",!0)])]),_:1},8,["spinning"])])}const ue=Q($,[["render",pe],["__scopeId","data-v-2b18ccaa"],["__file","/tmp/cc-web-panel-XSvACA/repo/packages/web-panel/src/views/SpeechSettings.vue"]]);export{ue as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-DQ86qdvJ.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-B8Yj-Csx.js";import{a0 as t}from"./index-DQ86qdvJ.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-CkXZS7fs.js";import"./useFlexGapSupport-C9yiJQMh.js";import"./styleChecker-CcdFI5tK.js";import"./index-BvrkxTu0.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-BaCLih7J.js";import{a0 as t}from"./index-DQ86qdvJ.js";import"./vendor-Bn1JzzAn.js";import"./index-BvrkxTu0.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|