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,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public surface of the hook layer.
|
|
3
|
+
*
|
|
4
|
+
* The concrete `use*` hooks and their shared types are exported here. Each
|
|
5
|
+
* module has its own `useParse` read helper, so those collide by design; they
|
|
6
|
+
* are re-exported under module-qualified names (`useCodeParse`,
|
|
7
|
+
* `useProjectParse`, ...) and the original name remains available from the
|
|
8
|
+
* module itself.
|
|
9
|
+
*
|
|
10
|
+
* `createHook` is re-exported explicitly because it is the extension point a
|
|
11
|
+
* host uses to add a hook without changing this package.
|
|
12
|
+
*/
|
|
13
|
+
export * from "./types.js";
|
|
14
|
+
export * from "./diff.js";
|
|
15
|
+
export * from "./file.js";
|
|
16
|
+
export { createHook } from "./types.js";
|
|
17
|
+
export { useDependency, useParse as useDependencyParse } from "./dependency.js";
|
|
18
|
+
export { useExportation, useParse as useExportationParse } from "./exportation.js";
|
|
19
|
+
export { useImportation, useParse as useImportationParse } from "./importation.js";
|
|
20
|
+
export { useOutline, useParse as useOutlineParse } from "./outline.js";
|
|
21
|
+
export { useAst, useParse as useAstParse } from "./ast.js";
|
|
22
|
+
export { useCode, useParse as useCodeParse } from "./code.js";
|
|
23
|
+
export { projectKindOf, useProject, useParse as useProjectParse } from "./project.js";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outline hooks.
|
|
3
|
+
*
|
|
4
|
+
* The parse helper accepts the full filesystem `OutlineOptions`, but only the
|
|
5
|
+
* options the service request can express are forwarded: `maxNodes`,
|
|
6
|
+
* `maxDepth` and `symbols`. `anchor` is an internal optimisation the service
|
|
7
|
+
* owns and a caller cannot supply through the tool surface, so it is ignored
|
|
8
|
+
* rather than forging a cached node.
|
|
9
|
+
*
|
|
10
|
+
* `useOutline` forwards the complete `OutlineRequest`, including `query`,
|
|
11
|
+
* `startLine` and `endLine`, because those are caller-visible filters.
|
|
12
|
+
*/
|
|
13
|
+
import type { OutlineOptions } from "../outline/outline.js";
|
|
14
|
+
import type { OutlineRequest } from "../file/service.js";
|
|
15
|
+
import type { OutlineResult } from "../outline/types.js";
|
|
16
|
+
import type { Hook, HookOptions, HookSession } from "./types.js";
|
|
17
|
+
/**
|
|
18
|
+
* Parse helper shape. `options` bounds the outline; `anchor` is not forwarded.
|
|
19
|
+
*/
|
|
20
|
+
export type OutlineParse = (path: string, options?: OutlineOptions) => OutlineResult;
|
|
21
|
+
/**
|
|
22
|
+
* Read the outline of one file or directory.
|
|
23
|
+
*
|
|
24
|
+
* @param session - Bound filesystem session.
|
|
25
|
+
* @returns Parse helper.
|
|
26
|
+
*/
|
|
27
|
+
export declare const useParse: (session: HookSession) => OutlineParse;
|
|
28
|
+
/**
|
|
29
|
+
* Outline hook.
|
|
30
|
+
*
|
|
31
|
+
* @param session - Bound filesystem session.
|
|
32
|
+
* @param options - Recorder and cache options.
|
|
33
|
+
* @returns Hook producing one outline result.
|
|
34
|
+
*/
|
|
35
|
+
export declare const useOutline: (session: HookSession, options?: HookOptions) => Hook<OutlineRequest, OutlineResult>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createHook } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read the outline of one file or directory.
|
|
4
|
+
*
|
|
5
|
+
* @param session - Bound filesystem session.
|
|
6
|
+
* @returns Parse helper.
|
|
7
|
+
*/
|
|
8
|
+
export const useParse = (session) => (path, options = {}) => session.outline({
|
|
9
|
+
path,
|
|
10
|
+
...(options.maxNodes === (void 0) ? {} : { maxNodes: options.maxNodes }),
|
|
11
|
+
...(options.maxDepth === (void 0) ? {} : { maxDepth: options.maxDepth }),
|
|
12
|
+
...(options.symbols === (void 0) ? {} : { symbols: options.symbols }),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Outline hook.
|
|
16
|
+
*
|
|
17
|
+
* @param session - Bound filesystem session.
|
|
18
|
+
* @param options - Recorder and cache options.
|
|
19
|
+
* @returns Hook producing one outline result.
|
|
20
|
+
*/
|
|
21
|
+
export const useOutline = (session, options = {}) => createHook({
|
|
22
|
+
name: "outline",
|
|
23
|
+
session,
|
|
24
|
+
execute: (request) => session.outline(request),
|
|
25
|
+
pathOf: (request) => request.path,
|
|
26
|
+
options,
|
|
27
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project manifest hook.
|
|
3
|
+
*
|
|
4
|
+
* A project model answers the three questions an agent has before reading a
|
|
5
|
+
* build file: which ecosystem is this, what is it called and what does it
|
|
6
|
+
* declare. The ecosystem is a pure function of the file name. The name and
|
|
7
|
+
* version are extracted with the smallest possible parser: `JSON.parse` for
|
|
8
|
+
* `package.json` and a line regex for TOML manifests. A failed or missing
|
|
9
|
+
* manifest simply leaves those two fields out; it never fails the model,
|
|
10
|
+
* because the outline and the dependency report are still useful.
|
|
11
|
+
*
|
|
12
|
+
* `manifestOutline` comes from `session.outline` and `dependencies` from
|
|
13
|
+
* `session.dependency` with the manifest path as the root. Both are read-only;
|
|
14
|
+
* the hook layer never runs a package manager, a build tool or a resolver.
|
|
15
|
+
*/
|
|
16
|
+
import type { DependencyReport } from "../file/types.js";
|
|
17
|
+
import type { OutlineResult } from "../outline/types.js";
|
|
18
|
+
import type { Hook, HookOptions, HookSession } from "./types.js";
|
|
19
|
+
/**
|
|
20
|
+
* Build ecosystem recognized by the project hook.
|
|
21
|
+
*/
|
|
22
|
+
export type ProjectKind = "npm" | "maven" | "gradle" | "cmake" | "cargo" | "go" | "python" | "make" | "unknown";
|
|
23
|
+
/**
|
|
24
|
+
* Model of one project manifest.
|
|
25
|
+
*/
|
|
26
|
+
export interface ProjectModel {
|
|
27
|
+
readonly path: string;
|
|
28
|
+
readonly kind: ProjectKind;
|
|
29
|
+
readonly name?: string;
|
|
30
|
+
readonly version?: string;
|
|
31
|
+
readonly manifestOutline: OutlineResult;
|
|
32
|
+
readonly dependencies: DependencyReport;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Request accepted by `useProject`.
|
|
36
|
+
*/
|
|
37
|
+
export interface ProjectRequest {
|
|
38
|
+
readonly path: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parse helper shape: one manifest path in, one project model out.
|
|
42
|
+
*/
|
|
43
|
+
export type ProjectParse = (path: string) => ProjectModel;
|
|
44
|
+
/**
|
|
45
|
+
* Recognize a project manifest by file name.
|
|
46
|
+
*
|
|
47
|
+
* @param path - Root-relative path.
|
|
48
|
+
* @returns Ecosystem tag, or `unknown`.
|
|
49
|
+
*/
|
|
50
|
+
export declare const projectKindOf: (path: string) => ProjectKind;
|
|
51
|
+
/**
|
|
52
|
+
* Read the project model for one manifest path.
|
|
53
|
+
*
|
|
54
|
+
* @param session - Bound filesystem session.
|
|
55
|
+
* @returns Parse helper.
|
|
56
|
+
*/
|
|
57
|
+
export declare const useParse: (session: HookSession) => ProjectParse;
|
|
58
|
+
/**
|
|
59
|
+
* Project hook.
|
|
60
|
+
*
|
|
61
|
+
* @param session - Bound filesystem session.
|
|
62
|
+
* @param options - Recorder and cache options.
|
|
63
|
+
* @returns Hook producing one project model.
|
|
64
|
+
*/
|
|
65
|
+
export declare const useProject: (session: HookSession, options?: HookOptions) => Hook<ProjectRequest, ProjectModel>;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { createHook } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Leading lines read for name/version extraction. Manifests put their identity
|
|
4
|
+
* near the top; a larger read would only add latency to a model that does not
|
|
5
|
+
* otherwise need the text.
|
|
6
|
+
*/
|
|
7
|
+
const ManifestLines = 400;
|
|
8
|
+
/**
|
|
9
|
+
* Byte budget for the same read.
|
|
10
|
+
*/
|
|
11
|
+
const ManifestBytes = 256 * 1024;
|
|
12
|
+
/**
|
|
13
|
+
* Manifest file name to ecosystem. The map is exact-case; `makefile` and
|
|
14
|
+
* `GNUmakefile` are included because GNU make accepts them as canonical names.
|
|
15
|
+
*/
|
|
16
|
+
const ProjectKinds = new Map([
|
|
17
|
+
["package.json", "npm"],
|
|
18
|
+
["pom.xml", "maven"],
|
|
19
|
+
["build.gradle", "gradle"],
|
|
20
|
+
["build.gradle.kts", "gradle"],
|
|
21
|
+
["CMakeLists.txt", "cmake"],
|
|
22
|
+
["Cargo.toml", "cargo"],
|
|
23
|
+
["go.mod", "go"],
|
|
24
|
+
["pyproject.toml", "python"],
|
|
25
|
+
["Makefile", "make"],
|
|
26
|
+
["makefile", "make"],
|
|
27
|
+
["GNUmakefile", "make"],
|
|
28
|
+
]);
|
|
29
|
+
/**
|
|
30
|
+
* TOML sections that are allowed to declare the package identity. Dependency
|
|
31
|
+
* tables also contain `name` keys (for example a Cargo dependency alias), so a
|
|
32
|
+
* section check is what keeps a dependency from renaming the project.
|
|
33
|
+
*/
|
|
34
|
+
const IdentitySections = new Set(["package", "project", "tool.poetry", "tool.pdm", "tool.flit.metadata"]);
|
|
35
|
+
/**
|
|
36
|
+
* TOML table header, single or array form.
|
|
37
|
+
*/
|
|
38
|
+
const TomlSection = /^\s*\[\[?([^\]]+)\]\]?\s*(?:#.*)?$/;
|
|
39
|
+
/**
|
|
40
|
+
* TOML `name`/`version` assignment with a basic or literal string value.
|
|
41
|
+
*/
|
|
42
|
+
const TomlField = /^\s*(name|version)\s*=\s*(?:"([^"]*)"|'([^']*)')\s*(?:#.*)?$/;
|
|
43
|
+
/**
|
|
44
|
+
* Leaf name of a root-relative path.
|
|
45
|
+
*
|
|
46
|
+
* @param path - POSIX path.
|
|
47
|
+
* @returns Last segment.
|
|
48
|
+
*/
|
|
49
|
+
const baseNameOf = (path) => {
|
|
50
|
+
const slash = path.lastIndexOf("/");
|
|
51
|
+
return slash === -1 ? path : path.slice(slash + 1);
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Recognize a project manifest by file name.
|
|
55
|
+
*
|
|
56
|
+
* @param path - Root-relative path.
|
|
57
|
+
* @returns Ecosystem tag, or `unknown`.
|
|
58
|
+
*/
|
|
59
|
+
export const projectKindOf = (path) => ProjectKinds.get(baseNameOf(path)) ?? "unknown";
|
|
60
|
+
/**
|
|
61
|
+
* Extract `name`/`version` from a JSON manifest. A malformed document or a
|
|
62
|
+
* non-string field is ignored rather than reported.
|
|
63
|
+
*
|
|
64
|
+
* @param text - Whole manifest text.
|
|
65
|
+
* @returns Identity fields that were present as non-empty strings.
|
|
66
|
+
*/
|
|
67
|
+
const jsonIdentity = (text) => {
|
|
68
|
+
try {
|
|
69
|
+
const value = JSON.parse(text);
|
|
70
|
+
if (value === null || typeof (value) !== "object" || Array.isArray(value)) {
|
|
71
|
+
return {};
|
|
72
|
+
}
|
|
73
|
+
const record = value;
|
|
74
|
+
const name = record.name;
|
|
75
|
+
const version = record.version;
|
|
76
|
+
return {
|
|
77
|
+
...(typeof (name) === "string" && name.length > 0 ? { name } : {}),
|
|
78
|
+
...(typeof (version) === "string" && version.length > 0 ? { version } : {}),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return {};
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Extract `name`/`version` from a TOML manifest with a section-aware line
|
|
87
|
+
* scanner. This stays a deliberate simplification (no multi-line strings or
|
|
88
|
+
* dotted keys), but it accepts both TOML string forms and only reads the
|
|
89
|
+
* `[package]`/`[project]`/poetry tables, so a dependency named `name` cannot
|
|
90
|
+
* shadow the project identity.
|
|
91
|
+
*
|
|
92
|
+
* @param text - Whole manifest text.
|
|
93
|
+
* @returns Identity fields that were present.
|
|
94
|
+
*/
|
|
95
|
+
const tomlIdentity = (text) => {
|
|
96
|
+
let section = "";
|
|
97
|
+
let name;
|
|
98
|
+
let version;
|
|
99
|
+
const lines = text.split("\n");
|
|
100
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
101
|
+
const line = lines[index];
|
|
102
|
+
const sectionMatch = TomlSection.exec(line);
|
|
103
|
+
if (sectionMatch !== null) {
|
|
104
|
+
section = sectionMatch[1].trim();
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (!IdentitySections.has(section)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const fieldMatch = TomlField.exec(line);
|
|
111
|
+
if (fieldMatch === null) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const value = fieldMatch[2] !== (void 0) ? fieldMatch[2] : fieldMatch[3];
|
|
115
|
+
if (value.length === 0) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (fieldMatch[1] === "name" && name === (void 0)) {
|
|
119
|
+
name = value;
|
|
120
|
+
}
|
|
121
|
+
else if (fieldMatch[1] === "version" && version === (void 0)) {
|
|
122
|
+
version = value;
|
|
123
|
+
}
|
|
124
|
+
if (name !== (void 0) && version !== (void 0)) {
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
...(name === (void 0) ? {} : { name }),
|
|
130
|
+
...(version === (void 0) ? {} : { version }),
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Choose the identity extractor by ecosystem.
|
|
135
|
+
*
|
|
136
|
+
* @param kind - Recognized ecosystem.
|
|
137
|
+
* @param text - Manifest text, or `""` when it could not be read.
|
|
138
|
+
* @returns Identity fields.
|
|
139
|
+
*/
|
|
140
|
+
const identityOf = (kind, text) => {
|
|
141
|
+
if (text.length === 0) {
|
|
142
|
+
return {};
|
|
143
|
+
}
|
|
144
|
+
switch (kind) {
|
|
145
|
+
case "npm": {
|
|
146
|
+
return jsonIdentity(text);
|
|
147
|
+
}
|
|
148
|
+
case "cargo":
|
|
149
|
+
case "python": {
|
|
150
|
+
return tomlIdentity(text);
|
|
151
|
+
}
|
|
152
|
+
default: {
|
|
153
|
+
return {};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Read the declaration text of a manifest, returning `""` on any failure. The
|
|
159
|
+
* outline call that follows still surfaces a missing or unreadable file, so
|
|
160
|
+
* this swallow only affects the optional name/version fields.
|
|
161
|
+
*
|
|
162
|
+
* @param session - Bound filesystem session.
|
|
163
|
+
* @param path - Root-relative manifest path.
|
|
164
|
+
* @returns Decoded text or `""`.
|
|
165
|
+
*/
|
|
166
|
+
const readManifest = (session, path) => {
|
|
167
|
+
try {
|
|
168
|
+
const page = session.read({ path, maxLines: ManifestLines, maxBytes: ManifestBytes });
|
|
169
|
+
return page.text;
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return "";
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Assemble one project model.
|
|
177
|
+
*
|
|
178
|
+
* @param session - Bound filesystem session.
|
|
179
|
+
* @param path - Root-relative manifest path.
|
|
180
|
+
* @returns Project model.
|
|
181
|
+
*/
|
|
182
|
+
const projectModelOf = (session, path) => {
|
|
183
|
+
const kind = projectKindOf(path);
|
|
184
|
+
const text = kind === "unknown" ? "" : readManifest(session, path);
|
|
185
|
+
const identity = identityOf(kind, text);
|
|
186
|
+
const manifestOutline = session.outline({ path });
|
|
187
|
+
const dependencies = session.dependency({ mode: "dependencies", roots: [path] });
|
|
188
|
+
return {
|
|
189
|
+
path,
|
|
190
|
+
kind,
|
|
191
|
+
...(identity.name === (void 0) ? {} : { name: identity.name }),
|
|
192
|
+
...(identity.version === (void 0) ? {} : { version: identity.version }),
|
|
193
|
+
manifestOutline,
|
|
194
|
+
dependencies,
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Read the project model for one manifest path.
|
|
199
|
+
*
|
|
200
|
+
* @param session - Bound filesystem session.
|
|
201
|
+
* @returns Parse helper.
|
|
202
|
+
*/
|
|
203
|
+
export const useParse = (session) => (path) => projectModelOf(session, path);
|
|
204
|
+
/**
|
|
205
|
+
* Project hook.
|
|
206
|
+
*
|
|
207
|
+
* @param session - Bound filesystem session.
|
|
208
|
+
* @param options - Recorder and cache options.
|
|
209
|
+
* @returns Hook producing one project model.
|
|
210
|
+
*/
|
|
211
|
+
export const useProject = (session, options = {}) => createHook({
|
|
212
|
+
name: "project",
|
|
213
|
+
session,
|
|
214
|
+
execute: (request) => projectModelOf(session, request.path),
|
|
215
|
+
pathOf: (request) => request.path,
|
|
216
|
+
options,
|
|
217
|
+
});
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { FilesystemSession } from "../file/service.js";
|
|
2
|
+
import type { FilesystemToolErrorCode } from "../protocol/filesystem.js";
|
|
3
|
+
/**
|
|
4
|
+
* Lifecycle of one hook. `ready` and `error` are both terminal for a single
|
|
5
|
+
* `run`; a later `run` starts again from `loading`.
|
|
6
|
+
*/
|
|
7
|
+
export type HookStatus = "idle" | "loading" | "ready" | "error";
|
|
8
|
+
/**
|
|
9
|
+
* Error surface of a hook. Domain failures keep their filesystem/session code;
|
|
10
|
+
* a malformed hook request is reported as `invalid_arguments`.
|
|
11
|
+
*/
|
|
12
|
+
export type HookErrorCode = FilesystemToolErrorCode | "invalid_arguments";
|
|
13
|
+
/**
|
|
14
|
+
* Observable hook state. `revision` is the workspace revision the value (or
|
|
15
|
+
* failure) was observed at; an `idle` state keeps the revision of the previous
|
|
16
|
+
* run so a caller does not lose the coordinate when resetting a view.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam T - Value produced by a successful run.
|
|
19
|
+
*/
|
|
20
|
+
export interface HookState<T> {
|
|
21
|
+
readonly status: HookStatus;
|
|
22
|
+
readonly value?: T;
|
|
23
|
+
readonly error?: HookErrorCode;
|
|
24
|
+
readonly revision: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* One audit row for a hook run. Digests are `sha256:` values of the canonical
|
|
28
|
+
* request and (on success) the canonical output; `startedAt` is an ISO
|
|
29
|
+
* timestamp and `durationMs` is wall-clock milliseconds.
|
|
30
|
+
*/
|
|
31
|
+
export interface HookRunEntry {
|
|
32
|
+
readonly hook: string;
|
|
33
|
+
readonly sessionId: string;
|
|
34
|
+
readonly path?: string;
|
|
35
|
+
readonly status: HookStatus;
|
|
36
|
+
readonly error?: HookErrorCode;
|
|
37
|
+
readonly revision: string;
|
|
38
|
+
readonly startedAt: string;
|
|
39
|
+
readonly durationMs: number;
|
|
40
|
+
readonly inputDigest: string;
|
|
41
|
+
readonly outputDigest: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Persistence port for run entries. A recorder is fire-and-forget from the
|
|
45
|
+
* hook's point of view: the hook catches recorder failures so an audit sink
|
|
46
|
+
* outage cannot turn a successful read into a failed one.
|
|
47
|
+
*/
|
|
48
|
+
export interface HookRecorder {
|
|
49
|
+
record(entry: HookRunEntry): void;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Per-hook options. `cache` is opt-in because a request-only cache key cannot
|
|
53
|
+
* know that a file changed on disk; hosts that enable it accept that trade-off.
|
|
54
|
+
* `maxCacheEntries` is clamped to a positive bound instead of being trusted.
|
|
55
|
+
*/
|
|
56
|
+
export interface HookOptions {
|
|
57
|
+
readonly recorder?: HookRecorder;
|
|
58
|
+
readonly cache?: boolean;
|
|
59
|
+
readonly maxCacheEntries?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The slice of `FilesystemSession` a hook needs. Kept as a structural `Pick`
|
|
63
|
+
* instead of importing the concrete class so a test double with the same typed
|
|
64
|
+
* methods works, and so the dependency direction stays `hook -> filesystem`.
|
|
65
|
+
*/
|
|
66
|
+
export type HookSession = Pick<FilesystemSession, "sessionId" | "descriptor" | "read" | "write" | "outline" | "imports" | "exports" | "dependency" | "ast" | "revision">;
|
|
67
|
+
/**
|
|
68
|
+
* One observable hook. `run` returns the state it produced, which lets a caller
|
|
69
|
+
* use the direct return value without waiting for the subscription callback.
|
|
70
|
+
*
|
|
71
|
+
* @typeParam TRequest - Request accepted by `run`.
|
|
72
|
+
* @typeParam TResult - Value produced by a successful run.
|
|
73
|
+
*/
|
|
74
|
+
export interface Hook<TRequest, TResult> {
|
|
75
|
+
readonly state: HookState<TResult>;
|
|
76
|
+
run(request: TRequest): Promise<HookState<TResult>>;
|
|
77
|
+
subscribe(listener: (state: HookState<TResult>) => void): () => void;
|
|
78
|
+
reset(): void;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Definition consumed by {@link createHook}. `pathOf` supplies the optional
|
|
82
|
+
* path recorded in the run entry; `revisionOf` overrides the default revision
|
|
83
|
+
* read (`session.revision()`), which is what a write needs because its result
|
|
84
|
+
* already carries the post-write revision.
|
|
85
|
+
*
|
|
86
|
+
* @typeParam TRequest - Request accepted by `run`.
|
|
87
|
+
* @typeParam TResult - Value produced by a successful run.
|
|
88
|
+
*/
|
|
89
|
+
export interface HookDefinition<TRequest, TResult> {
|
|
90
|
+
readonly name: string;
|
|
91
|
+
readonly session: HookSession;
|
|
92
|
+
readonly execute: (request: TRequest) => TResult | Promise<TResult>;
|
|
93
|
+
readonly pathOf?: (request: TRequest) => string | undefined;
|
|
94
|
+
readonly revisionOf?: (result: TResult) => string;
|
|
95
|
+
readonly options?: HookOptions;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Factory shape of {@link createHook}.
|
|
99
|
+
*
|
|
100
|
+
* @typeParam TRequest - Request accepted by `run`.
|
|
101
|
+
* @typeParam TResult - Value produced by a successful run.
|
|
102
|
+
*/
|
|
103
|
+
export type HookFactory = <TRequest, TResult>(definition: HookDefinition<TRequest, TResult>) => Hook<TRequest, TResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Create one observable hook from a definition. This is the shared factory the
|
|
106
|
+
* concrete `use*` hooks are built on.
|
|
107
|
+
*
|
|
108
|
+
* @typeParam TRequest - Request accepted by `run`.
|
|
109
|
+
* @typeParam TResult - Value produced by a successful run.
|
|
110
|
+
* @param definition - Name, session, executor, optional revision/path mapping
|
|
111
|
+
* and options.
|
|
112
|
+
* @returns A hook with state, subscription, reset and bounded caching.
|
|
113
|
+
*/
|
|
114
|
+
export declare const createHook: HookFactory;
|