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,67 @@
|
|
|
1
|
+
import type { DatabaseSync } from "node:sqlite";
|
|
2
|
+
import type { HookRecorder, HookRunEntry } from "../../hook/types.js";
|
|
3
|
+
import type { HookRunRow } from "../entity/hook.js";
|
|
4
|
+
import type { SqlParameter } from "../sql/sql.js";
|
|
5
|
+
import { BaseRepository } from "./base.js";
|
|
6
|
+
/**
|
|
7
|
+
* Repository for `hook_runs`.
|
|
8
|
+
*/
|
|
9
|
+
export declare class HookRepository extends BaseRepository<HookRunRow, string> {
|
|
10
|
+
/**
|
|
11
|
+
* Create the repository.
|
|
12
|
+
*
|
|
13
|
+
* @param db - Open SQLite connection.
|
|
14
|
+
*/
|
|
15
|
+
constructor(db: DatabaseSync);
|
|
16
|
+
/**
|
|
17
|
+
* Append one hook run. The row is immutable afterwards; a retry is a new
|
|
18
|
+
* run with a new id, not an update of the old row.
|
|
19
|
+
*
|
|
20
|
+
* @param entry - Run entry produced by `Hook.run`.
|
|
21
|
+
*/
|
|
22
|
+
append(entry: HookRunEntry & {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
}): void;
|
|
25
|
+
/**
|
|
26
|
+
* Read one session's runs, newest first.
|
|
27
|
+
*
|
|
28
|
+
* @param sessionId - Session handle.
|
|
29
|
+
* @param limit - Maximum rows; zero is allowed and returns nothing.
|
|
30
|
+
* @returns Run rows.
|
|
31
|
+
*/
|
|
32
|
+
list(sessionId: string, limit: number): HookRunRow[];
|
|
33
|
+
/**
|
|
34
|
+
* Count one session's runs. With no argument it counts the whole table.
|
|
35
|
+
* The trailing `params` keeps the inherited `count(clause, ...params)`
|
|
36
|
+
* behaviour available when a caller passes bound values; a lone string is
|
|
37
|
+
* interpreted as a session id because that is this repository's contract.
|
|
38
|
+
*
|
|
39
|
+
* @param sessionId - Session handle, empty for every row, or a WHERE clause
|
|
40
|
+
* when `params` is non-empty.
|
|
41
|
+
* @param params - Bound values for the inherited clause form.
|
|
42
|
+
* @returns Number of matching runs.
|
|
43
|
+
*/
|
|
44
|
+
count(sessionId?: string, ...params: SqlParameter[]): number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Hook recorder backed by a SQLite repository.
|
|
48
|
+
*
|
|
49
|
+
* A recorder instance owns one repository over the injected connection; it does
|
|
50
|
+
* not open, migrate or close the store. `record` never throws, by contract.
|
|
51
|
+
*/
|
|
52
|
+
export declare class SqliteHookRecorder implements HookRecorder {
|
|
53
|
+
private readonly repository;
|
|
54
|
+
/**
|
|
55
|
+
* Create a recorder.
|
|
56
|
+
*
|
|
57
|
+
* @param db - Open SQLite connection with the `hook_runs` table.
|
|
58
|
+
*/
|
|
59
|
+
constructor(db: DatabaseSync);
|
|
60
|
+
/**
|
|
61
|
+
* Append one entry. A repository failure is swallowed so the hook result is
|
|
62
|
+
* unaffected.
|
|
63
|
+
*
|
|
64
|
+
* @param entry - Run entry.
|
|
65
|
+
*/
|
|
66
|
+
record(entry: HookRunEntry): void;
|
|
67
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite repository and recorder for hook runs.
|
|
3
|
+
*
|
|
4
|
+
* Every `Hook.run` produces one `HookRunEntry`; `SqliteHookRecorder` writes it
|
|
5
|
+
* to `hook_runs` through {@link HookRepository}. The recorder is deliberately
|
|
6
|
+
* best-effort: `record` catches repository failures and returns, because an
|
|
7
|
+
* audit store that is temporarily unavailable must not turn a successful read
|
|
8
|
+
* or write into a failed hook result.
|
|
9
|
+
*
|
|
10
|
+
* `run_id` is `run.` plus 16 hex characters rather than an autoincrement, so a
|
|
11
|
+
* row can be identified before insert and two stores cannot confuse each
|
|
12
|
+
* other's ordering. `list` reads newest first by `started_at` and breaks ties on
|
|
13
|
+
* `run_id`, which keeps the order deterministic for runs in the same
|
|
14
|
+
* millisecond.
|
|
15
|
+
*/
|
|
16
|
+
import { randomBytes } from "node:crypto";
|
|
17
|
+
import { HookRunTable } from "../entity/hook.js";
|
|
18
|
+
import { assertSqlIdentifier } from "../sql/sql.js";
|
|
19
|
+
import { BaseRepository } from "./base.js";
|
|
20
|
+
/**
|
|
21
|
+
* Quote a column that is declared by the table metadata.
|
|
22
|
+
*
|
|
23
|
+
* @param meta - Table metadata.
|
|
24
|
+
* @param column - Column name.
|
|
25
|
+
* @returns Double-quoted column name.
|
|
26
|
+
*/
|
|
27
|
+
const quoted = (meta, column) => {
|
|
28
|
+
if (!meta.columns.includes(column)) {
|
|
29
|
+
throw new Error(`unknown column for ${meta.table}: ${column}`);
|
|
30
|
+
}
|
|
31
|
+
return `"${assertSqlIdentifier(column)}"`;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Build a bound `column = ?` conjunction from declared columns.
|
|
35
|
+
*
|
|
36
|
+
* @param meta - Table metadata.
|
|
37
|
+
* @param columns - Column names in bind order.
|
|
38
|
+
* @returns SQL fragment with one placeholder per column.
|
|
39
|
+
*/
|
|
40
|
+
const conditions = (meta, columns) => columns.map((column) => `${quoted(meta, column)} = ?`).join(" AND ");
|
|
41
|
+
/**
|
|
42
|
+
* Generate a run id: `run.` plus 16 random hex characters.
|
|
43
|
+
*
|
|
44
|
+
* @returns Opaque run id.
|
|
45
|
+
*/
|
|
46
|
+
const newRunId = () => `run.${randomBytes(8).toString("hex")}`;
|
|
47
|
+
/**
|
|
48
|
+
* Repository for `hook_runs`.
|
|
49
|
+
*/
|
|
50
|
+
export class HookRepository extends BaseRepository {
|
|
51
|
+
/**
|
|
52
|
+
* Create the repository.
|
|
53
|
+
*
|
|
54
|
+
* @param db - Open SQLite connection.
|
|
55
|
+
*/
|
|
56
|
+
constructor(db) {
|
|
57
|
+
super(db, HookRunTable);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Append one hook run. The row is immutable afterwards; a retry is a new
|
|
61
|
+
* run with a new id, not an update of the old row.
|
|
62
|
+
*
|
|
63
|
+
* @param entry - Run entry produced by `Hook.run`.
|
|
64
|
+
*/
|
|
65
|
+
append(entry) {
|
|
66
|
+
this.insert({
|
|
67
|
+
run_id: newRunId(),
|
|
68
|
+
session_id: entry.sessionId,
|
|
69
|
+
hook: entry.hook,
|
|
70
|
+
path: entry.path ?? null,
|
|
71
|
+
status: entry.status,
|
|
72
|
+
error: entry.error ?? null,
|
|
73
|
+
revision: entry.revision,
|
|
74
|
+
input_digest: entry.inputDigest,
|
|
75
|
+
output_digest: entry.outputDigest,
|
|
76
|
+
started_at: entry.startedAt,
|
|
77
|
+
duration_ms: entry.durationMs,
|
|
78
|
+
meta_json: "{}",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Read one session's runs, newest first.
|
|
83
|
+
*
|
|
84
|
+
* @param sessionId - Session handle.
|
|
85
|
+
* @param limit - Maximum rows; zero is allowed and returns nothing.
|
|
86
|
+
* @returns Run rows.
|
|
87
|
+
*/
|
|
88
|
+
list(sessionId, limit) {
|
|
89
|
+
if (!Number.isInteger(limit) || limit < 0) {
|
|
90
|
+
throw new RangeError("limit must be a non-negative integer");
|
|
91
|
+
}
|
|
92
|
+
return this.queries.select({
|
|
93
|
+
where: conditions(HookRunTable, ["session_id"]),
|
|
94
|
+
params: [sessionId],
|
|
95
|
+
orderBy: `ORDER BY ${quoted(HookRunTable, "started_at")} DESC, ${quoted(HookRunTable, "run_id")} DESC`,
|
|
96
|
+
limit,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Count one session's runs. With no argument it counts the whole table.
|
|
101
|
+
* The trailing `params` keeps the inherited `count(clause, ...params)`
|
|
102
|
+
* behaviour available when a caller passes bound values; a lone string is
|
|
103
|
+
* interpreted as a session id because that is this repository's contract.
|
|
104
|
+
*
|
|
105
|
+
* @param sessionId - Session handle, empty for every row, or a WHERE clause
|
|
106
|
+
* when `params` is non-empty.
|
|
107
|
+
* @param params - Bound values for the inherited clause form.
|
|
108
|
+
* @returns Number of matching runs.
|
|
109
|
+
*/
|
|
110
|
+
count(sessionId = "", ...params) {
|
|
111
|
+
if (params.length > 0) {
|
|
112
|
+
return super.count(sessionId, ...params);
|
|
113
|
+
}
|
|
114
|
+
if (sessionId.length === 0) {
|
|
115
|
+
return super.count();
|
|
116
|
+
}
|
|
117
|
+
return super.count(`${quoted(HookRunTable, "session_id")} = ?`, sessionId);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Hook recorder backed by a SQLite repository.
|
|
122
|
+
*
|
|
123
|
+
* A recorder instance owns one repository over the injected connection; it does
|
|
124
|
+
* not open, migrate or close the store. `record` never throws, by contract.
|
|
125
|
+
*/
|
|
126
|
+
export class SqliteHookRecorder {
|
|
127
|
+
repository;
|
|
128
|
+
/**
|
|
129
|
+
* Create a recorder.
|
|
130
|
+
*
|
|
131
|
+
* @param db - Open SQLite connection with the `hook_runs` table.
|
|
132
|
+
*/
|
|
133
|
+
constructor(db) {
|
|
134
|
+
this.repository = new HookRepository(db);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Append one entry. A repository failure is swallowed so the hook result is
|
|
138
|
+
* unaffected.
|
|
139
|
+
*
|
|
140
|
+
* @param entry - Run entry.
|
|
141
|
+
*/
|
|
142
|
+
record(entry) {
|
|
143
|
+
try {
|
|
144
|
+
this.repository.append(entry);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -18,3 +18,10 @@ export { OutboxRepository } from "./outboxRepository.js";
|
|
|
18
18
|
export { RuntimeSessionRepository } from "./runtimeSessionRepository.js";
|
|
19
19
|
export { RuntimeTurnRepository } from "./runtimeTurnRepository.js";
|
|
20
20
|
export { RuntimeApprovalRepository } from "./runtimeApprovalRepository.js";
|
|
21
|
+
export { WorkspaceSessionRepository } from "./workspaceSessionRepository.js";
|
|
22
|
+
export { FileNodeRepository } from "./fileNodeRepository.js";
|
|
23
|
+
export { FileAnnotationRepository } from "./fileAnnotationRepository.js";
|
|
24
|
+
export { FileWriteRepository } from "./fileWriteRepository.js";
|
|
25
|
+
export { FileOutlineRepository } from "./fileOutlineRepository.js";
|
|
26
|
+
export { FileGraphRepository } from "./fileGraphRepository.js";
|
|
27
|
+
export { HookRepository, SqliteHookRecorder } from "./hookRepository.js";
|
|
@@ -15,3 +15,10 @@ export { OutboxRepository } from "./outboxRepository.js";
|
|
|
15
15
|
export { RuntimeSessionRepository } from "./runtimeSessionRepository.js";
|
|
16
16
|
export { RuntimeTurnRepository } from "./runtimeTurnRepository.js";
|
|
17
17
|
export { RuntimeApprovalRepository } from "./runtimeApprovalRepository.js";
|
|
18
|
+
export { WorkspaceSessionRepository } from "./workspaceSessionRepository.js";
|
|
19
|
+
export { FileNodeRepository } from "./fileNodeRepository.js";
|
|
20
|
+
export { FileAnnotationRepository } from "./fileAnnotationRepository.js";
|
|
21
|
+
export { FileWriteRepository } from "./fileWriteRepository.js";
|
|
22
|
+
export { FileOutlineRepository } from "./fileOutlineRepository.js";
|
|
23
|
+
export { FileGraphRepository } from "./fileGraphRepository.js";
|
|
24
|
+
export { HookRepository, SqliteHookRecorder } from "./hookRepository.js";
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite repository for workspace sessions, their authorized roots and their
|
|
3
|
+
* private context.
|
|
4
|
+
*
|
|
5
|
+
* The descriptor lives in `workspace_sessions`; roots are normalized into
|
|
6
|
+
* `session_roots` so an authorization query never parses JSON, and context
|
|
7
|
+
* entries use the deterministic `sessionId + "\0" + namespace + "\0" + key`
|
|
8
|
+
* entry id. Multi-row writes run in a transaction, so a reader never observes a
|
|
9
|
+
* session with half of its roots or a half-replaced context.
|
|
10
|
+
*/
|
|
11
|
+
import type { DatabaseSync } from "node:sqlite";
|
|
12
|
+
import type { SessionContextEntry, SessionDescriptor, SessionId, SessionRoot } from "../../session/types.js";
|
|
13
|
+
import type { WorkspaceSessionRow } from "../entity/workspaceSession.js";
|
|
14
|
+
import { BaseRepository } from "./base.js";
|
|
15
|
+
/**
|
|
16
|
+
* Repository for `workspace_sessions`, `session_roots` and `session_context`.
|
|
17
|
+
*/
|
|
18
|
+
export declare class WorkspaceSessionRepository extends BaseRepository<WorkspaceSessionRow, string> {
|
|
19
|
+
private readonly rootsSql;
|
|
20
|
+
private readonly contextSql;
|
|
21
|
+
/**
|
|
22
|
+
* Create the repository.
|
|
23
|
+
*
|
|
24
|
+
* @param db - Open SQLite connection.
|
|
25
|
+
*/
|
|
26
|
+
constructor(db: DatabaseSync);
|
|
27
|
+
/**
|
|
28
|
+
* Insert or replace one session descriptor and its roots in one transaction.
|
|
29
|
+
*
|
|
30
|
+
* `permissions` and `metadata` are persisted as canonical JSON; `status` is
|
|
31
|
+
* validated before the write. Roots are replaced (delete, then insert) so a
|
|
32
|
+
* removed grant cannot survive a resave.
|
|
33
|
+
*
|
|
34
|
+
* @param descriptor - Public session record.
|
|
35
|
+
* @param tokenHash - `sha256:<hex>` bearer digest; never the token itself.
|
|
36
|
+
* @throws Error when the status is outside the closed lifecycle.
|
|
37
|
+
*/
|
|
38
|
+
save(descriptor: SessionDescriptor, tokenHash: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Load one descriptor with its roots.
|
|
41
|
+
*
|
|
42
|
+
* @param sessionId - Session handle.
|
|
43
|
+
* @returns Descriptor, or `undefined` when the session is unknown.
|
|
44
|
+
*/
|
|
45
|
+
load(sessionId: SessionId): SessionDescriptor | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Read the persisted bearer digest for authentication after a restart.
|
|
48
|
+
*
|
|
49
|
+
* @param sessionId - Session handle.
|
|
50
|
+
* @returns Token hash, or `undefined` when the session is unknown.
|
|
51
|
+
*/
|
|
52
|
+
loadSecret(sessionId: SessionId): string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Delete one session with its roots and context in one transaction.
|
|
55
|
+
*
|
|
56
|
+
* The boolean overload is the domain contract used by {@link SessionStore};
|
|
57
|
+
* the numeric overload mirrors `BaseRepository.delete` so the class remains
|
|
58
|
+
* substitutable for the generated CRUD base.
|
|
59
|
+
*
|
|
60
|
+
* @param sessionId - Session handle.
|
|
61
|
+
* @returns `true` when a session row was removed.
|
|
62
|
+
*/
|
|
63
|
+
delete(sessionId: SessionId): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Base-repository compatible delete overload.
|
|
66
|
+
*
|
|
67
|
+
* @param id - Session handle.
|
|
68
|
+
* @returns Number of removed session rows.
|
|
69
|
+
*/
|
|
70
|
+
delete(id: string): number;
|
|
71
|
+
/**
|
|
72
|
+
* List sessions, optionally narrowed to one agent.
|
|
73
|
+
*
|
|
74
|
+
* @param agentId - Optional host-assigned agent identity.
|
|
75
|
+
* @returns Descriptors ordered by creation time and id.
|
|
76
|
+
*/
|
|
77
|
+
list(agentId?: string): SessionDescriptor[];
|
|
78
|
+
/**
|
|
79
|
+
* Read the authorized roots of one session.
|
|
80
|
+
*
|
|
81
|
+
* @param sessionId - Session handle.
|
|
82
|
+
* @returns Roots ordered by host path.
|
|
83
|
+
*/
|
|
84
|
+
findRoots(sessionId: SessionId): SessionRoot[];
|
|
85
|
+
/**
|
|
86
|
+
* Read every context entry of one session.
|
|
87
|
+
*
|
|
88
|
+
* @param sessionId - Session handle.
|
|
89
|
+
* @returns Entries ordered by namespace and key.
|
|
90
|
+
*/
|
|
91
|
+
loadContext(sessionId: SessionId): SessionContextEntry[];
|
|
92
|
+
/**
|
|
93
|
+
* Insert or replace one context entry.
|
|
94
|
+
*
|
|
95
|
+
* The value is stored as canonical JSON; `bytes` is the caller's canonical
|
|
96
|
+
* size and is persisted as given so quota accounting stays reproducible.
|
|
97
|
+
*
|
|
98
|
+
* @param sessionId - Session handle.
|
|
99
|
+
* @param entry - Context entry.
|
|
100
|
+
* @throws Error when the session id, namespace or key contains NUL.
|
|
101
|
+
* @throws RangeError when `bytes` is not a non-negative integer.
|
|
102
|
+
* @throws TypeError when the value cannot round-trip through canonical JSON.
|
|
103
|
+
*/
|
|
104
|
+
putContext(sessionId: SessionId, entry: SessionContextEntry): void;
|
|
105
|
+
/**
|
|
106
|
+
* Delete one context entry.
|
|
107
|
+
*
|
|
108
|
+
* @param sessionId - Session handle.
|
|
109
|
+
* @param namespace - Context namespace.
|
|
110
|
+
* @param key - Namespace-local key.
|
|
111
|
+
* @returns `true` when an entry was removed.
|
|
112
|
+
*/
|
|
113
|
+
deleteContext(sessionId: SessionId, namespace: string, key: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Delete every context entry of one session.
|
|
116
|
+
*
|
|
117
|
+
* @param sessionId - Session handle.
|
|
118
|
+
*/
|
|
119
|
+
deleteContextSession(sessionId: SessionId): void;
|
|
120
|
+
/**
|
|
121
|
+
* Atomically replace the whole context of one session.
|
|
122
|
+
*
|
|
123
|
+
* @param sessionId - Session handle.
|
|
124
|
+
* @param entries - Complete new entry set.
|
|
125
|
+
*/
|
|
126
|
+
replaceContext(sessionId: SessionId, entries: readonly SessionContextEntry[]): void;
|
|
127
|
+
/**
|
|
128
|
+
* Convert one row plus its roots into the public descriptor.
|
|
129
|
+
*
|
|
130
|
+
* @param row - Session row.
|
|
131
|
+
* @returns Descriptor; `parentId` is present only when the row has a parent.
|
|
132
|
+
*/
|
|
133
|
+
private toDescriptor;
|
|
134
|
+
}
|