attention-manifest-protocol 0.4.2 → 0.4.3
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 +341 -293
- package/CHANGELOG.zh-CN.md +41 -8
- package/README.md +250 -171
- package/README.zh-CN.md +251 -171
- package/lib/assignment/assign.d.ts +102 -0
- package/lib/assignment/assign.js +556 -0
- package/lib/assignment/binding.d.ts +103 -0
- package/lib/assignment/binding.js +575 -0
- package/lib/assignment/errors.d.ts +14 -0
- package/lib/assignment/errors.js +16 -0
- package/lib/assignment/guards.d.ts +18 -0
- package/lib/assignment/guards.js +28 -0
- package/lib/assignment/index.d.ts +10 -0
- package/lib/assignment/index.js +10 -0
- package/lib/assignment/types.d.ts +169 -0
- package/lib/assignment/types.js +1 -0
- package/lib/attention/budget.d.ts +1 -1
- package/lib/attention/budget.js +31 -9
- package/lib/bayes/engine.js +2 -1
- package/lib/bayes/reliability.js +25 -10
- package/lib/boundary/frame.d.ts +10 -4
- package/lib/boundary/frame.js +346 -109
- package/lib/boundary/kinds.d.ts +11 -0
- package/lib/boundary/kinds.js +33 -0
- package/lib/boundary/refTable.d.ts +19 -9
- package/lib/boundary/refTable.js +128 -30
- package/lib/boundary/toolCall.d.ts +22 -10
- package/lib/boundary/toolCall.js +798 -97
- package/lib/concept/conceptBudget.js +10 -1
- package/lib/concurrency/idempotency.d.ts +4 -3
- package/lib/concurrency/idempotency.js +57 -13
- package/lib/concurrency/retry.js +18 -3
- package/lib/context/agentContext.d.ts +13 -0
- package/lib/context/agentContext.js +14 -1
- package/lib/context/ast.d.ts +4 -1
- package/lib/context/ast.js +13 -3
- package/lib/context/contentStore.js +22 -9
- package/lib/context/contextBuilder.d.ts +457 -0
- package/lib/context/contextBuilder.js +1395 -0
- package/lib/context/contextPackage.d.ts +214 -0
- package/lib/context/contextPackage.js +191 -0
- package/lib/context/index.d.ts +14 -3
- package/lib/context/index.js +9 -1
- package/lib/context/relevance.d.ts +171 -0
- package/lib/context/relevance.js +250 -0
- package/lib/context/workspaceDiff.d.ts +105 -0
- package/lib/context/workspaceDiff.js +238 -0
- package/lib/context/workspaceService.d.ts +236 -1
- package/lib/context/workspaceService.js +1501 -73
- package/lib/cooperation/collaboration.d.ts +9 -0
- package/lib/cooperation/session.d.ts +4 -4
- package/lib/cooperation/session.js +3 -3
- package/lib/database/adapter/filesystemStore.d.ts +145 -0
- package/lib/database/adapter/filesystemStore.js +321 -0
- package/lib/database/adapter/index.d.ts +2 -0
- package/lib/database/adapter/index.js +2 -0
- package/lib/database/adapter/workspaceSessionStore.d.ts +118 -0
- package/lib/database/adapter/workspaceSessionStore.js +120 -0
- package/lib/database/entity/fileGraph.d.ts +53 -0
- package/lib/database/entity/fileGraph.js +15 -0
- package/lib/database/entity/fileTree.d.ts +76 -0
- package/lib/database/entity/fileTree.js +39 -0
- package/lib/database/entity/hook.d.ts +29 -0
- package/lib/database/entity/hook.js +18 -0
- package/lib/database/entity/index.d.ts +4 -0
- package/lib/database/entity/index.js +4 -0
- package/lib/database/entity/workspaceSession.d.ts +53 -0
- package/lib/database/entity/workspaceSession.js +28 -0
- package/lib/database/repository/fileAnnotationRepository.d.ts +75 -0
- package/lib/database/repository/fileAnnotationRepository.js +109 -0
- package/lib/database/repository/fileGraphRepository.d.ts +188 -0
- package/lib/database/repository/fileGraphRepository.js +648 -0
- package/lib/database/repository/fileNodeRepository.d.ts +116 -0
- package/lib/database/repository/fileNodeRepository.js +263 -0
- package/lib/database/repository/fileOutlineRepository.d.ts +40 -0
- package/lib/database/repository/fileOutlineRepository.js +104 -0
- package/lib/database/repository/fileWriteRepository.d.ts +41 -0
- package/lib/database/repository/fileWriteRepository.js +93 -0
- package/lib/database/repository/hookRepository.d.ts +67 -0
- package/lib/database/repository/hookRepository.js +150 -0
- package/lib/database/repository/index.d.ts +7 -0
- package/lib/database/repository/index.js +7 -0
- package/lib/database/repository/workspaceSessionRepository.d.ts +134 -0
- package/lib/database/repository/workspaceSessionRepository.js +327 -0
- package/lib/database/service/database.d.ts +14 -0
- package/lib/database/service/database.js +21 -0
- package/lib/database/sql/schema.js +187 -0
- package/lib/database/store/database.js +6 -1
- package/lib/delegate/team.d.ts +5 -0
- package/lib/delegate/team.js +83 -20
- package/lib/discover/classify.d.ts +20 -0
- package/lib/discover/classify.js +85 -0
- package/lib/discover/host.d.ts +20 -0
- package/lib/discover/host.js +89 -0
- package/lib/discover/index.d.ts +11 -0
- package/lib/discover/index.js +11 -0
- package/lib/discover/kinds.d.ts +14 -0
- package/lib/discover/kinds.js +23 -0
- package/lib/discover/tree.d.ts +7 -0
- package/lib/discover/tree.js +432 -0
- package/lib/discover/types.d.ts +115 -0
- package/lib/discover/types.js +1 -0
- package/lib/error/boundaryRejection.d.ts +1 -1
- package/lib/evaluation/agreement.js +2 -2
- package/lib/execution/handles.js +6 -0
- package/lib/execution/pin.js +2 -2
- package/lib/file/cfb.d.ts +56 -0
- package/lib/file/cfb.js +396 -0
- package/lib/file/dependency.d.ts +151 -0
- package/lib/file/dependency.js +568 -0
- package/lib/file/directory.d.ts +34 -0
- package/lib/file/directory.js +141 -0
- package/lib/file/errors.d.ts +20 -0
- package/lib/file/errors.js +18 -0
- package/lib/file/exportGraph.d.ts +31 -0
- package/lib/file/exportGraph.js +554 -0
- package/lib/file/file.d.ts +40 -0
- package/lib/file/file.js +339 -0
- package/lib/file/importGraph.d.ts +121 -0
- package/lib/file/importGraph.js +1022 -0
- package/lib/file/index.d.ts +45 -0
- package/lib/file/index.js +30 -0
- package/lib/file/metadata.d.ts +66 -0
- package/lib/file/metadata.js +470 -0
- package/lib/file/path.d.ts +60 -0
- package/lib/file/path.js +259 -0
- package/lib/file/read.d.ts +168 -0
- package/lib/file/read.js +541 -0
- package/lib/file/runtime.d.ts +95 -0
- package/lib/file/runtime.js +150 -0
- package/lib/file/service.d.ts +227 -0
- package/lib/file/service.js +663 -0
- package/lib/file/syntaxTree.d.ts +7 -0
- package/lib/file/syntaxTree.js +38 -0
- package/lib/file/time.d.ts +38 -0
- package/lib/file/time.js +44 -0
- package/lib/file/tree.d.ts +53 -0
- package/lib/file/tree.js +417 -0
- package/lib/file/types.d.ts +371 -0
- package/lib/file/types.js +1 -0
- package/lib/file/write.d.ts +159 -0
- package/lib/file/write.js +1028 -0
- package/lib/file/zip.d.ts +35 -0
- package/lib/file/zip.js +349 -0
- package/lib/fingerprint/algorithm.d.ts +97 -0
- package/lib/fingerprint/algorithm.js +271 -0
- package/lib/fingerprint/bytes.d.ts +18 -0
- package/lib/fingerprint/bytes.js +31 -0
- package/lib/fingerprint/error.d.ts +73 -0
- package/lib/fingerprint/error.js +86 -0
- package/lib/fingerprint/file.d.ts +71 -0
- package/lib/fingerprint/file.js +254 -0
- package/lib/fingerprint/index.d.ts +37 -0
- package/lib/fingerprint/index.js +12 -0
- package/lib/fingerprint/json.d.ts +41 -0
- package/lib/fingerprint/json.js +94 -0
- package/lib/fingerprint/number.d.ts +32 -0
- package/lib/fingerprint/number.js +95 -0
- package/lib/fingerprint/policy.d.ts +54 -0
- package/lib/fingerprint/policy.js +50 -0
- package/lib/fingerprint/preimage.d.ts +84 -0
- package/lib/fingerprint/preimage.js +133 -0
- package/lib/fingerprint/raw.d.ts +26 -0
- package/lib/fingerprint/raw.js +45 -0
- package/lib/fingerprint/ref.d.ts +39 -0
- package/lib/fingerprint/ref.js +178 -0
- package/lib/fingerprint/text.d.ts +42 -0
- package/lib/fingerprint/text.js +155 -0
- package/lib/fingerprint/tree.d.ts +56 -0
- package/lib/fingerprint/tree.js +288 -0
- package/lib/fingerprint/verify.d.ts +20 -0
- package/lib/fingerprint/verify.js +99 -0
- package/lib/global/filesystem.d.ts +43 -0
- package/lib/global/filesystem.js +75 -0
- package/lib/global/index.d.ts +8 -0
- package/lib/global/index.js +8 -0
- package/lib/global/service.d.ts +51 -0
- package/lib/global/service.js +98 -0
- package/lib/governance/transport.js +18 -6
- package/lib/hook/ast.d.ts +29 -0
- package/lib/hook/ast.js +22 -0
- package/lib/hook/code.d.ts +55 -0
- package/lib/hook/code.js +47 -0
- package/lib/hook/dependency.d.ts +45 -0
- package/lib/hook/dependency.js +28 -0
- package/lib/hook/diff.d.ts +114 -0
- package/lib/hook/diff.js +327 -0
- package/lib/hook/exportation.d.ts +31 -0
- package/lib/hook/exportation.js +24 -0
- package/lib/hook/file.d.ts +44 -0
- package/lib/hook/file.js +154 -0
- package/lib/hook/importation.d.ts +33 -0
- package/lib/hook/importation.js +22 -0
- package/lib/hook/index.d.ts +30 -0
- package/lib/hook/index.js +23 -0
- package/lib/hook/outline.d.ts +35 -0
- package/lib/hook/outline.js +27 -0
- package/lib/hook/project.d.ts +65 -0
- package/lib/hook/project.js +217 -0
- package/lib/hook/types.d.ts +114 -0
- package/lib/hook/types.js +407 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +9 -0
- package/lib/lock/lease.js +28 -3
- package/lib/manifest/cardSign.d.ts +1 -1
- package/lib/manifest/cardSign.js +37 -7
- package/lib/manifest/federation.js +13 -6
- package/lib/manifest/trust.d.ts +2 -0
- package/lib/manifest/trust.js +27 -6
- package/lib/module/index.d.ts +4 -0
- package/lib/module/index.js +4 -0
- package/lib/module/mcp/client.js +21 -2
- package/lib/module/mcp/filesystemServer.d.ts +24 -0
- package/lib/module/mcp/filesystemServer.js +102 -0
- package/lib/module/mcp/http.js +32 -19
- package/lib/module/mcp/workspaceServer.js +20 -3
- package/lib/module/tool/filesystemExecutor.d.ts +18 -0
- package/lib/module/tool/filesystemExecutor.js +49 -0
- package/lib/module/tool/globalExecutor.d.ts +17 -0
- package/lib/module/tool/globalExecutor.js +39 -0
- package/lib/module/tool/globalFilesystemExecutor.d.ts +18 -0
- package/lib/module/tool/globalFilesystemExecutor.js +49 -0
- package/lib/module/tool/workspaceExecutor.d.ts +9 -0
- package/lib/module/tool/workspaceExecutor.js +16 -3
- package/lib/naming/aliases.d.ts +48 -0
- package/lib/naming/aliases.js +79 -0
- package/lib/naming/catalog.d.ts +117 -0
- package/lib/naming/catalog.js +108 -0
- package/lib/naming/grammar.d.ts +67 -0
- package/lib/naming/grammar.js +212 -0
- package/lib/naming/ids.d.ts +157 -0
- package/lib/naming/ids.js +119 -0
- package/lib/naming/index.d.ts +13 -0
- package/lib/naming/index.js +13 -0
- package/lib/outline/index.d.ts +9 -0
- package/lib/outline/index.js +8 -0
- package/lib/outline/office.d.ts +160 -0
- package/lib/outline/office.js +2375 -0
- package/lib/outline/officeBridge.d.ts +32 -0
- package/lib/outline/officeBridge.js +27 -0
- package/lib/outline/outline.d.ts +159 -0
- package/lib/outline/outline.js +837 -0
- package/lib/outline/outlineIndex.d.ts +97 -0
- package/lib/outline/outlineIndex.js +325 -0
- package/lib/outline/outlineKeywords.d.ts +59 -0
- package/lib/outline/outlineKeywords.js +143 -0
- package/lib/outline/outlineStrategies.d.ts +414 -0
- package/lib/outline/outlineStrategies.js +8324 -0
- package/lib/outline/reactOutline.d.ts +37 -0
- package/lib/outline/reactOutline.js +1070 -0
- package/lib/outline/shellOutline.d.ts +65 -0
- package/lib/outline/shellOutline.js +873 -0
- package/lib/outline/sqlOutline.d.ts +170 -0
- package/lib/outline/sqlOutline.js +1536 -0
- package/lib/outline/strategy.d.ts +46 -0
- package/lib/outline/strategy.js +1 -0
- package/lib/outline/types.d.ts +95 -0
- package/lib/outline/types.js +1 -0
- package/lib/outline/visualBasicOutline.d.ts +27 -0
- package/lib/outline/visualBasicOutline.js +750 -0
- package/lib/protocol/filesystem.d.ts +55 -0
- package/lib/protocol/filesystem.js +105 -0
- package/lib/protocol/global.d.ts +42 -0
- package/lib/protocol/global.js +63 -0
- package/lib/protocol/globalFilesystem.d.ts +40 -0
- package/lib/protocol/globalFilesystem.js +59 -0
- package/lib/protocol/index.d.ts +4 -0
- package/lib/protocol/index.js +4 -0
- package/lib/protocol/protocol.d.ts +4 -0
- package/lib/protocol/wire.js +5 -2
- package/lib/protocol/workspace.d.ts +305 -0
- package/lib/protocol/workspace.js +258 -0
- package/lib/receipt/receipt.d.ts +8 -0
- package/lib/registry/content.js +9 -3
- package/lib/runtime/kernelRuntime.js +9 -1
- package/lib/scenario/scenario.js +5 -4
- package/lib/semantic/canonical.d.ts +61 -0
- package/lib/semantic/canonical.js +135 -8
- package/lib/semantic/jsonValue.d.ts +31 -0
- package/lib/semantic/jsonValue.js +122 -0
- package/lib/semantic/sha256.js +3 -0
- package/lib/semantic/time.d.ts +14 -0
- package/lib/semantic/time.js +56 -0
- package/lib/session/context.d.ts +76 -0
- package/lib/session/context.js +419 -0
- package/lib/session/errors.d.ts +24 -0
- package/lib/session/errors.js +22 -0
- package/lib/session/identity.d.ts +24 -0
- package/lib/session/identity.js +56 -0
- package/lib/session/index.d.ts +14 -0
- package/lib/session/index.js +12 -0
- package/lib/session/registry.d.ts +130 -0
- package/lib/session/registry.js +908 -0
- package/lib/session/types.d.ts +227 -0
- package/lib/session/types.js +14 -0
- package/lib/structure/index.d.ts +1 -0
- package/lib/structure/index.js +1 -0
- package/lib/structure/trie.d.ts +88 -0
- package/lib/structure/trie.js +183 -0
- package/lib/syntax/byteIndex.d.ts +44 -0
- package/lib/syntax/byteIndex.js +148 -0
- package/lib/syntax/charset.d.ts +88 -0
- package/lib/syntax/charset.js +276 -0
- package/lib/syntax/index.d.ts +6 -0
- package/lib/syntax/index.js +5 -0
- package/lib/syntax/syntaxRegistry.d.ts +150 -0
- package/lib/syntax/syntaxRegistry.js +314 -0
- package/lib/syntax/syntaxTree.d.ts +106 -0
- package/lib/syntax/syntaxTree.js +668 -0
- package/lib/syntax/types.d.ts +15 -0
- package/lib/syntax/types.js +1 -0
- package/lib/types/common.d.ts +1 -1
- package/package.json +72 -193
- package/.editorconfig +0 -12
- package/.prettierignore +0 -17
- package/MCP-Token/347/250/216/344/270/216/344/270/213/344/270/200/344/273/243/345/267/245/345/205/267/345/215/217/350/256/256.html +0 -1763
- package/docs/annotation-campaign-A.csv +0 -54
- package/docs/annotation-campaign-B.csv +0 -54
- package/docs/annotation-campaign.csv +0 -54
- package/docs/eval/annotations-A.jsonl +0 -16
- package/docs/eval/annotations.json +0 -122
- package/docs/eval/recorded-labels.json +0 -12
- package/docs/eval/replay-cases.json +0 -14
- package/docs/eval/replay-labels-b.json +0 -14
- package/docs/examples/attention-request.json +0 -16
- package/docs/examples/checkpoint.json +0 -15
- package/docs/examples/claim.json +0 -66
- package/docs/examples/collaboration.json +0 -66
- package/docs/examples/concept-checkpoint.json +0 -15
- package/docs/examples/concept-prune-plan.json +0 -45
- package/docs/examples/federation.json +0 -126
- package/docs/examples/frame-chain.json +0 -77
- package/docs/examples/ledger-snapshot.json +0 -108
- package/docs/examples/manifest.json +0 -77
- package/docs/examples/message.json +0 -19
- package/docs/examples/other-model.json +0 -45
- package/docs/examples/plan.json +0 -50
- package/docs/examples/prune-plan.json +0 -48
- package/docs/examples/receipt.json +0 -22
- package/docs/examples/runtime-run.json +0 -573
- package/docs/examples/team.json +0 -66
- package/docs/examples/verb-note.json +0 -11
- package/docs/probes/bayes-scores.json +0 -1452
- package/docs/probes/calibration-imported.json +0 -141
- package/docs/probes/context-ast-deepseek.json +0 -1577
- package/docs/probes/deepseek-probe.json +0 -917
- package/docs/probes/eval-recorded-replay.json +0 -597
- package/docs/probes/eval-replay.json +0 -124
- package/docs/probes/eval-summary.json +0 -42
- package/docs/probes/runtime-eval.json +0 -4230
- package/docs/schemas/collaboration.schema.json +0 -73
- package/docs/schemas/common.schema.json +0 -125
- package/docs/schemas/compaction.schema.json +0 -121
- package/docs/schemas/concept-compaction.schema.json +0 -73
- package/docs/schemas/concept.schema.json +0 -97
- package/docs/schemas/epistemic.schema.json +0 -178
- package/docs/schemas/federation.schema.json +0 -66
- package/docs/schemas/frame.schema.json +0 -86
- package/docs/schemas/ledger-snapshot.schema.json +0 -30
- package/docs/schemas/manifest.schema.json +0 -169
- package/docs/schemas/message.schema.json +0 -41
- package/docs/schemas/plan.schema.json +0 -189
- package/docs/schemas/receipt.schema.json +0 -45
- package/docs/schemas/social.schema.json +0 -153
- package/docs/schemas/team.schema.json +0 -56
- package/docs/schemas/verb.schema.json +0 -120
- package/eslint.config.mts +0 -96
- package/index.html +0 -13
- package/lib/context/workspaceProtocol.d.ts +0 -30
- package/lib/context/workspaceProtocol.js +0 -49
- package/prettier.config.mts +0 -37
- package/public/favicon.svg +0 -1
- package/public/icons.svg +0 -24
- package/src/attention/attention.ts +0 -347
- package/src/attention/budget.ts +0 -72
- package/src/attention/cognition.ts +0 -519
- package/src/attention/index.ts +0 -8
- package/src/attention/interrupts.ts +0 -228
- package/src/attention/resource.ts +0 -316
- package/src/attention/social.ts +0 -217
- package/src/attention/socialTypes.ts +0 -115
- package/src/authz/authz.ts +0 -305
- package/src/authz/index.ts +0 -1
- package/src/bayes/calibration.ts +0 -204
- package/src/bayes/calibrationRegistry.ts +0 -111
- package/src/bayes/calibrationSelection.ts +0 -154
- package/src/bayes/engine.ts +0 -532
- package/src/bayes/index.ts +0 -6
- package/src/bayes/reliability.ts +0 -62
- package/src/bayes/scopedPriors.ts +0 -88
- package/src/boundary/frame.ts +0 -322
- package/src/boundary/ids.ts +0 -14
- package/src/boundary/index.ts +0 -12
- package/src/boundary/refTable.ts +0 -125
- package/src/boundary/toolCall.ts +0 -212
- package/src/concept/concept.ts +0 -75
- package/src/concept/conceptBudget.ts +0 -346
- package/src/concept/conceptBudgetTypes.ts +0 -79
- package/src/concept/index.ts +0 -3
- package/src/concurrency/idempotency.ts +0 -41
- package/src/concurrency/index.ts +0 -5
- package/src/concurrency/mutex.ts +0 -26
- package/src/concurrency/namedLocks.ts +0 -35
- package/src/concurrency/retry.ts +0 -50
- package/src/concurrency/worker.ts +0 -128
- package/src/context/agentContext.ts +0 -308
- package/src/context/ast.ts +0 -499
- package/src/context/contentStore.ts +0 -75
- package/src/context/context.ts +0 -65
- package/src/context/contextIndex.ts +0 -85
- package/src/context/document.ts +0 -137
- package/src/context/fileStorePath.ts +0 -14
- package/src/context/index.ts +0 -43
- package/src/context/lifecycle.ts +0 -221
- package/src/context/projections.ts +0 -151
- package/src/context/workspace.ts +0 -422
- package/src/context/workspaceProtocol.ts +0 -112
- package/src/context/workspaceService.ts +0 -423
- package/src/cooperation/board.ts +0 -104
- package/src/cooperation/collaboration.ts +0 -60
- package/src/cooperation/index.ts +0 -6
- package/src/cooperation/merge.ts +0 -190
- package/src/cooperation/metrics.ts +0 -57
- package/src/cooperation/session.ts +0 -131
- package/src/cooperation/unified.ts +0 -56
- package/src/counter.ts +0 -9
- package/src/database/adapter/adapters.ts +0 -35
- package/src/database/adapter/index.ts +0 -4
- package/src/database/adapter/runtimeSink.ts +0 -74
- package/src/database/adapter/sessionStore.ts +0 -32
- package/src/database/adapter/turnStore.ts +0 -23
- package/src/database/entity/agent.ts +0 -199
- package/src/database/entity/entity.ts +0 -1046
- package/src/database/entity/handle.ts +0 -79
- package/src/database/entity/index.ts +0 -32
- package/src/database/entity/message.ts +0 -74
- package/src/database/entity/meta.ts +0 -11
- package/src/database/entity/object.ts +0 -42
- package/src/database/entity/outbox.ts +0 -15
- package/src/database/entity/process.ts +0 -65
- package/src/database/entity/registry.ts +0 -155
- package/src/database/entity/runtimeApproval.ts +0 -30
- package/src/database/entity/runtimeSession.ts +0 -13
- package/src/database/entity/runtimeTurn.ts +0 -15
- package/src/database/entity/thread.ts +0 -85
- package/src/database/entity/window.ts +0 -85
- package/src/database/entity/worker.ts +0 -90
- package/src/database/index.ts +0 -6
- package/src/database/repository/addressSpaceRepository.ts +0 -72
- package/src/database/repository/agentRepository.ts +0 -460
- package/src/database/repository/base.ts +0 -41
- package/src/database/repository/executionRepository.ts +0 -477
- package/src/database/repository/handleRepository.ts +0 -64
- package/src/database/repository/index.ts +0 -20
- package/src/database/repository/messageRepository.ts +0 -52
- package/src/database/repository/objectRepository.ts +0 -69
- package/src/database/repository/outboxRepository.ts +0 -63
- package/src/database/repository/processRepository.ts +0 -58
- package/src/database/repository/registryRepository.ts +0 -119
- package/src/database/repository/repository.ts +0 -491
- package/src/database/repository/runtimeApprovalRepository.ts +0 -44
- package/src/database/repository/runtimeSessionRepository.ts +0 -27
- package/src/database/repository/runtimeTurnRepository.ts +0 -39
- package/src/database/repository/socialRepository.ts +0 -185
- package/src/database/repository/threadRepository.ts +0 -57
- package/src/database/repository/windowRepository.ts +0 -88
- package/src/database/repository/workerRepository.ts +0 -69
- package/src/database/service/database.ts +0 -90
- package/src/database/service/handleService.ts +0 -48
- package/src/database/service/index.ts +0 -16
- package/src/database/service/messageService.ts +0 -61
- package/src/database/service/objectService.ts +0 -59
- package/src/database/service/processService.ts +0 -61
- package/src/database/service/registryServices.ts +0 -88
- package/src/database/service/service.ts +0 -183
- package/src/database/service/stepService.ts +0 -53
- package/src/database/service/threadService.ts +0 -65
- package/src/database/service/windowService.ts +0 -30
- package/src/database/service/workerService.ts +0 -57
- package/src/database/sql/index.ts +0 -3
- package/src/database/sql/schema.ts +0 -418
- package/src/database/sql/sql.ts +0 -543
- package/src/database/store/database.ts +0 -210
- package/src/database/store/index.ts +0 -3
- package/src/database/store/store.ts +0 -266
- package/src/delegate/index.ts +0 -2
- package/src/delegate/team.ts +0 -268
- package/src/delegate/teamTypes.ts +0 -47
- package/src/diagnosis/checklist.ts +0 -74
- package/src/diagnosis/context.ts +0 -93
- package/src/diagnosis/frame.ts +0 -256
- package/src/diagnosis/index.ts +0 -5
- package/src/diagnosis/router.ts +0 -72
- package/src/diagnosis/types.ts +0 -89
- package/src/error/agentError.ts +0 -16
- package/src/error/ampError.ts +0 -20
- package/src/error/authzError.ts +0 -14
- package/src/error/boundaryRejection.ts +0 -20
- package/src/error/index.ts +0 -7
- package/src/error/kernelError.ts +0 -27
- package/src/error/mailboxError.ts +0 -9
- package/src/error/windowError.ts +0 -12
- package/src/evaluation/agreement.ts +0 -96
- package/src/evaluation/index.ts +0 -2
- package/src/evaluation/labels.ts +0 -241
- package/src/evidence/evidenceGraph.ts +0 -205
- package/src/evidence/index.ts +0 -4
- package/src/evidence/revalidation.ts +0 -191
- package/src/execution/exec.ts +0 -408
- package/src/execution/handles.ts +0 -65
- package/src/execution/index.ts +0 -3
- package/src/execution/pin.ts +0 -154
- package/src/frame/frame.ts +0 -70
- package/src/frame/index.ts +0 -1
- package/src/goal/goal.ts +0 -43
- package/src/goal/index.ts +0 -2
- package/src/goal/plan.ts +0 -196
- package/src/governance/attentionManifest.ts +0 -802
- package/src/governance/audit.ts +0 -362
- package/src/governance/budget.ts +0 -628
- package/src/governance/context.ts +0 -356
- package/src/governance/control.ts +0 -159
- package/src/governance/cooperation.ts +0 -479
- package/src/governance/credential.ts +0 -359
- package/src/governance/httpServer.ts +0 -99
- package/src/governance/index.ts +0 -32
- package/src/governance/legal.ts +0 -574
- package/src/governance/matrix.ts +0 -460
- package/src/governance/perspectives.ts +0 -406
- package/src/governance/signing.ts +0 -407
- package/src/governance/store.ts +0 -125
- package/src/governance/switching.ts +0 -459
- package/src/governance/toolPolicy.ts +0 -80
- package/src/governance/transport.ts +0 -204
- package/src/governance/types.ts +0 -380
- package/src/governance/workflow.ts +0 -743
- package/src/index.ts +0 -11
- package/src/interaction/index.ts +0 -1
- package/src/interaction/interaction.ts +0 -391
- package/src/ipc/index.ts +0 -4
- package/src/ipc/mailbox.ts +0 -132
- package/src/ipc/memorySocialStore.ts +0 -93
- package/src/ipc/social.ts +0 -93
- package/src/kernel/index.ts +0 -14
- package/src/kernel/scheduler.ts +0 -498
- package/src/ledger/checkpoint.ts +0 -304
- package/src/ledger/index.ts +0 -4
- package/src/ledger/ledger.ts +0 -31
- package/src/ledger/persistence.ts +0 -159
- package/src/ledger/share.ts +0 -80
- package/src/lock/index.ts +0 -2
- package/src/lock/lease.ts +0 -74
- package/src/main.ts +0 -199
- package/src/manifest/agentCard.ts +0 -72
- package/src/manifest/cardSign.ts +0 -87
- package/src/manifest/federation.ts +0 -237
- package/src/manifest/federationTypes.ts +0 -55
- package/src/manifest/index.ts +0 -8
- package/src/manifest/keys.ts +0 -643
- package/src/manifest/manifest.ts +0 -114
- package/src/manifest/sign.ts +0 -134
- package/src/manifest/trust.ts +0 -146
- package/src/mission/index.ts +0 -2
- package/src/mission/missionQueue.ts +0 -75
- package/src/module/index.ts +0 -9
- package/src/module/llm/deepseek.ts +0 -214
- package/src/module/llm/llm.ts +0 -84
- package/src/module/mcp/client.ts +0 -110
- package/src/module/mcp/http.ts +0 -102
- package/src/module/mcp/protocol.ts +0 -77
- package/src/module/mcp/server.ts +0 -148
- package/src/module/mcp/transport.ts +0 -30
- package/src/module/mcp/workspaceServer.ts +0 -111
- package/src/module/sandbox/sandbox.ts +0 -29
- package/src/module/tool/mcpExecutor.ts +0 -54
- package/src/module/tool/policy.ts +0 -52
- package/src/module/tool/redact.ts +0 -29
- package/src/module/tool/tool.ts +0 -53
- package/src/module/tool/workspaceExecutor.ts +0 -35
- package/src/policy/guard.ts +0 -240
- package/src/policy/index.ts +0 -2
- package/src/policy/policy.ts +0 -561
- package/src/process/agent.ts +0 -341
- package/src/process/agentService.ts +0 -236
- package/src/process/agentStore.ts +0 -378
- package/src/process/executionStore.ts +0 -151
- package/src/process/index.ts +0 -5
- package/src/process/process.ts +0 -240
- package/src/process/transitions.ts +0 -19
- package/src/progress/index.ts +0 -2
- package/src/progress/progress.ts +0 -85
- package/src/protocol/a2a.ts +0 -120
- package/src/protocol/channel.ts +0 -44
- package/src/protocol/envelope.ts +0 -655
- package/src/protocol/httpChannel.ts +0 -87
- package/src/protocol/index.ts +0 -6
- package/src/protocol/protocol.ts +0 -138
- package/src/protocol/wire.ts +0 -60
- package/src/receipt/index.ts +0 -1
- package/src/receipt/receipt.ts +0 -47
- package/src/registry/content.ts +0 -69
- package/src/registry/index.ts +0 -23
- package/src/registry/registry.ts +0 -599
- package/src/runtime/action.ts +0 -87
- package/src/runtime/behavior.ts +0 -330
- package/src/runtime/behaviorTuning.ts +0 -163
- package/src/runtime/cognitiveRuntime.ts +0 -703
- package/src/runtime/escalation.ts +0 -35
- package/src/runtime/governedTask.ts +0 -233
- package/src/runtime/index.ts +0 -15
- package/src/runtime/kernelRuntime.ts +0 -144
- package/src/runtime/operation.ts +0 -35
- package/src/runtime/replay.ts +0 -71
- package/src/runtime/routing.ts +0 -58
- package/src/runtime/safety.ts +0 -48
- package/src/runtime/session.ts +0 -341
- package/src/runtime/sessionStore.ts +0 -43
- package/src/runtime/telemetry.ts +0 -55
- package/src/runtime/turnStore.ts +0 -30
- package/src/scenario/index.ts +0 -1
- package/src/scenario/scenario.ts +0 -299
- package/src/semantic/canonical.ts +0 -24
- package/src/semantic/index.ts +0 -2
- package/src/semantic/sha256.ts +0 -82
- package/src/storage/appendLog.ts +0 -372
- package/src/storage/fileAppendSink.ts +0 -40
- package/src/storage/index.ts +0 -2
- package/src/store/bindCache.ts +0 -22
- package/src/store/cache.ts +0 -191
- package/src/store/context.ts +0 -31
- package/src/store/handleStore.ts +0 -31
- package/src/store/index.ts +0 -9
- package/src/store/messageStore.ts +0 -31
- package/src/store/objectStore.ts +0 -31
- package/src/store/processStore.ts +0 -31
- package/src/store/threadStore.ts +0 -31
- package/src/store/windowStore.ts +0 -31
- package/src/structure/abstractSyntaxTree.ts +0 -493
- package/src/structure/avlTree.ts +0 -408
- package/src/structure/binarySearchTree.ts +0 -352
- package/src/structure/binaryTree.ts +0 -525
- package/src/structure/bloomFilter.ts +0 -231
- package/src/structure/compare.ts +0 -110
- package/src/structure/cuckooFilter.ts +0 -337
- package/src/structure/deque.ts +0 -223
- package/src/structure/filterKey.ts +0 -36
- package/src/structure/hash.ts +0 -279
- package/src/structure/heap.ts +0 -268
- package/src/structure/index.ts +0 -20
- package/src/structure/iterator.ts +0 -22
- package/src/structure/lru.ts +0 -619
- package/src/structure/ordered.ts +0 -399
- package/src/structure/priority.ts +0 -915
- package/src/structure/queue.ts +0 -168
- package/src/structure/redBlackTree.ts +0 -680
- package/src/structure/segmentTree.ts +0 -248
- package/src/structure/stack.ts +0 -118
- package/src/structure/unordered.ts +0 -407
- package/src/style.css +0 -278
- package/src/thread/index.ts +0 -2
- package/src/thread/thread.ts +0 -176
- package/src/thread/transitions.ts +0 -17
- package/src/types/common.ts +0 -119
- package/src/types/index.ts +0 -23
- package/src/warrant/epistemic.ts +0 -154
- package/src/warrant/index.ts +0 -3
- package/src/warrant/inquiry.ts +0 -166
- package/src/warrant/warrant.ts +0 -179
- package/src/window/compaction.ts +0 -403
- package/src/window/compactionTypes.ts +0 -119
- package/src/window/index.ts +0 -7
- package/src/window/page.ts +0 -18
- package/src/window/window.ts +0 -244
- package/tools/_helpers.ts +0 -34
- package/tools/a2a-check.ts +0 -110
- package/tools/a2a-flow-check.ts +0 -78
- package/tools/agent-card-check.ts +0 -76
- package/tools/agent-check.ts +0 -236
- package/tools/agent-store-check.ts +0 -153
- package/tools/agreement-check.ts +0 -27
- package/tools/annotation-server-check.ts +0 -48
- package/tools/annotation-server.ts +0 -230
- package/tools/annotation-status.ts +0 -65
- package/tools/approval-access-check.ts +0 -66
- package/tools/arch-check.ts +0 -72
- package/tools/attention-core-check.ts +0 -48
- package/tools/attention-resource-check.ts +0 -169
- package/tools/audit-check.ts +0 -207
- package/tools/authority-check.ts +0 -124
- package/tools/authz-check.ts +0 -138
- package/tools/bayes-check.ts +0 -162
- package/tools/bayes-probe.ts +0 -154
- package/tools/behavior-tuning-check.ts +0 -53
- package/tools/board-check.ts +0 -87
- package/tools/boundary-check.ts +0 -199
- package/tools/bundle-trust-check.ts +0 -96
- package/tools/calibrate-imported.ts +0 -108
- package/tools/calibration-check.ts +0 -44
- package/tools/calibration-registry-check.ts +0 -40
- package/tools/calibration-sim.ts +0 -40
- package/tools/card-sign-check.ts +0 -71
- package/tools/card-trust-check.ts +0 -78
- package/tools/channel-check.ts +0 -86
- package/tools/checkpoint-check.ts +0 -620
- package/tools/cleanup-style-configs.ts +0 -29
- package/tools/cognition-check.ts +0 -648
- package/tools/cognitive-runtime-check.ts +0 -609
- package/tools/collaboration-demo.ts +0 -78
- package/tools/compaction-check.ts +0 -266
- package/tools/concept-check.ts +0 -260
- package/tools/concurrency-check.ts +0 -242
- package/tools/conformance-runtime.ts +0 -389
- package/tools/conformance.ts +0 -651
- package/tools/context-ast-check.ts +0 -90
- package/tools/context-ast-deepseek.ts +0 -242
- package/tools/context-graph-bench.ts +0 -50
- package/tools/context-graph-check.ts +0 -229
- package/tools/context-index-check.ts +0 -48
- package/tools/context-lifecycle-check.ts +0 -69
- package/tools/context-projection-check.ts +0 -73
- package/tools/context-scope-check.ts +0 -134
- package/tools/context-storage-check.ts +0 -113
- package/tools/cooperation-check.ts +0 -517
- package/tools/cooperation-http-check.ts +0 -125
- package/tools/deepseek-llm-check.ts +0 -147
- package/tools/deepseek-probe.ts +0 -494
- package/tools/diagnosis-check.ts +0 -109
- package/tools/diagnosis-router-check.ts +0 -50
- package/tools/document-context-check.ts +0 -237
- package/tools/envelope-check.ts +0 -659
- package/tools/eslint-rules/index.ts +0 -26
- package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
- package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
- package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
- package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
- package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
- package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
- package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
- package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
- package/tools/eslint-rules/rules/variable-naming.ts +0 -175
- package/tools/eval-recorded-replay.ts +0 -215
- package/tools/eval-replay.ts +0 -139
- package/tools/eval-summary.ts +0 -136
- package/tools/evidence-revalidation-check.ts +0 -235
- package/tools/exec-check.ts +0 -217
- package/tools/federation-check.ts +0 -166
- package/tools/federation-demo.ts +0 -45
- package/tools/filter-check.ts +0 -243
- package/tools/governance-check.ts +0 -680
- package/tools/governance-store-check.ts +0 -131
- package/tools/governed-task-check.ts +0 -227
- package/tools/guard-check.ts +0 -122
- package/tools/http-channel-check.ts +0 -125
- package/tools/import-campaign.ts +0 -28
- package/tools/inquiry-check.ts +0 -126
- package/tools/interaction-check.ts +0 -171
- package/tools/interrupts-check.ts +0 -173
- package/tools/ipc-check.ts +0 -170
- package/tools/kernel-async-check.ts +0 -136
- package/tools/kernel-check.ts +0 -369
- package/tools/kernel-runtime-check.ts +0 -276
- package/tools/keys-check.ts +0 -559
- package/tools/label-audit.ts +0 -70
- package/tools/labels-workflow-check.ts +0 -49
- package/tools/linear-structure-check.ts +0 -524
- package/tools/live-exec.ts +0 -62
- package/tools/live-governance-eval.ts +0 -813
- package/tools/live-legacy.ts +0 -50
- package/tools/lru-check.ts +0 -182
- package/tools/make-annotation-campaign.ts +0 -57
- package/tools/mcp-executor-check.ts +0 -33
- package/tools/merge-annotations.ts +0 -32
- package/tools/merge-check.ts +0 -98
- package/tools/metrics-check.ts +0 -84
- package/tools/net-probe.ts +0 -107
- package/tools/oauth-probe.ts +0 -117
- package/tools/outbox-check.ts +0 -50
- package/tools/persistence-check.ts +0 -144
- package/tools/pin-check.ts +0 -116
- package/tools/platform-check.ts +0 -281
- package/tools/policy-check.ts +0 -514
- package/tools/prettier-plugin/index.mts +0 -84
- package/tools/priority-check.ts +0 -627
- package/tools/probe-context7.ts +0 -63
- package/tools/registry-check.ts +0 -252
- package/tools/reliability-check.ts +0 -25
- package/tools/retry-check.ts +0 -85
- package/tools/rewrite-declaration-extensions.ts +0 -98
- package/tools/runtime-check.ts +0 -165
- package/tools/runtime-deepseek-check.ts +0 -85
- package/tools/runtime-eval.ts +0 -358
- package/tools/scenario-check.ts +0 -161
- package/tools/scenario-incident.ts +0 -162
- package/tools/scoped-priors-check.ts +0 -35
- package/tools/scoped-priors-pooling.ts +0 -34
- package/tools/segment-ast-check.ts +0 -649
- package/tools/session-check.ts +0 -196
- package/tools/session-store-check.ts +0 -73
- package/tools/share-check.ts +0 -88
- package/tools/sign-check.ts +0 -95
- package/tools/signing-check.ts +0 -275
- package/tools/snapshot-demo.ts +0 -65
- package/tools/social-check.ts +0 -146
- package/tools/structure-compare-check.ts +0 -95
- package/tools/support/documentScanner.ts +0 -577
- package/tools/support/texScanner.ts +0 -631
- package/tools/support/workspaceScanner.ts +0 -476
- package/tools/team-check.ts +0 -163
- package/tools/team-demo.ts +0 -36
- package/tools/telemetry-check.ts +0 -44
- package/tools/tex-context-check.ts +0 -263
- package/tools/tool-gate-check.ts +0 -98
- package/tools/tree-structure-check.ts +0 -786
- package/tools/trust-flow-check.ts +0 -158
- package/tools/turn-store-check.ts +0 -57
- package/tools/unified-check.ts +0 -83
- package/tools/validate.ts +0 -309
- package/tools/wire-check.ts +0 -96
- package/tools/workspace-agent-check.ts +0 -486
- package/tools/workspace-agent-demo.ts +0 -62
- package/tools/workspace-agent-server.ts +0 -101
- package/tools/workspace-context-check.ts +0 -331
- package/tools/workspace-context.ts +0 -131
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -24
- package/tsconfig.tools.json +0 -31
- package/viz/context-ast.json +0 -1577
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import type { Charset } from "../syntax/types.js";
|
|
2
|
+
import type { OutlineResult } from "../outline/types.js";
|
|
3
|
+
export type { OutlineKind, OutlineCategory, OutlineRange, OutlineType, OutlineNode, OutlineResult, WireOutlineRange, WireOutlineNode, WireOutlineResult } from "../outline/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Filesystem domain types.
|
|
6
|
+
*
|
|
7
|
+
* The model is deliberately tree-first. A directory owns an ordered set of
|
|
8
|
+
* `File`/`Directory` nodes; a file has no children. Every node carries the
|
|
9
|
+
* metadata an agent needs to decide whether to read it before paying for the
|
|
10
|
+
* content: a content fingerprint, charset, line/byte counts, timestamps and a
|
|
11
|
+
* short description/summary/purpose.
|
|
12
|
+
*
|
|
13
|
+
* The in-process shape uses `bigint` for `lines` and `bytes` so a large tree
|
|
14
|
+
* cannot silently lose precision. JSON has no bigint, so the wire projection
|
|
15
|
+
* (`WireTreeNode`) spells the same values as decimal strings; both forms are
|
|
16
|
+
* part of the public contract.
|
|
17
|
+
*/
|
|
18
|
+
import type { SessionRoot } from "../session/types.js";
|
|
19
|
+
/**
|
|
20
|
+
* Charset detected for a node. Directories use `none`; files that do not
|
|
21
|
+
* decode as UTF-8/UTF-16 and do not look like text use `binary`.
|
|
22
|
+
*/
|
|
23
|
+
export type { Charset } from "../syntax/types.js";
|
|
24
|
+
/**
|
|
25
|
+
* Timestamp format used by node metadata: `yyyy-MM-ddTHH:mm:ss` with no zone
|
|
26
|
+
* suffix. The filesystem service defaults to host-local wall time because that
|
|
27
|
+
* is what a user sees in an explorer; hosts that need reproducible snapshots
|
|
28
|
+
* can request UTC.
|
|
29
|
+
*/
|
|
30
|
+
export type NodeTime = string;
|
|
31
|
+
/**
|
|
32
|
+
* `Date.toISOString()`-shaped timestamp used by protocol envelopes, audits and
|
|
33
|
+
* persistence rows. Node metadata uses the shorter `NodeTime` form.
|
|
34
|
+
*/
|
|
35
|
+
export type IsoTime = string;
|
|
36
|
+
/**
|
|
37
|
+
* Host-supplied, path-keyed override of the derived metadata. An override is
|
|
38
|
+
* descriptive only: it never changes access checks or the content fingerprint.
|
|
39
|
+
*/
|
|
40
|
+
export interface NodeAnnotation {
|
|
41
|
+
readonly description?: string;
|
|
42
|
+
readonly summary?: string;
|
|
43
|
+
readonly purpose?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Metadata shared by files and directories. `fingerprint` is a content-address
|
|
47
|
+
* ref: `sha256:<hex>` of the file bytes, or a domain-separated Merkle digest of
|
|
48
|
+
* the sorted child refs for a directory.
|
|
49
|
+
*/
|
|
50
|
+
export interface NodeMetadata {
|
|
51
|
+
readonly fingerprint: string;
|
|
52
|
+
readonly charset: Charset;
|
|
53
|
+
readonly lines: bigint;
|
|
54
|
+
readonly bytes: bigint;
|
|
55
|
+
readonly create: NodeTime;
|
|
56
|
+
readonly modify: NodeTime;
|
|
57
|
+
readonly description: string;
|
|
58
|
+
readonly summary: string;
|
|
59
|
+
readonly purpose: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Leaf node. `children` is always the empty tuple, which makes the tree shape
|
|
63
|
+
* checkable by the type system rather than by a convention.
|
|
64
|
+
*/
|
|
65
|
+
export interface FileNode extends NodeMetadata {
|
|
66
|
+
readonly type: "File";
|
|
67
|
+
readonly path: string;
|
|
68
|
+
readonly name: string;
|
|
69
|
+
readonly extension: string;
|
|
70
|
+
readonly children: readonly [];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Interior node. `bytes`/`lines` aggregate descendants; `modify` is the latest
|
|
74
|
+
* descendant modification so a directory answers "when did this subtree last
|
|
75
|
+
* change?" without walking it again.
|
|
76
|
+
*/
|
|
77
|
+
export interface DirectoryNode extends NodeMetadata {
|
|
78
|
+
readonly type: "Directory";
|
|
79
|
+
readonly path: string;
|
|
80
|
+
readonly name: string;
|
|
81
|
+
readonly extension: "directory";
|
|
82
|
+
readonly children: readonly TreeNode[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Any tree node.
|
|
86
|
+
*/
|
|
87
|
+
export type TreeNode = FileNode | DirectoryNode;
|
|
88
|
+
/**
|
|
89
|
+
* Derived node statistics used by service limits without re-walking the tree.
|
|
90
|
+
*/
|
|
91
|
+
export interface TreeStats {
|
|
92
|
+
readonly files: bigint;
|
|
93
|
+
readonly directories: bigint;
|
|
94
|
+
readonly lines: bigint;
|
|
95
|
+
readonly bytes: bigint;
|
|
96
|
+
readonly truncated: boolean;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Options that bound a tree build. `maxNodes` and `maxBytes` stop the walk with
|
|
100
|
+
* `truncated: true` instead of exhausting memory; callers can then list a
|
|
101
|
+
* subtree or raise the bound explicitly.
|
|
102
|
+
*/
|
|
103
|
+
export interface TreeOptions {
|
|
104
|
+
readonly maxNodes?: number;
|
|
105
|
+
readonly maxBytes?: bigint;
|
|
106
|
+
readonly exclude?: readonly string[];
|
|
107
|
+
readonly annotations?: Readonly<Record<string, NodeAnnotation>>;
|
|
108
|
+
readonly followSymlinks?: boolean;
|
|
109
|
+
readonly timeZone?: "local" | "utc";
|
|
110
|
+
readonly includeHidden?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Snapshot returned by a tree build. `revision` changes whenever a node's
|
|
114
|
+
* fingerprint, annotation or child set changes.
|
|
115
|
+
*/
|
|
116
|
+
export interface TreeSnapshot {
|
|
117
|
+
readonly root: DirectoryNode;
|
|
118
|
+
readonly revision: string;
|
|
119
|
+
readonly stats: TreeStats;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Wire projection of a node. Lines and bytes are decimal strings because JSON
|
|
123
|
+
* cannot represent `bigint`; a reader parses them with `BigInt`.
|
|
124
|
+
*/
|
|
125
|
+
export interface WireFileNode extends Omit<FileNode, "children" | "lines" | "bytes"> {
|
|
126
|
+
readonly children: readonly [];
|
|
127
|
+
readonly lines: string;
|
|
128
|
+
readonly bytes: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Wire projection of a directory node.
|
|
132
|
+
*/
|
|
133
|
+
export interface WireDirectoryNode extends Omit<DirectoryNode, "children" | "lines" | "bytes"> {
|
|
134
|
+
readonly children: readonly WireTreeNode[];
|
|
135
|
+
readonly lines: string;
|
|
136
|
+
readonly bytes: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Wire node union.
|
|
140
|
+
*/
|
|
141
|
+
export type WireTreeNode = WireFileNode | WireDirectoryNode;
|
|
142
|
+
/**
|
|
143
|
+
* A bounded directory listing. `nextOffset` is null when the page is complete.
|
|
144
|
+
*/
|
|
145
|
+
export interface DirectoryListing {
|
|
146
|
+
readonly path: string;
|
|
147
|
+
readonly revision: string;
|
|
148
|
+
readonly entries: readonly WireTreeNode[];
|
|
149
|
+
readonly total: number;
|
|
150
|
+
readonly nextOffset: number | null;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Read request. Offsets are 1-based line numbers; `maxBytes` bounds the decoded
|
|
154
|
+
* text and `maxLines` bounds the line count. `startLine > 1` costs a scan to
|
|
155
|
+
* that line, so a caller paging a huge file should keep the page size stable.
|
|
156
|
+
*/
|
|
157
|
+
export interface ReadRequest {
|
|
158
|
+
readonly path: string;
|
|
159
|
+
readonly startLine?: number;
|
|
160
|
+
readonly maxLines?: number;
|
|
161
|
+
readonly maxBytes?: number;
|
|
162
|
+
readonly includeLineNumbers?: boolean;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* One bounded read page. `nextStartLine` is null at EOF. `text` is decoded with
|
|
166
|
+
* the node charset; binary files are refused before any text is produced.
|
|
167
|
+
*/
|
|
168
|
+
export interface ReadPage {
|
|
169
|
+
readonly path: string;
|
|
170
|
+
readonly fingerprint: string;
|
|
171
|
+
readonly charset: Charset;
|
|
172
|
+
readonly offset: number;
|
|
173
|
+
readonly startLine: number;
|
|
174
|
+
readonly endLine: number;
|
|
175
|
+
readonly totalLines: bigint;
|
|
176
|
+
readonly bytesRead: number;
|
|
177
|
+
readonly totalBytes: bigint;
|
|
178
|
+
readonly text: string;
|
|
179
|
+
readonly nextStartLine: number | null;
|
|
180
|
+
readonly truncated: boolean;
|
|
181
|
+
readonly binary: boolean;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Write mode. `create` fails when the file exists, `overwrite` requires an
|
|
185
|
+
* existing file, and `upsert` does either. CAS via `expectFingerprint` is an
|
|
186
|
+
* additional guard on top of the mode.
|
|
187
|
+
*/
|
|
188
|
+
export type WriteMode = "create" | "overwrite" | "upsert" | "append";
|
|
189
|
+
/**
|
|
190
|
+
* Write request. When `expectFingerprint` is present the write is rejected
|
|
191
|
+
* unless the current file still has that fingerprint; `null` means "expect no
|
|
192
|
+
* file". `dryRun` runs every check and returns the projected node without
|
|
193
|
+
* touching the disk.
|
|
194
|
+
*/
|
|
195
|
+
export interface WriteRequest {
|
|
196
|
+
readonly path: string;
|
|
197
|
+
readonly content: string | Uint8Array;
|
|
198
|
+
readonly encoding?: "utf-8" | "utf-8-bom" | "utf-16le" | "utf-16be" | "latin1";
|
|
199
|
+
readonly mode?: WriteMode;
|
|
200
|
+
readonly expectFingerprint?: string | null;
|
|
201
|
+
readonly createParents?: boolean;
|
|
202
|
+
readonly dryRun?: boolean;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Result of a successful (or dry-run) write.
|
|
206
|
+
*/
|
|
207
|
+
export interface WriteResult {
|
|
208
|
+
readonly node: FileNode;
|
|
209
|
+
readonly previousFingerprint: string | null;
|
|
210
|
+
readonly created: boolean;
|
|
211
|
+
readonly dryRun: boolean;
|
|
212
|
+
readonly bytesWritten: bigint;
|
|
213
|
+
readonly revision: string;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Journal record for one successful write. The journal is metadata only; the
|
|
217
|
+
* previous bytes are recoverable from the object store/CAS when the host keeps
|
|
218
|
+
* one, so this module does not duplicate file content.
|
|
219
|
+
*/
|
|
220
|
+
export interface WriteJournalEntry {
|
|
221
|
+
readonly id: string;
|
|
222
|
+
readonly sessionId: string;
|
|
223
|
+
readonly rootId: string;
|
|
224
|
+
readonly path: string;
|
|
225
|
+
readonly mode: WriteMode;
|
|
226
|
+
readonly previousFingerprint: string | null;
|
|
227
|
+
readonly nextFingerprint: string;
|
|
228
|
+
readonly bytes: bigint;
|
|
229
|
+
readonly at: IsoTime;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Import edge kinds. `export-from` is tracked because a re-export is still a
|
|
233
|
+
* dependency edge even though it is not an import statement.
|
|
234
|
+
*/
|
|
235
|
+
export type ImportKind = "static" | "dynamic" | "require" | "export-from" | "type";
|
|
236
|
+
/**
|
|
237
|
+
* One module edge. `from` and `to` are root-relative POSIX paths; `to` is the
|
|
238
|
+
* resolved path for internal edges and the bare specifier for external ones.
|
|
239
|
+
*/
|
|
240
|
+
export interface ImportEdge {
|
|
241
|
+
readonly from: string;
|
|
242
|
+
readonly to: string;
|
|
243
|
+
readonly specifier: string;
|
|
244
|
+
readonly kind: ImportKind;
|
|
245
|
+
readonly line: number;
|
|
246
|
+
readonly resolved: boolean;
|
|
247
|
+
readonly external: boolean;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Import report for one file. `importedBy` is the reverse edge list, which is
|
|
251
|
+
* what makes "who breaks if I change this?" cheap.
|
|
252
|
+
*/
|
|
253
|
+
export interface ImportReport {
|
|
254
|
+
readonly path: string;
|
|
255
|
+
readonly fingerprint: string;
|
|
256
|
+
readonly imports: readonly ImportEdge[];
|
|
257
|
+
readonly importedBy: readonly ImportEdge[];
|
|
258
|
+
readonly external: readonly string[];
|
|
259
|
+
readonly unresolved: readonly string[];
|
|
260
|
+
readonly truncated: boolean;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Exported symbol kinds.
|
|
264
|
+
*/
|
|
265
|
+
export type ExportKind = "function" | "class" | "interface" | "type" | "enum" | "const" | "let" | "var" | "default" | "namespace" | "reexport";
|
|
266
|
+
/**
|
|
267
|
+
* One exported symbol with its source range and a bounded signature.
|
|
268
|
+
*/
|
|
269
|
+
export interface ExportSymbol {
|
|
270
|
+
readonly name: string;
|
|
271
|
+
readonly kind: ExportKind;
|
|
272
|
+
readonly line: number;
|
|
273
|
+
readonly signature: string;
|
|
274
|
+
readonly reexportFrom?: string;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Export report for one file.
|
|
278
|
+
*/
|
|
279
|
+
export interface ExportReport {
|
|
280
|
+
readonly path: string;
|
|
281
|
+
readonly fingerprint: string;
|
|
282
|
+
readonly exports: readonly ExportSymbol[];
|
|
283
|
+
readonly reexports: readonly ImportEdge[];
|
|
284
|
+
readonly truncated: boolean;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Node role in a dependency graph. Packages are included so a workspace file
|
|
288
|
+
* can depend on an external package without pretending it is a source file.
|
|
289
|
+
*/
|
|
290
|
+
export type DependencyNodeKind = "file" | "directory" | "package";
|
|
291
|
+
/**
|
|
292
|
+
* One dependency graph node.
|
|
293
|
+
*/
|
|
294
|
+
export interface DependencyNode {
|
|
295
|
+
readonly id: string;
|
|
296
|
+
readonly path: string;
|
|
297
|
+
readonly kind: DependencyNodeKind;
|
|
298
|
+
readonly fingerprint: string;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Dependency edge kinds. `import`/`export`/`reference` come from source facts;
|
|
302
|
+
* `package` comes from a manifest declaration.
|
|
303
|
+
*/
|
|
304
|
+
export type DependencyEdgeKind = "import" | "export" | "reference" | "package";
|
|
305
|
+
/**
|
|
306
|
+
* One directed dependency edge. `to` is a node id, not necessarily a path.
|
|
307
|
+
*/
|
|
308
|
+
export interface DependencyEdge {
|
|
309
|
+
readonly from: string;
|
|
310
|
+
readonly to: string;
|
|
311
|
+
readonly kind: DependencyEdgeKind;
|
|
312
|
+
readonly specifier?: string;
|
|
313
|
+
readonly line?: number;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Graph query mode. `cycles` returns strongly connected components with more
|
|
317
|
+
* than one node; `topological` returns a deterministic order or the blocking
|
|
318
|
+
* SCCs when the graph is cyclic.
|
|
319
|
+
*/
|
|
320
|
+
export type DependencyMode = "cycles" | "topological" | "dependencies" | "dependents" | "closure";
|
|
321
|
+
/**
|
|
322
|
+
* Bounded dependency report. `order` is present for `topological`; `cycles`
|
|
323
|
+
* is present for `cycles` (and for a cyclic topological request).
|
|
324
|
+
*/
|
|
325
|
+
export interface DependencyReport {
|
|
326
|
+
readonly revision: string;
|
|
327
|
+
readonly mode: DependencyMode;
|
|
328
|
+
readonly roots: readonly string[];
|
|
329
|
+
readonly nodes: readonly DependencyNode[];
|
|
330
|
+
readonly edges: readonly DependencyEdge[];
|
|
331
|
+
readonly order: readonly string[];
|
|
332
|
+
readonly cycles: readonly (readonly string[])[];
|
|
333
|
+
readonly unresolved: readonly string[];
|
|
334
|
+
readonly external: readonly string[];
|
|
335
|
+
readonly truncated: boolean;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Errors are classified so a transport can map them to stable tool error codes
|
|
339
|
+
* without parsing messages. Every message is code-only, mirroring the existing
|
|
340
|
+
* workspace service: host paths never leak through an error string.
|
|
341
|
+
*/
|
|
342
|
+
export type FilesystemErrorCode = "invalid_arguments" | "session_unavailable" | "permission_denied" | "invalid_path" | "path_escape" | "symlink_denied" | "excluded_path" | "not_found" | "not_file" | "not_directory" | "already_exists" | "binary_file" | "charset_unsupported" | "fingerprint_mismatch" | "lock_conflict" | "quota_exceeded" | "parse_failed" | "store_failure" | "internal_error";
|
|
343
|
+
/**
|
|
344
|
+
* Persistence port for the filesystem domain. The SQLite adapter implements
|
|
345
|
+
* this; the service itself only sees the port so the tree can also run in
|
|
346
|
+
* memory for tests and one-shot CLI use.
|
|
347
|
+
*/
|
|
348
|
+
export interface FilesystemStore {
|
|
349
|
+
loadTree(rootId: string): TreeSnapshot | undefined;
|
|
350
|
+
saveTree(rootId: string, snapshot: TreeSnapshot): void;
|
|
351
|
+
loadAnnotations(rootId: string): Record<string, NodeAnnotation>;
|
|
352
|
+
saveAnnotation(rootId: string, path: string, annotation: NodeAnnotation, source: string): void;
|
|
353
|
+
appendWrite(entry: WriteJournalEntry): void;
|
|
354
|
+
listWrites(sessionId: string, limit: number): WriteJournalEntry[];
|
|
355
|
+
loadOutline(rootId: string, path: string, fingerprint: string): OutlineResult | undefined;
|
|
356
|
+
saveOutline(rootId: string, outline: OutlineResult): void;
|
|
357
|
+
loadImports(rootId: string, path: string, fingerprint: string): ImportReport | undefined;
|
|
358
|
+
saveImports(rootId: string, report: ImportReport): void;
|
|
359
|
+
loadExports(rootId: string, path: string, fingerprint: string): ExportReport | undefined;
|
|
360
|
+
saveExports(rootId: string, report: ExportReport): void;
|
|
361
|
+
loadDependencyRevision(rootId: string): string | undefined;
|
|
362
|
+
saveDependencyRevision(rootId: string, revision: string): void;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Resolved path within one session root.
|
|
366
|
+
*/
|
|
367
|
+
export interface RootedPath {
|
|
368
|
+
readonly root: SessionRoot;
|
|
369
|
+
readonly relative: string;
|
|
370
|
+
readonly absolute: string;
|
|
371
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type { PathSandbox } from "./path.js";
|
|
2
|
+
import type { RootedPath, WriteJournalEntry, WriteRequest, WriteResult } from "./types.js";
|
|
3
|
+
import type { WorkspaceTree } from "./tree.js";
|
|
4
|
+
/**
|
|
5
|
+
* Options for {@link writeFile}.
|
|
6
|
+
*
|
|
7
|
+
* `maxBytes` bounds the *resulting* file size, not the incoming fragment; an
|
|
8
|
+
* append is checked against the old size plus the new bytes. `journal` receives
|
|
9
|
+
* one metadata record per successful non-dry write. `tree` is refreshed after
|
|
10
|
+
* the rename so a workspace snapshot cannot keep the old fingerprint.
|
|
11
|
+
*/
|
|
12
|
+
export interface WriteOptions {
|
|
13
|
+
readonly maxBytes?: number;
|
|
14
|
+
readonly journal?: (entry: WriteJournalEntry) => void;
|
|
15
|
+
readonly tree?: WorkspaceTree;
|
|
16
|
+
readonly timeZone?: "local" | "utc";
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Write locks keyed by `(sessionId, rootId, relativePath)`.
|
|
20
|
+
*
|
|
21
|
+
* The class is exported so a host can own one registry and share it with other
|
|
22
|
+
* workspace components; {@link writeFile} uses a process-wide registry because
|
|
23
|
+
* its frozen signature carries no lock parameter.
|
|
24
|
+
*/
|
|
25
|
+
export declare class WriteLocks {
|
|
26
|
+
private readonly locks;
|
|
27
|
+
run<T>(name: string, fn: () => Promise<T> | T): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Number of distinct lock names seen so far.
|
|
30
|
+
*/
|
|
31
|
+
get size(): number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Write one workspace file atomically.
|
|
35
|
+
*
|
|
36
|
+
* Order of checks matches the contract: resolve, lock, read the current file
|
|
37
|
+
* and its fingerprint, CAS, mode, content encoding, size ceiling, parent
|
|
38
|
+
* directory, then the atomic rename. A `dryRun` stops right after the parent
|
|
39
|
+
* check and returns the projected node instead of writing.
|
|
40
|
+
*
|
|
41
|
+
* @param sandbox - Session sandbox that owns path resolution.
|
|
42
|
+
* @param sessionId - Public session handle used for the lock and the journal.
|
|
43
|
+
* @param request - Path, content, mode, CAS precondition and dry-run flag.
|
|
44
|
+
* @param options - Size ceiling, journal sink, tree and timestamp mode.
|
|
45
|
+
* @returns The new node, previous fingerprint and write metadata.
|
|
46
|
+
*/
|
|
47
|
+
export declare const writeFile: (sandbox: PathSandbox, sessionId: string, request: WriteRequest, options?: WriteOptions) => Promise<WriteResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Request for {@link useByte}. The target must already exist; `content`
|
|
50
|
+
* replaces the half-open raw byte range `[startByte, endByte)`.
|
|
51
|
+
*/
|
|
52
|
+
export interface BytePatchRequest {
|
|
53
|
+
readonly path: string;
|
|
54
|
+
readonly startByte: number;
|
|
55
|
+
readonly endByte: number;
|
|
56
|
+
readonly content: Uint8Array;
|
|
57
|
+
readonly expectFingerprint: string;
|
|
58
|
+
readonly expectRangeFingerprint?: string;
|
|
59
|
+
readonly dryRun?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Request for {@link useLine}. Lines are 1-based and inclusive; `endLine =
|
|
63
|
+
* startLine - 1` inserts before `startLine`. `content` is encoded with the
|
|
64
|
+
* file's own charset, so a UTF-16 or Latin-1 file keeps its encoding.
|
|
65
|
+
*/
|
|
66
|
+
export interface LinePatchRequest {
|
|
67
|
+
readonly path: string;
|
|
68
|
+
readonly startLine: number;
|
|
69
|
+
readonly endLine: number;
|
|
70
|
+
readonly content: string;
|
|
71
|
+
readonly expectFingerprint: string;
|
|
72
|
+
readonly expectRangeFingerprint?: string;
|
|
73
|
+
readonly dryRun?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Journal record for one range patch. It extends the base write record with the
|
|
77
|
+
* patched span and both range fingerprints, without changing `types.ts`.
|
|
78
|
+
*/
|
|
79
|
+
export interface PatchJournalEntry extends WriteJournalEntry {
|
|
80
|
+
readonly kind: "line" | "byte";
|
|
81
|
+
readonly startByte: number;
|
|
82
|
+
readonly endByte: number;
|
|
83
|
+
readonly startLine?: number;
|
|
84
|
+
readonly endLine?: number;
|
|
85
|
+
readonly previousRangeFingerprint: string;
|
|
86
|
+
readonly nextRangeFingerprint: string;
|
|
87
|
+
readonly nextStartByte: number;
|
|
88
|
+
readonly nextEndByte: number;
|
|
89
|
+
readonly previousTotalBytes: bigint;
|
|
90
|
+
readonly nextTotalBytes: bigint;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Options for {@link useByte} and {@link useLine}. `maxBytes` caps the resulting
|
|
94
|
+
* file; line patches additionally require the current file to fit that budget
|
|
95
|
+
* because the text has to be decoded.
|
|
96
|
+
*/
|
|
97
|
+
export interface WritePatchOptions extends WriteOptions {
|
|
98
|
+
readonly patchJournal?: (entry: PatchJournalEntry) => void;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Result of a range patch. `bytesWritten` is the final file size, matching
|
|
102
|
+
* {@link WriteResult}; `previousRangeFingerprint` describes the replaced span
|
|
103
|
+
* before the write and `nextRangeFingerprint` the inserted span afterwards.
|
|
104
|
+
*/
|
|
105
|
+
export interface WritePatchResult extends WriteResult {
|
|
106
|
+
readonly kind: "line" | "byte";
|
|
107
|
+
readonly startByte: number;
|
|
108
|
+
readonly endByte: number;
|
|
109
|
+
readonly startLine?: number;
|
|
110
|
+
readonly endLine?: number;
|
|
111
|
+
readonly previousRangeFingerprint: string;
|
|
112
|
+
readonly nextRangeFingerprint: string;
|
|
113
|
+
readonly nextStartByte: number;
|
|
114
|
+
readonly nextEndByte: number;
|
|
115
|
+
readonly previousTotalBytes: bigint;
|
|
116
|
+
readonly nextTotalBytes: bigint;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Replace a raw byte range of an existing file.
|
|
120
|
+
*
|
|
121
|
+
* The whole-file `expectFingerprint` is mandatory and is verified from the bytes
|
|
122
|
+
* read under the lock; `expectRangeFingerprint` is a secondary check. The new
|
|
123
|
+
* file is assembled in memory, written through a same-directory temporary file,
|
|
124
|
+
* `fsync`ed and renamed, so a reader never observes a partial file.
|
|
125
|
+
*
|
|
126
|
+
* @param sandbox - Session sandbox that owns path resolution.
|
|
127
|
+
* @param sessionId - Public session handle used for the lock and journal.
|
|
128
|
+
* @param request - Path, half-open byte range, replacement bytes and CAS guards.
|
|
129
|
+
* @param options - Size ceiling, journal sinks, tree and timestamp mode.
|
|
130
|
+
* @returns Patch result with both fingerprint pairs and the new node.
|
|
131
|
+
*/
|
|
132
|
+
export declare const useByte: (sandbox: PathSandbox, sessionId: string, request: BytePatchRequest, options?: WritePatchOptions) => Promise<WritePatchResult>;
|
|
133
|
+
/**
|
|
134
|
+
* Replace a line range of an existing text file.
|
|
135
|
+
*
|
|
136
|
+
* Line numbers are 1-based and inclusive. The replaced span starts at the first
|
|
137
|
+
* character of `startLine` and includes the terminator of `endLine` when one
|
|
138
|
+
* exists, which means `content` is inserted verbatim: include the desired
|
|
139
|
+
* newline when more lines follow. Use `endLine = startLine - 1` to insert.
|
|
140
|
+
*
|
|
141
|
+
* @param sandbox - Session sandbox that owns path resolution.
|
|
142
|
+
* @param sessionId - Public session handle used for the lock and journal.
|
|
143
|
+
* @param request - Path, inclusive line range, replacement text and CAS guards.
|
|
144
|
+
* @param options - Size ceiling, journal sinks, tree and timestamp mode.
|
|
145
|
+
* @returns Patch result with both fingerprint pairs and the new node.
|
|
146
|
+
*/
|
|
147
|
+
export declare const useLine: (sandbox: PathSandbox, sessionId: string, request: LinePatchRequest, options?: WritePatchOptions) => Promise<WritePatchResult>;
|
|
148
|
+
/**
|
|
149
|
+
* Create a directory inside a root. `create` requires the parent to exist and
|
|
150
|
+
* fails when the target is already present; `ensure` creates the whole chain
|
|
151
|
+
* and treats an existing directory as success. The root itself is always a
|
|
152
|
+
* valid target for `ensure` and never for `create`.
|
|
153
|
+
*
|
|
154
|
+
* @param sandbox - Session sandbox that owns path resolution.
|
|
155
|
+
* @param path - Root-relative POSIX directory path.
|
|
156
|
+
* @param mode - `create` or `ensure`; defaults to `ensure`.
|
|
157
|
+
* @returns The resolved path of the directory.
|
|
158
|
+
*/
|
|
159
|
+
export declare const ensureDirectory: (sandbox: PathSandbox, path: string, mode?: "create" | "ensure") => RootedPath;
|