attention-manifest-protocol 0.4.2 → 0.4.4
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/eslint.config.mts +0 -96
- package/index.html +0 -13
- 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
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -7,9 +7,42 @@
|
|
|
7
7
|
|
|
8
8
|
## [未发布]
|
|
9
9
|
|
|
10
|
+
### 新增
|
|
11
|
+
|
|
12
|
+
- Agent 工作区:`File`/`Directory` 树、分页读、CAS 原子写、策略化大纲、import/export/dependency 图与 Office(DOCX/XLSX/PPTX,DOC/XLS/PPT/PUB/ACCDB best-effort)解析。
|
|
13
|
+
- Session 模块:`ses_` 身份、一次性 bearer 令牌、TTL、暂停/撤销/rotate、fork、每会话上下文隔离与配额;SQLite 适配器 `SqliteWorkspaceSessionStore` / `SqliteWorkspaceSessionContextStore`。
|
|
14
|
+
- `src/hook` 组合层:`useRead`、`useWrite`、`useDiff`、`useParse`、`useDependency`、`useExportation`、`useImportation`、`useOutline`、`useCode`、`useProject`;除 `useWrite` 外只读,并记录 `hook_runs`。
|
|
15
|
+
- `amp_tool_filesystem_*` 十个工具与 `amp_tool_globalfs_*` 全局命名适配器;`amp_service_filesystem` / `amp_protocol_filesystem`。
|
|
16
|
+
- 无损只读语法树:`amp_tool_filesystem_ast`、`useAst`、`src/syntax/syntaxTree.ts` 与 `src/syntax/syntaxRegistry.ts`;语言/Token/节点类别由注册中心管理,全部 token 保留 UTF-8 字节与行范围,不执行目标文件。`syntaxTreeCheck` 8 例,完整 verify 135/135。
|
|
17
|
+
- SQLite 表:`workspace_sessions`、`session_roots`、`session_context`、`file_nodes`、`file_annotations`、`file_writes`、`file_outlines`、`file_imports`、`file_exports`、`file_dependencies`、`hook_runs`。
|
|
18
|
+
- 数据结构:`Trie`、`ByteLineIndex`(SegmentTree 前缀和)、`OutlineIndex`(AST + Trie + SegmentTree)。
|
|
19
|
+
- 大纲策略覆盖代码(TS/JS/Python/Java/C/C++/C#/Go/Rust)、Vue、项目清单(npm/Maven/Gradle/CMake/Cargo/Go/pyproject/Make)、文章(Markdown/TeX/plain text)、HTML/CSS/SCSS/Sass/XML/OPML 与 Office;`outlineCoverageCheck` 74 例逐项验证。
|
|
20
|
+
- 大纲关键字注册:`OutlineKeywordRegistry` 注册变量/函数/类型/导入/修饰符/控制/字面量关键字;全局变量/常量、全局函数、类属性/方法、`static` 属性/方法均成为节点,`modifiers` 返回 `static`/`public` 等链。
|
|
21
|
+
- `src/context` 新增 `ContextPackage`/`ContextBuilder`/`relevance`:预算装配、关系闭包、省略项、Trie 路径前缀与 SegmentTree 行范围。
|
|
22
|
+
- 工具源码文件名统一为 lowerCamelCase:`tools/` 下 148 个短横线文件重命名并修复全部引用,`archCheck` 增加命名规则。
|
|
23
|
+
- 职责与交互分配:`responsibility-assignment`(职责、RACI、权限/预算/窗口衰减、接受、证据验收与级联撤销)与 `interaction-binding`(参与方、协议角色、模式混合、节奏、升级与交接),附 Schema、示例、账本、`delegation`/`result-contract`/`receipt`/`message` 的可选引用,以及 `assignment-check` / `interaction-binding-check`。
|
|
24
|
+
- `src/discover`:`HostCatalog` 用于登记宿主的项目、插件、服务、工具与模块;`buildDiscoveryTree` 在获准的 workspace 快照上返回一棵有界结构树。项目节点带描述、用途与简介;文件节点带模块分类(`service`/`tool`/`controller`/`route`/`repository`/`model`/`config`/`test`/`middleware`/`component`/`util`)、扩展名与最多三条有界内容片段。新增 `amp_tool_workspace_discover` 工具供 agent 调用;`discover-check` 与 `discover-agent-check` 覆盖树、内容匹配、宿主目录、授权过滤与工具响应外层。
|
|
25
|
+
- `src/fingerprint`:对「摘要覆盖哪些内容」的唯一定义。`fingerprintBytes`、`fingerprintText`、`fingerprintString`、`fingerprintNumber`、`fingerprintJson`、`fingerprintFile`、`fingerprintFileMeta` 与 `fingerprintTree` 各自返回一个引用,携带算法、`kind`、策略、载荷大小与摘要;`verify`/`matches` 比较全部四个字段,而不是只比对裸十六进制字符串;`rawDigest`/`rawHex`/`rawTextDigest` 集中提供不带帧的内容寻址形式。目录树使用域分隔的 Merkle 叶与节点(RFC 6962 形状),并对文件的字节哈希,因此两个不同的二进制文件不再可能共用一个模块摘要。`fingerprint-check` 覆盖 47 个用例,包括与 `node:crypto` 的对拍以及历史碰撞。
|
|
26
|
+
- `src/naming`:冻结的 ID 表、带解析器与格式化器的 `amp_<kind>_<component>[_<leaf>]` 文法、v0.5 兼容别名,以及带稳定摘要的 catalog(`buildCatalog`/`verifyCatalog`)。`naming-check` 覆盖 26 个用例。
|
|
27
|
+
- `tools/fingerprintCheck.ts` 与 `tools/namingCheck.ts` 已接入 `npm run verify`;两者也都是可独立运行的脚本。
|
|
28
|
+
|
|
10
29
|
### 变更
|
|
11
30
|
|
|
12
31
|
- 将项目说明收敛到中英文 README;评测汇总只保留 JSON 格式。
|
|
32
|
+
- 工具 ID 现在为 `amp_tool_workspace_capabilities|tree|query|relations|materialize|read|release|discover`。`amp_workspace_*` 拼写在一个 minor 版本内仍作为输入别名接受,并报告在 `deprecatedAliases` 中;`tools/list` 只通告规范 ID。
|
|
33
|
+
- 工作区响应的 `protocol` 值现在为 `amp_protocol_workspace`,`serverInfo.name` 为 `amp_service_workspace`;`server/discover` 与 `initialize` 也携带 `serviceId` 与 catalog 概要。`WorkspaceProtocolAliases` 导出旧的 `amp.workspace` 值,供仍要比较它的宿主使用。
|
|
34
|
+
- 工作区协议接口从 `src/context/workspaceProtocol.ts` 移到 `src/protocol/workspace.ts`;`src/context/index.ts` 重新导出它,因此根入口不变。
|
|
35
|
+
- `canonical()` 现在拒绝未配对代理项与 `-0`,与 RFC 8785 §3.2.2.2 及附录 B 一致。确实想「把 `-0` 当作 `0`」的调用方,必须向新的 `canonicalJson` 传入 `{ negativeZero: "as-zero" }`。不含这两种形状的值产生的字节与之前完全相同。
|
|
36
|
+
- `src/fingerprint/json.ts` 委托给这个唯一的编码器,不再保留第二份 JCS 规则副本。
|
|
37
|
+
- `ContentStore` 与工作区完整性检查现在通过 `rawTextDigest`/`parseShort` 派生并校验引用,`registry/content.ts` 改为对文件字节哈希,而不是对解码后的文本哈希。只含 UTF-8 内容的目录树,其模块摘要保持不变。
|
|
38
|
+
|
|
39
|
+
### 修复
|
|
40
|
+
|
|
41
|
+
- `src/semantic/canonical.ts`、`src/fingerprint/file.ts` 与 `src/fingerprint/tree.ts` 中的非法 UTF-8 字节(损坏的长破折号)已修复,`read` 工具与严格解码器不再拒绝这些源文件。
|
|
42
|
+
- 大纲 Office 段的字节范围改为按文档序号比例映射,避免所有 section 都落在 `0..0`;`fileOutlineCheck` 覆盖该行为。
|
|
43
|
+
- Office 文件不再在 import/export/dependency 中报 `binary_file`,而是解析 hyperlink/external link/formula/embedded 引用。
|
|
44
|
+
- 对含未配对代理项的字符串哈希时,`TextEncoder` 会替换它,因而得到与 `U+FFFD` 相同的摘要。`rawTextHex`、`fingerprintString` 与严格规范化 JSON 现在拒绝该输入,而不是把两个不同的值塌缩成一个。
|
|
45
|
+
- 目录内容摘要曾由 `readFile(path, "utf8")` 计算,因此不是合法 UTF-8 的文件(例如 `0x80` 与 `0x81`)会解码成同一个替换字符并共用摘要。现在改为按字节哈希。
|
|
13
46
|
|
|
14
47
|
## [0.4.2] - 2026-10-29
|
|
15
48
|
|
|
@@ -33,7 +66,7 @@
|
|
|
33
66
|
|
|
34
67
|
### 修复
|
|
35
68
|
|
|
36
|
-
- 声明文件改用 JavaScript 扩展名。`tsc` 只会为 `.js` 输出重写相对 `.ts` 导入,因此由 `tools/
|
|
69
|
+
- 声明文件改用 JavaScript 扩展名。`tsc` 只会为 `.js` 输出重写相对 `.ts` 导入,因此由 `tools/rewriteDeclarationExtensions.ts` 重写 `.d.ts`,若仍残留 TypeScript 扩展名则构建失败。
|
|
37
70
|
|
|
38
71
|
## [0.4.0] - 2026-10-29
|
|
39
72
|
|
|
@@ -81,7 +114,7 @@
|
|
|
81
114
|
并保留八种旧场景到五种规范场景、`inspire` 到 `diverge` 的显式桥接。
|
|
82
115
|
- `docs/governance.md`、`governance.schema.json`(清单与凭据)、两个可校验示例
|
|
83
116
|
(`attention-manifest.json`、`switch-credential.json`)。
|
|
84
|
-
- `tools/
|
|
117
|
+
- `tools/governanceCheck.ts`(19 项)与 `tools/governedTaskCheck.ts`(5 项),
|
|
85
118
|
已接入 `npm run verify`。
|
|
86
119
|
- `src/runtime/governedTask.ts`:把清单验签、凭据校验、法务审计、账本扣款、黑板回执与
|
|
87
120
|
控制决策套在 `CognitiveRuntime` 外面;拒绝路径在模型调用之前返回。已用真实 DeepSeek
|
|
@@ -98,10 +131,10 @@
|
|
|
98
131
|
- 治理审计链(`src/governance/audit.ts`):清单、凭据、回执、扣款、法务、工作流、切换与
|
|
99
132
|
runtime 回合均可追加到只追加哈希链;`verify()` 检测改写/重排/截断,`open({ sink })` 重开时
|
|
100
133
|
先验链。`GovernedTask` 可注入 `audit`,结算后自动写 `runtime.turn`。
|
|
101
|
-
- `tools/
|
|
102
|
-
- `tools/
|
|
134
|
+
- `tools/auditCheck.ts`(2 项)验证跨对象记录、重开、篡改与损坏拒绝,已接入 `npm run verify`。
|
|
135
|
+
- `tools/cooperationCheck.ts`(13 项)已接入 `npm run verify`;`governance-check` 增至 21 项,
|
|
103
136
|
新增对伪造签名、负额度、冻结撤销、归档门禁、控制 NaN、未知 effect、私域引用泄漏的回归断言。
|
|
104
|
-
- `tools/
|
|
137
|
+
- `tools/liveGovernanceEval.ts`(`npm run governance-live`):接入 DeepSeek 做质量、token 与边界评测。
|
|
105
138
|
质量用确定性 rubric + 严格 judge;token 记录 input/output/cache/cost、账本扣款与预算上限;
|
|
106
139
|
边界覆盖危机升级、过期清单、过期凭据、法务冻结、预算耗尽、提示注入泄漏、多 Agent 越界与超限。
|
|
107
140
|
报告写入 `docs/probes/governance-live.json`,key 只从环境变量读取。
|
|
@@ -125,7 +158,7 @@
|
|
|
125
158
|
- 新增 `compaction.schema.json`(检查点与剪枝计划)、两个可校验示例
|
|
126
159
|
(`checkpoint.json`、`prune-plan.json`),以及含 P-1 至 P-7 不变量的
|
|
127
160
|
`docs/compaction.md`。
|
|
128
|
-
- 新增 `tools/
|
|
161
|
+
- 新增 `tools/compactionCheck.ts`(15 项断言),已接入 `npm run verify`。
|
|
129
162
|
- 概念经济。`pruneConcept()` 为一个概念的体量设上限:重复示例折叠为更典型的那条;超过
|
|
130
163
|
`maxExamples` 的示例从最不典型的一端裁掉;`minExamples` 作为下限,保证概念仍有实例。
|
|
131
164
|
关系先去重,提供解析器时删除悬空目标,外延只折叠完全重复项。定义、内涵、反例与
|
|
@@ -133,11 +166,11 @@
|
|
|
133
166
|
- `compactConceptHistory()` 保留 head 与 `keepVersions`,其余版本压缩为
|
|
134
167
|
`concept-checkpoint`。版本号不连续或保留窗口覆盖全部版本时拒绝压缩。不变量 C-1 至 C-4
|
|
135
168
|
记录在 `docs/compaction.md` §6。
|
|
136
|
-
- 新增 `concept-compaction.schema.json`、两个可校验示例,以及 `tools/
|
|
169
|
+
- 新增 `concept-compaction.schema.json`、两个可校验示例,以及 `tools/conceptCheck.ts`
|
|
137
170
|
(14 项断言),已接入 `npm run verify`。
|
|
138
171
|
- `src/structure/priority.ts`:基于比较堆的稳定 `PriorityQueue`;可按 key 以 O(log n)
|
|
139
172
|
重新定级与删除的 `IndexedPriorityQueue`;按整数优先级分桶、桶内 FIFO 的 `BucketQueue`;
|
|
140
|
-
以及有界选取的 `TopK`。`tools/
|
|
173
|
+
以及有界选取的 `TopK`。`tools/priorityCheck.ts` 含 27 个用例(包括与稳定排序模型对拍的
|
|
141
174
|
随机差分检查),以 `npm run priority-check` 运行,并接入 `npm run verify`。
|
|
142
175
|
|
|
143
176
|
### 变更
|
package/README.md
CHANGED
|
@@ -1,171 +1,250 @@
|
|
|
1
|
-
# Attention Manifest Protocol (AMP)
|
|
2
|
-
|
|
3
|
-
**English** · [简体中文](README.zh-CN.md) · [Changelog](CHANGELOG.md)
|
|
4
|
-
|
|
5
|
-
AMP is a metacognitive protocol for agents: declare knowledge and obligations, allocate finite attention, obtain evidence, and record costs and outcomes. The reference implementation is version `0.4.2`, requires **Node.js 24 or later**, and uses Apache-2.0.
|
|
6
|
-
|
|
7
|
-
## Architecture
|
|
8
|
-
|
|
9
|
-
| Component | Responsibility |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| Warrant Ledger | Claims, evidence, hypotheses, unknowns, concepts and plans: why believe a conclusion? |
|
|
12
|
-
| Attention Ledger | Frames, budgets, receipts and interruptions: where was attention spent? |
|
|
13
|
-
| Manifest | Durable, signable identity, capabilities, commitments and limits |
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
| `
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
npm run
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
1
|
+
# Attention Manifest Protocol (AMP)
|
|
2
|
+
|
|
3
|
+
**English** · [简体中文](README.zh-CN.md) · [Changelog](CHANGELOG.md)
|
|
4
|
+
|
|
5
|
+
AMP is a metacognitive protocol for agents: declare knowledge and obligations, allocate finite attention, obtain evidence, and record costs and outcomes. The reference implementation is version `0.4.2`, requires **Node.js 24 or later**, and uses Apache-2.0.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
| Component | Responsibility |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Warrant Ledger | Claims, evidence, hypotheses, unknowns, concepts and plans: why believe a conclusion? |
|
|
12
|
+
| Attention Ledger | Frames, budgets, receipts and interruptions: where was attention spent? |
|
|
13
|
+
| Manifest | Durable, signable identity, capabilities, commitments and limits |
|
|
14
|
+
| Assignment | Bind duties, authority, budget and interaction contracts to agents |
|
|
15
|
+
| Attention | Select candidates and record why they matter |
|
|
16
|
+
| Frame | Freeze one allocation with refs, budgets and explicit exclusions (`ignored`) |
|
|
17
|
+
| Context | Materialize summaries, relations and bounded detail access |
|
|
18
|
+
| Session | Bearer-bound identity, roots, permissions, TTL and context isolation |
|
|
19
|
+
| Filesystem | File/Directory tree, paged reads/writes, outlines, import/export/dependency graphs and Office parsing |
|
|
20
|
+
| Hook | Agent-facing composition: `useRead`/`useWrite`/`useDiff`/`useParse`/`useOutline`, read-only except write |
|
|
21
|
+
| Receipt | Record actual costs and outcomes for audit and calibration |
|
|
22
|
+
| Compaction | Prune cold or superseded objects with a reason, then replace a verified prefix with a checkpoint |
|
|
23
|
+
| Fingerprint | One definition of what a digest covers; algorithm and normalisation policy travel with the digest |
|
|
24
|
+
| Naming | One grammar for protocol, service and tool identity, with a parser and a catalog digest |
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
Attention → Frame → Context → Receipt → Ledger
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Context combines a structural tree and typed relationships. Project dependencies, imports, calls and references are descriptive and may contain cycles; `depends` separately denotes prerequisites. Relations do not automatically widen a Frame. Summaries retain provenance/revision information; content-addressed detail reads verify hashes. Structure and provenance do not by themselves prove factual correctness.
|
|
31
|
+
|
|
32
|
+
## Implemented capabilities
|
|
33
|
+
|
|
34
|
+
- T0–T4 evidence tiers, confidence limits, revision, falsifiability, preregistration and abstention.
|
|
35
|
+
- Budgeted attention, explicit exclusions, interrupts, leases, delegation and merge/arbitration.
|
|
36
|
+
- Responsibility and interaction assignment: RACI-style duty bindings with authority/budget/window attenuation, acceptance, evidence-based discharge and cascade revoke; interaction contracts with protocol roles, mode mix, cadence, escalation and handoff.
|
|
37
|
+
- Signed manifests/credentials, governance workflows, tool gates, authenticated local/HTTP communication, audit chains and persistence adapters.
|
|
38
|
+
- MCP execution, schema-validated arguments, digest pinning and legacy fallback; A2A discovery and messages.
|
|
39
|
+
- Project trees, project dependency graphs, partial TS/JS import/call/reference graphs and lexical knowledge retrieval.
|
|
40
|
+
- Agent workspace: a `File`/`Directory` tree (fingerprint, charset, bigint lines/bytes, timestamps, description/summary/purpose); paged reads, CAS atomic writes, strategy-based outlines (code/project/prose/Office); import/export/dependency graphs (Tarjan SCC, topological order, bounded closure); Session identity and context isolation; a `src/hook` composition layer; SQLite entities and repositories.
|
|
41
|
+
- Host discovery: one structural tree over authorized projects, internal modules (service/tool/controller/route/repository/model/config/test/...), file names, bounded content matches, and host-registered plugins/services/tools. Project nodes carry description, purpose and summary.
|
|
42
|
+
- Structured Markdown/TXT/DOCX/XLSX/PPTX and TeX/LaTeX/BibTeX input with native source locations and summary/detail separation.
|
|
43
|
+
- `amp_protocol_workspace` v1 agent service, eight tools, local runtime integration and MCP stdio.
|
|
44
|
+
- Fingerprints with an explicit policy: RFC 8785 canonical JSON for values, byte-level hashing for files, domain-separated Merkle roots for directory trees, and a `verify` that compares algorithm, kind and policy instead of a bare hex string. Unpaired surrogates and `-0` are rejected rather than silently rewritten.
|
|
45
|
+
- One naming table for protocol, service and tool identity (`amp_protocol_*` / `amp_service_*` / `amp_tool_*`) with a grammar, a parser and a signed catalog digest, so dispatch, pinning and audit share one spelling.
|
|
46
|
+
- Compaction and pruning at two levels. `planPrune()` decides every drop with a reason and a revisit condition; `compactLedger()` replaces a verified cold prefix with a checkpoint, `verifyCompaction()` re-derives that commitment, and compaction refuses to bury an entry the retained tail still cites. `pruneConcept()` and `compactConceptHistory()` apply the same discipline to concept content and version history.
|
|
47
|
+
|
|
48
|
+
Offline parsers live in `tools/support/`. The runtime stays database-free and uses ports; persistence adapters are separate. Concrete contracts remain in [schemas](docs/schemas/), [examples](docs/examples/) and executable [checks](tools/).
|
|
49
|
+
|
|
50
|
+
### Responsibility and interaction
|
|
51
|
+
|
|
52
|
+
`responsibility-assignment` binds duties, RACI, authority, budget, window and evidence to an assignee; `interaction-binding` fixes the parties, protocol roles, mode mix, cadence, escalation and handoff state for a conversation. Both are checked by `assignment-check` and `interaction-binding-check`, and their contracts live in [docs/schemas](docs/schemas/). `AssignmentLedger`'s `onRevoke` hook can call `BindingLedger.revokeForAssignment()` so an assignment revocation cascades to its bindings.
|
|
53
|
+
|
|
54
|
+
### Discovery
|
|
55
|
+
|
|
56
|
+
`amp_tool_workspace_discover` returns one structural tree over the authorized projects. File nodes carry a module kind (`service`, `tool`, `controller`, `route`, `repository`, `model`, `config`, `test`, `middleware`, `component`, `util`), an extension and bounded content matches. Hosts register project descriptions, purposes, summaries, plugins, services and tools through `HostCatalog`; project metadata is attached to project nodes, and an unregistered project falls back to its workspace summary. Discovery is read-only, never widens `projectIds`, and returns snippets as discovery evidence rather than as a Frame-allocated detail read.
|
|
57
|
+
|
|
58
|
+
## Quick start
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
npm ci
|
|
62
|
+
npm run build
|
|
63
|
+
npm run verify
|
|
64
|
+
npm run scenario
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Library usage
|
|
68
|
+
|
|
69
|
+
`npm install attention-manifest-protocol` ships the compiled ESM build in `lib/` with its declarations, alongside the source, JSON Schemas and executable checks. Node.js 24 or later is required. The root entry exposes the documented protocol surfaces; every module is also reachable as a subpath.
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
import { generateSigningKey, signManifest, verifyManifest } from "attention-manifest-protocol";
|
|
73
|
+
import { Ledger } from "attention-manifest-protocol/ledger";
|
|
74
|
+
import { sha256Hex } from "attention-manifest-protocol/semantic/sha256.js";
|
|
75
|
+
import { fingerprintText, fingerprintTree, verify } from "attention-manifest-protocol/fingerprint";
|
|
76
|
+
import { ToolIds, parseId } from "attention-manifest-protocol/naming";
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
| Specifier | Resolves to |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `attention-manifest-protocol` | `lib/index.js`: attention, assignment, context, discover, frame, ledger, manifest, receipt and warrant |
|
|
82
|
+
| `attention-manifest-protocol/<module>` | `lib/<module>/index.js` for every module under `src/` |
|
|
83
|
+
| `attention-manifest-protocol/<module>/<file>.js` | one compiled module |
|
|
84
|
+
| `attention-manifest-protocol/schemas/<name>.json` | the JSON Schema from `docs/schemas/` |
|
|
85
|
+
|
|
86
|
+
`npm run build:lib` rebuilds `lib/` and `prepublishOnly` runs it before publishing. The build compiles only the library; the Vite demo entry (`src/main.ts`) is not part of it.
|
|
87
|
+
|
|
88
|
+
Focused checks: `npm run workspace-agent-check`, `workspace-project-check`, `workspace-diff-check`, `workspace-reactive-diff-check` and the `workspace-*-boundary-check` suites, `workspace-context-check`, `document-context-check`, `tex-context-check`, `governance-check`, `assignment-check`, `interaction-binding-check`, `discover-check`, `discover-agent-check`, `typecheck` and `typecheck:tools`. `verify` runs the full chain and both type checks. Evaluation inputs/reports remain in [docs/eval](docs/eval/) and [docs/probes](docs/probes/) as JSON; fixture and recorded-probe results are not independent human studies or production-quality evidence.
|
|
89
|
+
|
|
90
|
+
## Agent tools
|
|
91
|
+
|
|
92
|
+
The `amp_protocol_workspace` v1 response contains `protocol`, `version`, `revision`, `ok`, and either `data` or `error`. Both adapters share input schemas; the [protocol types](src/protocol/workspace.ts) define the response envelope. Except capability discovery, each business tool requires the current `revision`. Tool names come from the frozen naming table in [`src/naming/`](src/naming/); the pre-0.5 `amp_workspace_*` spellings are still accepted as input aliases and are listed under `deprecatedAliases` in the capabilities response. Every workspace tool is also mirrored as `amp_tool_global_<leaf>` over the host's complete authorized project set.
|
|
93
|
+
|
|
94
|
+
| Tool | Purpose |
|
|
95
|
+
| --- | --- |
|
|
96
|
+
| `amp_tool_workspace_capabilities` | Discover permitted projects, registered Frames, tools and limits |
|
|
97
|
+
| `amp_tool_workspace_tree` | Page project roots or structural children with native source locations |
|
|
98
|
+
| `amp_tool_workspace_query` | Retrieve candidate IDs by lexical AND search and bounded graph traversal |
|
|
99
|
+
| `amp_tool_workspace_relations` | Page typed dependency/call/reference relations and sources |
|
|
100
|
+
| `amp_tool_workspace_discover` | Return one structural tree of authorized projects, modules, file names, bounded content matches and host components |
|
|
101
|
+
| `amp_tool_workspace_materialize` | Materialize a host-registered Frame into a bounded Context |
|
|
102
|
+
| `amp_tool_workspace_read` | Page a CAS-verified detail by character offset, 1-based lines or UTF-8 bytes; carries `importation`/`exportation`, the relative files it imports and the relative files importing it |
|
|
103
|
+
| `amp_tool_workspace_write` | Replace project content by whole node, line range or UTF-8 byte range; host-gated, CAS and dry-run; returns the same `importation`/`exportation` |
|
|
104
|
+
| `amp_tool_workspace_project` | Detect the project brand from manifest/lockfile evidence and run one host-approved `build`/`compile`/`run`/`test` command |
|
|
105
|
+
| `amp_tool_workspace_outline` | One cascading outline: project → directory → file → symbol/knowledge, with 1-based ranges and bounded depth |
|
|
106
|
+
| `amp_tool_workspace_dependency` | Project-level dependencies and dependents with the declaring source and method |
|
|
107
|
+
| `amp_tool_workspace_reactive_read` | Proxy-backed workspace tree whose properties materialize lazily and are cached |
|
|
108
|
+
| `amp_tool_workspace_reactive_write` | Set a node property (`summary`/`label`/`tags`) and refresh the affected cache; `content` uses the guarded write path |
|
|
109
|
+
| `amp_tool_workspace_diff_read` | Comparable project tree carrying content revisions and byte/line metrics |
|
|
110
|
+
| `amp_tool_workspace_diff_write` | Whole-file, 1-based line-splice or UTF-8 byte-splice write with the resulting line diff and hunks |
|
|
111
|
+
| `amp_tool_workspace_release` | Release a read handle without refunding or reopening its Frame |
|
|
112
|
+
|
|
113
|
+
`read` and `write` both need an explicitly allocated, materialized target; ancestors and discovery snippets do not grant it. `importation` lists the relative files the target's file imports (bare specifiers go to `external`, whose `externalTotal`/`externalTruncated` make the `maxFileLinks` cut visible) and `exportation` lists the relative files that import it, so an edit can be scoped without a second relation query. After a write to a file, a symbol or knowledge page extracted from it answers `stale_detail` until the host refreshes the snapshot, so stale bytes are never served with a current-looking revision. `write` never touches the file system itself: the host supplies a write port in `WorkspaceServiceOptions.writer`, and without one the call fails with `write_unavailable` while `dryRun` still previews the edit.
|
|
114
|
+
|
|
115
|
+
`project` detection is offline (manifest and lockfile file names only); an execution action hands exactly one command from the brand table to `WorkspaceServiceOptions.runner`, and the agent can never supply command text. `reactive_read`/`reactive_write` add a per-service annotation overlay and child-index cache: a write bumps `cacheVersion` and reports every invalidated ancestor. `diff_read` exposes the content revision of each file so two snapshots can be compared without bodies; `diff_write` applies whole-file, line or byte splices and returns the resulting hunks, reusing the write port, CAS and dry-run.
|
|
116
|
+
|
|
117
|
+
### Filesystem tools
|
|
118
|
+
|
|
119
|
+
`amp_tool_filesystem_*` is bound to one authenticated Session; the bearer token never appears in a tool argument. Every tool except `write` is read-only.
|
|
120
|
+
|
|
121
|
+
| Tool | Purpose |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| `amp_tool_filesystem_session` | Current identity, roots, permissions, remaining TTL and quotas |
|
|
124
|
+
| `amp_tool_filesystem_file` | One File/Directory node; `depth`/`offset`/`limit` bound the subtree |
|
|
125
|
+
| `amp_tool_filesystem_directory` | Flat listing of direct children |
|
|
126
|
+
| `amp_tool_filesystem_read` | 1-based line page with fingerprint, charset and the next line |
|
|
127
|
+
| `amp_tool_filesystem_write` | Atomic write; create/overwrite/upsert/append, CAS, dry-run |
|
|
128
|
+
| `amp_tool_filesystem_outline` | Structural outline with `query`/`startLine`/`endLine` filters |
|
|
129
|
+
| `amp_tool_filesystem_import` | Outgoing, incoming or two-way imports |
|
|
130
|
+
| `amp_tool_filesystem_export` | Exported symbols, signatures and re-export edges |
|
|
131
|
+
| `amp_tool_filesystem_dependency` | Cycles, topological order and bounded closures |
|
|
132
|
+
| `amp_tool_filesystem_ast` | Lossless syntax tree: every non-whitespace token, declaration/markup hierarchy, UTF-8/line ranges; read-only, never executes |
|
|
133
|
+
|
|
134
|
+
The global variant is `amp_tool_globalfs_*`, a naming adapter in [src/global/filesystem.ts](src/global/filesystem.ts) that grants no new root or permission. Outline nodes carry `isFile`/`isDirectory`/`file?`/`directory?`/`path` (for example `add.py#add`) and `range` (UTF-8 bytes plus 1-based lines as bigint; decimal strings on the wire). Strategies cover code, Vue, project manifests, Markdown/TeX/plain text, CSS/SCSS/Sass, HTML, XML/OPML and Office; Office parsing covers DOCX/XLSX/PPTX and treats DOC/XLS/PPT/PUB/ACCDB as best-effort CFB.
|
|
135
|
+
|
|
136
|
+
### Hooks
|
|
137
|
+
|
|
138
|
+
`src/hook` packages the same read-only operations as stateful, subscribable composition functions; only `useWrite` mutates:
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
import { useRead, useWrite, useDiff } from "attention-manifest-protocol/hook";
|
|
142
|
+
|
|
143
|
+
const read = useRead(session);
|
|
144
|
+
await read.run({ path: "src/main.ts", maxLines: 80, includeLineNumbers: true });
|
|
145
|
+
const write = useWrite(session);
|
|
146
|
+
await write.run({ path: "src/new.ts", content: "export const value = 1;\n", mode: "create" });
|
|
147
|
+
const diff = useDiff(session);
|
|
148
|
+
await diff.run({ path: "src/new.ts", before: "" });
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`useParse` is module-specific (`useOutlineParse`, `useImportationParse`, `useExportationParse`, `useDependencyParse`, `useCodeParse`, `useProjectParse`, `useAstParse`); `useCode`/`useProject` are composed models and `useAst` returns the lossless read-only syntax tree. A cache hit re-checks the session revision, and runs can be recorded in `hook_runs`.
|
|
152
|
+
|
|
153
|
+
### MCP stdio
|
|
154
|
+
|
|
155
|
+
```sh
|
|
156
|
+
npm run workspace-agent-demo
|
|
157
|
+
npm run workspace-agent -- --config .cache/workspace-agent.local
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
For an MCP client, start Node directly to keep package-manager banners out of stdout. Replace absolute paths with your checkout location:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"mcpServers": {
|
|
165
|
+
"amp-workspace": {
|
|
166
|
+
"command": "node",
|
|
167
|
+
"args": [
|
|
168
|
+
"R:/project/attention-manifest-protocol/tools/workspaceAgentServer.ts",
|
|
169
|
+
"--config",
|
|
170
|
+
"R:/project/attention-manifest-protocol/.cache/workspace-agent.local"
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
The trusted host bootstrap contains `version: 1`, `agentId`, explicit `projectIds`, a `WorkspaceSnapshot`, `contents` mapping CAS refs to text, `frames`, optional lower `limits`, and optional `discovery.projects` / `discovery.components` for host-registered descriptions and components. Contents are hash-checked at startup. The demo uses example inputs; real hosts pass their authorized inventory to `scanStructuredWorkspace` in [documentScanner.ts](tools/support/documentScanner.ts).
|
|
178
|
+
|
|
179
|
+
The stdio adapter reads configuration only at startup; new snapshots/Frames require a new host configuration and instance. It accepts newline-delimited JSON-RPC, limits messages to 1 MiB and configuration to 64 MiB, and never executes tools carried in notifications. It supports `initialize` for `2025-11-25` / `2025-06-18` and the repository's `2026-07-28` stateless discovery/metadata profile; other versions are not claimed as tested.
|
|
180
|
+
|
|
181
|
+
### Local runtime
|
|
182
|
+
|
|
183
|
+
```ts
|
|
184
|
+
import { WorkspaceAgentService } from "./src/context/index.ts";
|
|
185
|
+
import { ToolRegistry, registerWorkspaceTools, WorkspaceToolExecutor } from "./src/module/index.ts";
|
|
186
|
+
|
|
187
|
+
const workspace = new WorkspaceAgentService({
|
|
188
|
+
agentId: frame.agent,
|
|
189
|
+
projectIds: ["project:packages/app"],
|
|
190
|
+
snapshot,
|
|
191
|
+
store,
|
|
192
|
+
});
|
|
193
|
+
workspace.registerFrame(frame, snapshot.revision);
|
|
194
|
+
const tools = new ToolRegistry();
|
|
195
|
+
registerWorkspaceTools(tools, workspace);
|
|
196
|
+
const toolExecutor = new WorkspaceToolExecutor(workspace, existingExecutor);
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
The host provides the Frame, snapshot, ContentStore and fallback executor; pass `tools` / `toolExecutor` to `CognitiveRuntime`. Registration, revocation and Receipt settlement are host APIs, unavailable to the model.
|
|
200
|
+
|
|
201
|
+
### Scope, lifecycle and limits
|
|
202
|
+
|
|
203
|
+
Discovery/query return metadata and candidates, not authorization. Hosts fix project scope and register selected Frames. Only active targets admitted to the view permit detail reads; ancestor summaries do not grant whole-file access. Workspace IDs are extension-local keys, not global Ledger identities. Full Frame validation, signatures and policy checks remain host responsibilities.
|
|
204
|
+
|
|
205
|
+
Identical materialization requests reuse a Context without recharging summaries; changed parameters are rejected. Release/revocation invalidates the read handle but retains pending settlement. Hosts use `pendingSettlements()` and `settle(contextId, receipt)` to obtain an archived ContextSnapshot. This state is in memory; hosts must persist audit/recovery data.
|
|
206
|
+
|
|
207
|
+
Defaults: 128 registered Frames, 32 live read Contexts, 8000 estimated summary tokens, 8000 UTF-16 units per detail page, 131072 units per successful response and 1000 business calls. Query depth is at most 10; results/pages at most 100. Hosts may lower limits. Summary text and successful detail pages share the Frame's remaining estimated token budget; repeat reads cost budget and release does not refund it. Discovery, JSON wrapping and later model consumption are excluded from that estimate; actual usage belongs in Receipts.
|
|
208
|
+
|
|
209
|
+
Detail offsets use UTF-16 units; `nextOffset: null` ends pagination. Reassemble structured JSON detail before parsing. CAS verification reads the full detail before paging, so response bounds do not imply bounded storage I/O. Runtime messages retain complete JSON up to `maxToolResultChars` (default 1048576, configurable down to 128); oversize results return `tool_result_too_large`, while logs retain a 4000-character preview.
|
|
210
|
+
|
|
211
|
+
Service errors: `invalid_arguments`, `unknown_tool`, `revision_mismatch`, `not_available`, `frame_unavailable`, `budget_exhausted`, `capacity_exceeded`, `response_too_large`, `integrity_failure`, `internal_error`. Oversize responses fail instead of truncating structured content.
|
|
212
|
+
|
|
213
|
+
## Repository layout
|
|
214
|
+
|
|
215
|
+
| Path | Contents |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| [src/semantic](src/semantic/) | Base primitives with no policy: strict SHA-256, canonical JSON and the I-JSON predicate |
|
|
218
|
+
| [src/fingerprint](src/fingerprint/) | Algorithms, preimage framing, policies, refs, verification, files and Merkle trees |
|
|
219
|
+
| [src/naming](src/naming/) | The frozen id table, the id grammar, compatibility aliases and the catalog digest |
|
|
220
|
+
| [src/context](src/context/) | Context lifecycle, tree/graph projections, CAS, workspace facts, context assembly and agent service |
|
|
221
|
+
| [src/session](src/session/) | Identity, tokens, TTL, context isolation, fork/revoke/rotate |
|
|
222
|
+
| [src/file](src/file/) | File/Directory tree, metadata, paged reads, atomic writes, session runtime/service, module graphs and ZIP/CFB containers |
|
|
223
|
+
| [src/syntax](src/syntax/) | Charset detection/encoding, byte/line indexing, syntax registry and lossless read-only syntax trees |
|
|
224
|
+
| [src/outline](src/outline/) | Code/document outlines, range and label indexes, keyword/strategy registries, React/Shell/SQL/Visual Basic strategies and Office parsing |
|
|
225
|
+
| [src/hook](src/hook/) | Agent-facing composition hooks and run records |
|
|
226
|
+
| [src/protocol](src/protocol/) | Wire contracts: envelopes, A2A, channels and the `amp_protocol_workspace` surface |
|
|
227
|
+
| [src/module](src/module/) | LLM/tool ports, MCP adapters and execution policies |
|
|
228
|
+
| [src/runtime](src/runtime/) | Agent turn/tool loop and governance integration |
|
|
229
|
+
| [src/governance](src/governance/) | Manifests, credentials, budgets, workflows, signing and audit |
|
|
230
|
+
| [src/structure](src/structure/) | Maps, trees, queues, priority indexes, filters, AST and LRU |
|
|
231
|
+
| [src](src/) | Other attention, evidence, ledger, policy, kernel and persistence domains |
|
|
232
|
+
| [tools](tools/) | TypeScript checks, offline scanners, demos and probes |
|
|
233
|
+
| [docs/schemas](docs/schemas/) / [docs/examples](docs/examples/) | Machine-readable contracts and protocol examples |
|
|
234
|
+
| [docs/eval](docs/eval/) / [docs/probes](docs/probes/) | Evaluation inputs and JSON reports |
|
|
235
|
+
|
|
236
|
+
## Code style
|
|
237
|
+
|
|
238
|
+
ESLint checks semantic/style constraints; Prettier handles layout. Commands: `npm run lint`, `lint:fix`, `format:check`, `format`, `style-check`. Configuration lives in [eslint.config.mts](eslint.config.mts) and [prettier.config.mts](prettier.config.mts); local rules/printer live under `tools/`.
|
|
239
|
+
|
|
240
|
+
Declare variable types explicitly; use arrow functions instead of `function`, semicolons, four-space indentation, double quotes and template strings. Keep parameters/type parameters on one line, use braces for control flow, `typeof(value)` and `=== (void 0)`. Locals/parameters and function values use lowerCamelCase; module-level data uses PascalCase; source file names use lowerCamelCase starting with a lowercase letter (for example `workspaceService.ts`, `fileGraph.ts`) and never hyphens, while SQL identifiers keep the existing snake_case. Comments use multiline JSDoc except tool directives. Historical files retain lint/format migration debt; functional verification does not imply a clean repository-wide style check.
|
|
241
|
+
|
|
242
|
+
## Boundaries and evidence
|
|
243
|
+
|
|
244
|
+
Static dependency extraction is partial; missing edges do not prove independence. Markdown/TeX scanners do not implement all macros or semantics. Summaries, graphs and long contexts require multi-hop, cross-document and changing-information evaluations. Relevant primary sources include [LaRA](https://proceedings.mlr.press/v267/li25dv.html), [GraphRAG-Bench](https://arxiv.org/abs/2506.05690), [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) and [RFC 6920](https://www.rfc-editor.org/rfc/rfc6920.html); they do not establish AMP's own effectiveness.
|
|
245
|
+
|
|
246
|
+
Sandbox isolation, multi-tenancy, interactive OAuth, production deployment and real external-agent interoperability remain outside the completed reference implementation. Human research inspires design but does not prove identical model mechanisms or capacity constants. Provenance proves integrity, not truth or authority to act.
|
|
247
|
+
|
|
248
|
+
## License and history
|
|
249
|
+
|
|
250
|
+
[Apache License 2.0](LICENSE), copyright 2026 Eloy Kim; retain [NOTICE](NOTICE), license and attribution notices when redistributing. History: [CHANGELOG.md](CHANGELOG.md) and [CHANGELOG.zh-CN.md](CHANGELOG.zh-CN.md).
|