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,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session domain types.
|
|
3
|
+
*
|
|
4
|
+
* A session is the authority boundary for one agent's workspace work: it binds
|
|
5
|
+
* an agent identity to a set of real, host-approved roots, a permission set,
|
|
6
|
+
* a TTL and a private JSON context. Nothing in this module is model-authored:
|
|
7
|
+
* the host opens sessions and hands the resulting credential to the transport,
|
|
8
|
+
* which binds every tool call to exactly one session.
|
|
9
|
+
*
|
|
10
|
+
* Sessions are deliberately separate from `runtime/session.ts`. That session is
|
|
11
|
+
* the cognitive memory of a turn loop; this one is a data-isolation and identity
|
|
12
|
+
* record. Sharing a word is cheaper than pretending the two lifecycles match.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Opaque session key. Kept as a branded string so a path, an agent id or a
|
|
16
|
+
* random token can never be passed where a session id is expected.
|
|
17
|
+
*/
|
|
18
|
+
export type SessionId = string;
|
|
19
|
+
/**
|
|
20
|
+
* Stable host-assigned agent identity. It is not a model name and not a token.
|
|
21
|
+
*/
|
|
22
|
+
export type AgentId = string;
|
|
23
|
+
/**
|
|
24
|
+
* Closed session lifecycle. `expired` and `revoked` are terminal for reads;
|
|
25
|
+
* a host may audit them, but no adapter may silently revive one.
|
|
26
|
+
*/
|
|
27
|
+
export type SessionStatus = "active" | "suspended" | "revoked" | "expired";
|
|
28
|
+
/**
|
|
29
|
+
* Operations a session can be granted. `execute` is intentionally absent:
|
|
30
|
+
* this layer reads and writes files, it does not spawn processes.
|
|
31
|
+
*/
|
|
32
|
+
export type SessionOperation = "read" | "write" | "create" | "remove" | "list";
|
|
33
|
+
/**
|
|
34
|
+
* JSON value accepted by the session context store. The store rejects values
|
|
35
|
+
* that cannot round-trip through canonical JSON (functions, symbols, bigint,
|
|
36
|
+
* cyclic objects) instead of silently coercing them.
|
|
37
|
+
*/
|
|
38
|
+
export type SessionJson = null | boolean | number | string | SessionJson[] | {
|
|
39
|
+
[key: string]: SessionJson;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Coarse permission set plus per-session quotas. The limits are repeated here
|
|
43
|
+
* rather than read from a global configuration so two sessions in one process
|
|
44
|
+
* cannot widen each other's budget.
|
|
45
|
+
*/
|
|
46
|
+
export interface SessionPermissions {
|
|
47
|
+
readonly read: boolean;
|
|
48
|
+
readonly write: boolean;
|
|
49
|
+
readonly create: boolean;
|
|
50
|
+
readonly remove: boolean;
|
|
51
|
+
readonly maxReadBytes: number;
|
|
52
|
+
readonly maxWriteBytes: number;
|
|
53
|
+
readonly maxTreeNodes: number;
|
|
54
|
+
readonly maxContextEntries: number;
|
|
55
|
+
readonly maxContextBytes: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* One host-approved directory. `path` must be absolute and is resolved through
|
|
59
|
+
* `realpath` when the session is opened; `id` is the stable key tools use so a
|
|
60
|
+
* response never has to echo a host path the model should not depend on.
|
|
61
|
+
*/
|
|
62
|
+
export interface SessionRoot {
|
|
63
|
+
readonly id: string;
|
|
64
|
+
readonly path: string;
|
|
65
|
+
readonly writable: boolean;
|
|
66
|
+
readonly exclude: readonly string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Public session record. It never contains the bearer secret; authentication
|
|
70
|
+
* state lives only as a hash inside the registry and the persistence adapter.
|
|
71
|
+
*/
|
|
72
|
+
export interface SessionDescriptor {
|
|
73
|
+
readonly id: SessionId;
|
|
74
|
+
readonly agentId: AgentId;
|
|
75
|
+
readonly label: string;
|
|
76
|
+
readonly status: SessionStatus;
|
|
77
|
+
readonly roots: readonly SessionRoot[];
|
|
78
|
+
readonly permissions: SessionPermissions;
|
|
79
|
+
readonly createdAt: string;
|
|
80
|
+
readonly expiresAt: string;
|
|
81
|
+
readonly idleExpiresAt: string;
|
|
82
|
+
readonly revision: number;
|
|
83
|
+
readonly parentId?: SessionId;
|
|
84
|
+
readonly metadata: Readonly<Record<string, string>>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Host input for opening a session. Every field except the agent identity is
|
|
88
|
+
* optional and defaults are deliberately conservative.
|
|
89
|
+
*/
|
|
90
|
+
export interface SessionOpenInput {
|
|
91
|
+
readonly agentId: AgentId;
|
|
92
|
+
readonly label?: string;
|
|
93
|
+
readonly roots: readonly SessionRoot[];
|
|
94
|
+
readonly permissions?: Partial<SessionPermissions>;
|
|
95
|
+
readonly ttlMs?: number;
|
|
96
|
+
readonly idleTtlMs?: number;
|
|
97
|
+
readonly metadata?: Readonly<Record<string, string>>;
|
|
98
|
+
readonly parentId?: SessionId;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* One-time credential returned by `open`/`fork`/`rotate`. The raw token is
|
|
102
|
+
* shown exactly once; only its hash is persisted.
|
|
103
|
+
*/
|
|
104
|
+
export interface SessionCredential {
|
|
105
|
+
readonly sessionId: SessionId;
|
|
106
|
+
readonly token: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Result of a successful authentication. Callers keep the descriptor and never
|
|
110
|
+
* the token hash; the hash is exposed for audit adapters only.
|
|
111
|
+
*/
|
|
112
|
+
export interface SessionAuthentication {
|
|
113
|
+
readonly descriptor: SessionDescriptor;
|
|
114
|
+
readonly tokenHash: string;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* One namespaced context entry. `bytes` is the canonical UTF-8 size used for
|
|
118
|
+
* quota accounting, not `String.length`.
|
|
119
|
+
*/
|
|
120
|
+
export interface SessionContextEntry {
|
|
121
|
+
readonly namespace: string;
|
|
122
|
+
readonly key: string;
|
|
123
|
+
readonly value: SessionJson;
|
|
124
|
+
readonly bytes: number;
|
|
125
|
+
readonly updatedAt: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Immutable view of a session's context. `bytes` is the sum of entry sizes.
|
|
129
|
+
*/
|
|
130
|
+
export interface SessionContextSnapshot {
|
|
131
|
+
readonly sessionId: SessionId;
|
|
132
|
+
readonly entries: readonly SessionContextEntry[];
|
|
133
|
+
readonly bytes: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Fork input. A fork gets a fresh id, secret and revision; it shares no mutable
|
|
137
|
+
* object with its parent, so a write in one cannot be observed by the other.
|
|
138
|
+
*/
|
|
139
|
+
export interface SessionForkInput {
|
|
140
|
+
readonly label?: string;
|
|
141
|
+
readonly ttlMs?: number;
|
|
142
|
+
readonly metadata?: Readonly<Record<string, string>>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Persistence port for descriptors. Adapters may be in-memory, JSON or SQLite;
|
|
146
|
+
* the registry never knows which. Context persistence is a separate port
|
|
147
|
+
* because some hosts persist session identity but never persist workspace data.
|
|
148
|
+
*/
|
|
149
|
+
export interface SessionStore {
|
|
150
|
+
load(sessionId: SessionId): SessionDescriptor | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Token hash needed to restore authentication after a restart. A store that
|
|
153
|
+
* chooses not to persist secrets returns `undefined`, which makes restored
|
|
154
|
+
* sessions host-only until the host rotates the token.
|
|
155
|
+
*/
|
|
156
|
+
loadSecret(sessionId: SessionId): string | undefined;
|
|
157
|
+
save(descriptor: SessionDescriptor, tokenHash: string): void;
|
|
158
|
+
delete(sessionId: SessionId): boolean;
|
|
159
|
+
list(agentId?: AgentId): SessionDescriptor[];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Persistence port for context entries. `replace` is atomic per session so a
|
|
163
|
+
* crash cannot leave half a context visible to the next process.
|
|
164
|
+
*/
|
|
165
|
+
export interface SessionContextStore {
|
|
166
|
+
load(sessionId: SessionId): SessionContextEntry[];
|
|
167
|
+
put(sessionId: SessionId, entry: SessionContextEntry): void;
|
|
168
|
+
delete(sessionId: SessionId, namespace: string, key: string): boolean;
|
|
169
|
+
deleteSession(sessionId: SessionId): void;
|
|
170
|
+
replace(sessionId: SessionId, entries: readonly SessionContextEntry[]): void;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Clock injection point. Tests use it to exercise TTL/expiry paths without
|
|
174
|
+
* sleeping; production uses `Date.now`.
|
|
175
|
+
*/
|
|
176
|
+
export interface SessionClock {
|
|
177
|
+
now(): Date;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Registry limits. A host cannot raise them after construction, which keeps a
|
|
181
|
+
* compromised caller from turning many small sessions into unbounded memory.
|
|
182
|
+
*/
|
|
183
|
+
export interface SessionRegistryLimits {
|
|
184
|
+
readonly maxSessions: number;
|
|
185
|
+
readonly maxRootsPerSession: number;
|
|
186
|
+
readonly maxContextEntries: number;
|
|
187
|
+
readonly maxContextBytes: number;
|
|
188
|
+
readonly maxTokenRotations: number;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Normalized defaults for opening a session when the host omits a field.
|
|
192
|
+
*/
|
|
193
|
+
export interface SessionDefaults {
|
|
194
|
+
readonly ttlMs: number;
|
|
195
|
+
readonly idleTtlMs: number;
|
|
196
|
+
readonly label: string;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Options for the registry. `store` and `contextStore` are optional so the
|
|
200
|
+
* module is useful in memory-only tests; a SQLite host supplies both adapters.
|
|
201
|
+
*/
|
|
202
|
+
export interface SessionRegistryOptions {
|
|
203
|
+
readonly limits?: Partial<SessionRegistryLimits>;
|
|
204
|
+
readonly defaults?: Partial<SessionDefaults>;
|
|
205
|
+
readonly store?: SessionStore;
|
|
206
|
+
readonly contextStore?: SessionContextStore;
|
|
207
|
+
readonly clock?: SessionClock;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Error codes are part of the adapter contract: a transport can map a failure
|
|
211
|
+
* to a stable code without parsing English prose.
|
|
212
|
+
*/
|
|
213
|
+
export type SessionErrorCode = "invalid_arguments" | "invalid_identity" | "session_not_found" | "session_expired" | "session_revoked" | "session_suspended" | "session_forbidden" | "session_capacity" | "context_quota" | "context_conflict" | "store_failure";
|
|
214
|
+
/**
|
|
215
|
+
* Host-side session summary used by diagnostics and the `session` tool.
|
|
216
|
+
*/
|
|
217
|
+
export interface SessionSummary {
|
|
218
|
+
readonly id: SessionId;
|
|
219
|
+
readonly agentId: AgentId;
|
|
220
|
+
readonly label: string;
|
|
221
|
+
readonly status: SessionStatus;
|
|
222
|
+
readonly roots: readonly Pick<SessionRoot, "id" | "writable">[];
|
|
223
|
+
readonly createdAt: string;
|
|
224
|
+
readonly expiresAt: string;
|
|
225
|
+
readonly remainingMs: number;
|
|
226
|
+
readonly revision: number;
|
|
227
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session domain types.
|
|
3
|
+
*
|
|
4
|
+
* A session is the authority boundary for one agent's workspace work: it binds
|
|
5
|
+
* an agent identity to a set of real, host-approved roots, a permission set,
|
|
6
|
+
* a TTL and a private JSON context. Nothing in this module is model-authored:
|
|
7
|
+
* the host opens sessions and hands the resulting credential to the transport,
|
|
8
|
+
* which binds every tool call to exactly one session.
|
|
9
|
+
*
|
|
10
|
+
* Sessions are deliberately separate from `runtime/session.ts`. That session is
|
|
11
|
+
* the cognitive memory of a turn loop; this one is a data-isolation and identity
|
|
12
|
+
* record. Sharing a word is cheaper than pretending the two lifecycles match.
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
package/lib/structure/index.d.ts
CHANGED
package/lib/structure/index.js
CHANGED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character trie (prefix tree).
|
|
3
|
+
*
|
|
4
|
+
* Used where a hash map cannot answer "which keys start with this prefix?":
|
|
5
|
+
* outline symbol lookup, root-relative path prefixes and import specifier
|
|
6
|
+
* completion. Keys are JavaScript strings; children use a `Map` rather than a
|
|
7
|
+
* fixed alphabet so Unicode identifiers work without a 65k-entry node.
|
|
8
|
+
*
|
|
9
|
+
* The trie is a mutable index, not a source of truth. `insert` replaces the
|
|
10
|
+
* value at an existing terminal; `delete` removes the terminal and prunes the
|
|
11
|
+
* now-empty path. Traversal is iterative so a pathological key length cannot
|
|
12
|
+
* exhaust the call stack.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* One trie node. `terminal` is tracked separately from `value` because a key
|
|
16
|
+
* may legitimately store `undefined`; `has` must still distinguish "present
|
|
17
|
+
* with no value" from "absent".
|
|
18
|
+
*/
|
|
19
|
+
export interface TrieNode<T> {
|
|
20
|
+
readonly children: Map<string, TrieNode<T>>;
|
|
21
|
+
terminal: boolean;
|
|
22
|
+
value?: T;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A prefix tree over string keys.
|
|
26
|
+
*
|
|
27
|
+
* @typeParam T - Value stored at a terminal key.
|
|
28
|
+
*/
|
|
29
|
+
export declare class Trie<T> {
|
|
30
|
+
private readonly root;
|
|
31
|
+
private count;
|
|
32
|
+
/**
|
|
33
|
+
* Number of terminal keys.
|
|
34
|
+
*/
|
|
35
|
+
get size(): number;
|
|
36
|
+
/**
|
|
37
|
+
* Insert or replace one key.
|
|
38
|
+
*
|
|
39
|
+
* @param key - Non-empty key.
|
|
40
|
+
* @param value - Value stored at the terminal.
|
|
41
|
+
*/
|
|
42
|
+
insert(key: string, value: T): void;
|
|
43
|
+
/**
|
|
44
|
+
* Read a key's value. The second element distinguishes "absent" from
|
|
45
|
+
* "present with an `undefined` value".
|
|
46
|
+
*
|
|
47
|
+
* @param key - Key to locate.
|
|
48
|
+
* @returns Found state and value.
|
|
49
|
+
*/
|
|
50
|
+
find(key: string): {
|
|
51
|
+
found: boolean;
|
|
52
|
+
value?: T;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Value at a terminal key, or `undefined`.
|
|
56
|
+
*/
|
|
57
|
+
get(key: string): T | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Whether a key is present.
|
|
60
|
+
*/
|
|
61
|
+
has(key: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Remove one key. Returns `false` when the key was absent.
|
|
64
|
+
*/
|
|
65
|
+
delete(key: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* All terminal keys under a prefix, in insertion-independent lexical order.
|
|
68
|
+
*
|
|
69
|
+
* @param prefix - Optional prefix; empty returns every key.
|
|
70
|
+
*/
|
|
71
|
+
keys(prefix?: string): string[];
|
|
72
|
+
/**
|
|
73
|
+
* All terminal entries under a prefix.
|
|
74
|
+
*/
|
|
75
|
+
entries(prefix?: string): Array<readonly [string, T]>;
|
|
76
|
+
/**
|
|
77
|
+
* Longest terminal prefix of `text`, useful for matching a selector or a
|
|
78
|
+
* path against a known set without generating every prefix.
|
|
79
|
+
*/
|
|
80
|
+
longestPrefix(text: string): {
|
|
81
|
+
key: string;
|
|
82
|
+
value: T;
|
|
83
|
+
} | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Remove every key.
|
|
86
|
+
*/
|
|
87
|
+
clear(): void;
|
|
88
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character trie (prefix tree).
|
|
3
|
+
*
|
|
4
|
+
* Used where a hash map cannot answer "which keys start with this prefix?":
|
|
5
|
+
* outline symbol lookup, root-relative path prefixes and import specifier
|
|
6
|
+
* completion. Keys are JavaScript strings; children use a `Map` rather than a
|
|
7
|
+
* fixed alphabet so Unicode identifiers work without a 65k-entry node.
|
|
8
|
+
*
|
|
9
|
+
* The trie is a mutable index, not a source of truth. `insert` replaces the
|
|
10
|
+
* value at an existing terminal; `delete` removes the terminal and prunes the
|
|
11
|
+
* now-empty path. Traversal is iterative so a pathological key length cannot
|
|
12
|
+
* exhaust the call stack.
|
|
13
|
+
*/
|
|
14
|
+
const createNode = () => ({ children: new Map(), terminal: false });
|
|
15
|
+
/**
|
|
16
|
+
* A prefix tree over string keys.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam T - Value stored at a terminal key.
|
|
19
|
+
*/
|
|
20
|
+
export class Trie {
|
|
21
|
+
root = createNode();
|
|
22
|
+
count = 0;
|
|
23
|
+
/**
|
|
24
|
+
* Number of terminal keys.
|
|
25
|
+
*/
|
|
26
|
+
get size() {
|
|
27
|
+
return this.count;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Insert or replace one key.
|
|
31
|
+
*
|
|
32
|
+
* @param key - Non-empty key.
|
|
33
|
+
* @param value - Value stored at the terminal.
|
|
34
|
+
*/
|
|
35
|
+
insert(key, value) {
|
|
36
|
+
if (key.length === 0) {
|
|
37
|
+
throw new RangeError("trie key must not be empty");
|
|
38
|
+
}
|
|
39
|
+
let node = this.root;
|
|
40
|
+
for (let index = 0; index < key.length; index += 1) {
|
|
41
|
+
const character = key[index];
|
|
42
|
+
let child = node.children.get(character);
|
|
43
|
+
if (child === (void 0)) {
|
|
44
|
+
child = createNode();
|
|
45
|
+
node.children.set(character, child);
|
|
46
|
+
}
|
|
47
|
+
node = child;
|
|
48
|
+
}
|
|
49
|
+
if (!node.terminal) {
|
|
50
|
+
this.count += 1;
|
|
51
|
+
}
|
|
52
|
+
node.terminal = true;
|
|
53
|
+
node.value = value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Read a key's value. The second element distinguishes "absent" from
|
|
57
|
+
* "present with an `undefined` value".
|
|
58
|
+
*
|
|
59
|
+
* @param key - Key to locate.
|
|
60
|
+
* @returns Found state and value.
|
|
61
|
+
*/
|
|
62
|
+
find(key) {
|
|
63
|
+
let node = this.root;
|
|
64
|
+
for (let index = 0; index < key.length; index += 1) {
|
|
65
|
+
node = node.children.get(key[index]);
|
|
66
|
+
if (node === (void 0)) {
|
|
67
|
+
return { found: false };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return node.terminal ? { found: true, value: node.value } : { found: false };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Value at a terminal key, or `undefined`.
|
|
74
|
+
*/
|
|
75
|
+
get(key) {
|
|
76
|
+
return this.find(key).value;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether a key is present.
|
|
80
|
+
*/
|
|
81
|
+
has(key) {
|
|
82
|
+
return this.find(key).found;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Remove one key. Returns `false` when the key was absent.
|
|
86
|
+
*/
|
|
87
|
+
delete(key) {
|
|
88
|
+
if (key.length === 0) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
const path = [];
|
|
92
|
+
let node = this.root;
|
|
93
|
+
for (let index = 0; index < key.length; index += 1) {
|
|
94
|
+
const character = key[index];
|
|
95
|
+
const child = node.children.get(character);
|
|
96
|
+
if (child === (void 0)) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
path.push({ character, node });
|
|
100
|
+
node = child;
|
|
101
|
+
}
|
|
102
|
+
if (!node.terminal) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
node.terminal = false;
|
|
106
|
+
delete node.value;
|
|
107
|
+
this.count -= 1;
|
|
108
|
+
for (let index = path.length - 1; index >= 0; index -= 1) {
|
|
109
|
+
const edge = path[index];
|
|
110
|
+
const child = edge.node.children.get(edge.character);
|
|
111
|
+
if (child === (void 0) || child.terminal || child.children.size > 0) {
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
edge.node.children.delete(edge.character);
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* All terminal keys under a prefix, in insertion-independent lexical order.
|
|
120
|
+
*
|
|
121
|
+
* @param prefix - Optional prefix; empty returns every key.
|
|
122
|
+
*/
|
|
123
|
+
keys(prefix = "") {
|
|
124
|
+
return this.entries(prefix).map((entry) => entry[0]);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* All terminal entries under a prefix.
|
|
128
|
+
*/
|
|
129
|
+
entries(prefix = "") {
|
|
130
|
+
let start = this.root;
|
|
131
|
+
for (let index = 0; index < prefix.length; index += 1) {
|
|
132
|
+
start = start.children.get(prefix[index]);
|
|
133
|
+
if (start === (void 0)) {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const result = [];
|
|
138
|
+
const stack = [{ key: prefix, node: start }];
|
|
139
|
+
while (stack.length > 0) {
|
|
140
|
+
const current = stack.pop();
|
|
141
|
+
if (current.node.terminal) {
|
|
142
|
+
result.push([current.key, current.node.value]);
|
|
143
|
+
}
|
|
144
|
+
const characters = [...current.node.children.keys()].reverse();
|
|
145
|
+
for (let index = 0; index < characters.length; index += 1) {
|
|
146
|
+
const character = characters[index];
|
|
147
|
+
const child = current.node.children.get(character);
|
|
148
|
+
if (child !== (void 0)) {
|
|
149
|
+
stack.push({ key: current.key + character, node: child });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
result.sort((left, right) => (left[0] < right[0] ? -1 : left[0] > right[0] ? 1 : 0));
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Longest terminal prefix of `text`, useful for matching a selector or a
|
|
158
|
+
* path against a known set without generating every prefix.
|
|
159
|
+
*/
|
|
160
|
+
longestPrefix(text) {
|
|
161
|
+
let node = this.root;
|
|
162
|
+
let match = (void 0);
|
|
163
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
164
|
+
node = node.children.get(text[index]);
|
|
165
|
+
if (node === (void 0)) {
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
if (node.terminal) {
|
|
169
|
+
match = { key: text.slice(0, index + 1), value: node.value };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return match;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Remove every key.
|
|
176
|
+
*/
|
|
177
|
+
clear() {
|
|
178
|
+
this.root.children.clear();
|
|
179
|
+
this.root.terminal = false;
|
|
180
|
+
delete this.root.value;
|
|
181
|
+
this.count = 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { SourceRange as OutlineRange } from "./types.js";
|
|
2
|
+
export declare class ByteLineIndex {
|
|
3
|
+
private readonly tree;
|
|
4
|
+
private readonly starts;
|
|
5
|
+
private readonly text;
|
|
6
|
+
private readonly total;
|
|
7
|
+
/**
|
|
8
|
+
* Bytes before the decoded text (a UTF-8/UTF-16 BOM). Symbol ranges are
|
|
9
|
+
* offsets in the original file, while the decoded text starts after the
|
|
10
|
+
* marker; adding the base here keeps both coordinate systems consistent.
|
|
11
|
+
*/
|
|
12
|
+
private readonly base;
|
|
13
|
+
constructor(text: string, bomBytes?: number);
|
|
14
|
+
/**
|
|
15
|
+
* Number of logical lines. The empty file has zero lines.
|
|
16
|
+
*/
|
|
17
|
+
get lineCount(): number;
|
|
18
|
+
/**
|
|
19
|
+
* Start byte offset of a 1-based line. Lines past EOF clamp to the end.
|
|
20
|
+
*/
|
|
21
|
+
startByte(line: number): bigint;
|
|
22
|
+
/**
|
|
23
|
+
* Half-open end byte offset for an inclusive line.
|
|
24
|
+
*/
|
|
25
|
+
endByte(line: number): bigint;
|
|
26
|
+
/**
|
|
27
|
+
* Byte length of the whole text.
|
|
28
|
+
*/
|
|
29
|
+
byteLength(): bigint;
|
|
30
|
+
/**
|
|
31
|
+
* Build a half-open byte / inclusive line range. Inputs are clamped so a
|
|
32
|
+
* parser can be approximate without producing an invalid range.
|
|
33
|
+
*/
|
|
34
|
+
range(startLine: number, endLine: number): OutlineRange;
|
|
35
|
+
/**
|
|
36
|
+
* Range covering the entire text; used for a file anchor.
|
|
37
|
+
*/
|
|
38
|
+
fullRange(): OutlineRange;
|
|
39
|
+
/**
|
|
40
|
+
* Source slice for a range, useful for a `detail`/signature preview.
|
|
41
|
+
*/
|
|
42
|
+
slice(range: OutlineRange): string;
|
|
43
|
+
private offsetOf;
|
|
44
|
+
}
|