pi-harness-runtime 0.10.13 → 0.10.15
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/harness/notification-events.ts +2 -2
- package/package.json +4 -7
- package/packages/auth/src/minimax-browser-auth.js +889 -0
- package/packages/capability-registry/src/types.js +10 -0
- package/packages/checkpoint/src/checkpoint-manager.js +29 -0
- package/packages/clipboard/src/copy-sync.js +169 -0
- package/packages/clipboard/src/gist-relay.js +185 -0
- package/packages/clipboard/src/github-login.js +68 -0
- package/packages/config-capture/src/index.js +268 -0
- package/packages/cookie-sanitizer/src/atomic-write.js +66 -0
- package/packages/cookie-sanitizer/src/detect-format.js +87 -0
- package/packages/cookie-sanitizer/src/index.js +38 -0
- package/packages/cookie-sanitizer/src/infer-provider.js +95 -0
- package/packages/cookie-sanitizer/src/normalize.js +74 -0
- package/packages/cookie-sanitizer/src/parse-json.js +107 -0
- package/packages/cookie-sanitizer/src/parse-netscape.js +98 -0
- package/packages/cookie-sanitizer/src/sync.js +268 -0
- package/packages/cookie-sanitizer/src/types.js +12 -0
- package/packages/cookie-sanitizer/src/watcher.js +147 -0
- package/packages/evaluation-engine/src/engine.js +343 -0
- package/packages/evaluation-engine/src/index.js +7 -0
- package/packages/evaluation-engine/src/types.js +14 -0
- package/packages/event-store/src/types.js +5 -0
- package/packages/experience-replay/src/index.js +6 -0
- package/packages/experience-replay/src/replay.js +228 -0
- package/packages/experience-replay/src/types.js +6 -0
- package/packages/learning-engine/src/engine.js +294 -0
- package/packages/learning-engine/src/index.js +7 -0
- package/packages/learning-engine/src/types.js +63 -0
- package/packages/memory-engine/src/engine.js +507 -0
- package/packages/memory-engine/src/index.js +7 -0
- package/packages/memory-engine/src/types.js +39 -0
- package/packages/model-registry/src/types.js +5 -0
- package/packages/performance-optimizer/src/index.js +6 -0
- package/packages/performance-optimizer/src/optimizer.js +304 -0
- package/packages/performance-optimizer/src/types.js +6 -0
- package/packages/projection-engine/src/types.js +5 -0
- package/packages/providers/src/provider-id.js +112 -0
- package/packages/quota-manager/src/quota-manager.js +259 -0
- package/packages/quota-manager/src/tui-usage-monitor.js +267 -0
- package/packages/todo-bd-sync/src/detector.js +131 -0
- package/packages/todo-bd-sync/src/extension.js +104 -0
- package/packages/todo-bd-sync/src/sync.js +289 -0
- package/packages/todo-bd-sync/src/task-analyzer.js +239 -0
- package/packages/todo-bd-sync/src/types.js +66 -0
- package/packages/token-estimation/src/index.js +114 -0
- package/packages/types/src/agent-worker-types.js +41 -0
- package/packages/types/src/ai-providers.js +66 -0
- package/packages/types/src/runtime-types.js +3 -0
- package/packages/workflow-events/src/types.js +5 -0
- package/packages/write-review/src/blackboard.js +228 -0
- package/packages/write-review/src/gate.js +137 -0
- package/packages/write-review/src/index.js +17 -0
- package/packages/write-review/src/injection.js +141 -0
- package/packages/write-review/src/review.js +153 -0
- package/packages/write-review/src/trigger.js +106 -0
- package/packages/write-review/src/types.js +25 -0
- package/IMPLEMENTATION/RFC-0010/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0010/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0010/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0010/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0010/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0011/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0011/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0011/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0011/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0011/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0012/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0012/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0012/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0012/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0012/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0013/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0013/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0013/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0013/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0013/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0014/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0014/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0014/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0014/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0014/TESTS.md +0 -6
- package/IMPLEMENTATION/RFC-0015/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0015/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0015/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0015/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0015/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0016/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0016/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0016/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0016/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0016/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0017/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0017/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0017/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0017/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0017/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0018/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0018/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0018/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0018/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0018/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0019/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0019/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0019/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0020/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0020/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0020/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0021/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0021/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0021/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0022/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0022/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0022/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0023/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0023/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0023/TASKS.md +0 -10
- package/IMPLEMENTATION/RFC-0024/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0024/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0025/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0025/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0026/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0026/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0027/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0027/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0028/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0028/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0029/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0029/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0030/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0030/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0031/AI_BRIEF.md +0 -45
- package/IMPLEMENTATION/RFC-0031/TASKS.md +0 -48
- package/IMPLEMENTATION/RFC-0032/AI_BRIEF.md +0 -45
- package/IMPLEMENTATION/RFC-0032/TASKS.md +0 -44
- package/IMPLEMENTATION/RFC-0033/AI_BRIEF.md +0 -46
- package/IMPLEMENTATION/RFC-0033/TASKS.md +0 -49
- package/IMPLEMENTATION/RFC-0034/AI_BRIEF.md +0 -54
- package/IMPLEMENTATION/RFC-0034/TASKS.md +0 -57
- package/IMPLEMENTATION/RFC-0035/AI_BRIEF.md +0 -55
- package/IMPLEMENTATION/RFC-0035/TASKS.md +0 -75
- package/IMPLEMENTATION/RFC-0036/AI_BRIEF.md +0 -62
- package/IMPLEMENTATION/RFC-0036/TASKS.md +0 -60
- package/IMPLEMENTATION/RFC-0037/AI_BRIEF.md +0 -59
- package/IMPLEMENTATION/RFC-0037/TASKS.md +0 -63
- package/IMPLEMENTATION/RFC-0038/AI_BRIEF.md +0 -67
- package/IMPLEMENTATION/RFC-0038/TASKS.md +0 -65
- package/IMPLEMENTATION/RFC-0039/AI_BRIEF.md +0 -68
- package/IMPLEMENTATION/RFC-0039/TASKS.md +0 -74
- package/IMPLEMENTATION/RFC-0040/AI_BRIEF.md +0 -79
- package/IMPLEMENTATION/RFC-0040/TASKS.md +0 -77
- package/IMPLEMENTATION/RFC-0041/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0041/AI_BRIEF.md +0 -26
- package/IMPLEMENTATION/RFC-0041/FILES.md +0 -12
- package/IMPLEMENTATION/RFC-0041/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0041/TESTS.md +0 -12
- package/IMPLEMENTATION/RFC-0042/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0042/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0042/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0042/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0042/TESTS.md +0 -11
- package/IMPLEMENTATION/RFC-0043/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0043/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0043/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0043/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0043/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0044/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0044/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0044/FILES.md +0 -13
- package/IMPLEMENTATION/RFC-0044/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0044/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0045/ACCEPTANCE_CRITERIA.md +0 -30
- package/IMPLEMENTATION/RFC-0045/AI_BRIEF.md +0 -53
- package/IMPLEMENTATION/RFC-0045/FILES.md +0 -13
- package/IMPLEMENTATION/RFC-0045/TASKS.md +0 -31
- package/IMPLEMENTATION/RFC-0045/TESTS.md +0 -62
- package/IMPLEMENTATION/RFC-0046/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0046/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0046/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0046/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0046/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0047/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0047/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0047/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0047/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0047/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0048/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0048/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0048/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0048/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0048/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0049/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0049/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0049/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0049/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0049/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0050/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0050/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0050/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0050/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0050/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0051/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0051/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0051/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0051/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0051/TESTS.md +0 -4
- package/IMPLEMENTATION/RFC-0052/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0052/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0052/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0052/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0052/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0053/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0053/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0053/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0053/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0053/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0054/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0054/AI_BRIEF.md +0 -19
- package/IMPLEMENTATION/RFC-0054/FILES.md +0 -8
- package/IMPLEMENTATION/RFC-0054/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0054/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0055/ACCEPTANCE_CRITERIA.md +0 -8
- package/IMPLEMENTATION/RFC-0055/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0055/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0055/TASKS.md +0 -3
- package/IMPLEMENTATION/RFC-0055/TESTS.md +0 -1
- package/IMPLEMENTATION/RFC-0056/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0056/AI_BRIEF.md +0 -18
- package/IMPLEMENTATION/RFC-0056/FILES.md +0 -9
- package/IMPLEMENTATION/RFC-0056/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0056/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0057/ACCEPTANCE_CRITERIA.md +0 -5
- package/IMPLEMENTATION/RFC-0057/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0057/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0057/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0057/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0058/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0058/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0058/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0058/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0058/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0059/ACCEPTANCE_CRITERIA.md +0 -6
- package/IMPLEMENTATION/RFC-0059/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0059/FILES.md +0 -11
- package/IMPLEMENTATION/RFC-0059/TASKS.md +0 -9
- package/IMPLEMENTATION/RFC-0059/TESTS.md +0 -7
- package/IMPLEMENTATION/RFC-0060/ACCEPTANCE_CRITERIA.md +0 -7
- package/IMPLEMENTATION/RFC-0060/AI_BRIEF.md +0 -5
- package/IMPLEMENTATION/RFC-0060/FILES.md +0 -14
- package/IMPLEMENTATION/RFC-0060/TASKS.md +0 -12
- package/IMPLEMENTATION/RFC-0060/TESTS.md +0 -10
- package/IMPLEMENTATION/RFC-0061/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0061/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0061/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0061/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0061/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0062/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0062/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0062/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0062/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0062/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0063/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0063/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0063/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0063/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0063/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0064/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0064/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0064/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0064/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0064/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0065/ACCEPTANCE_CRITERIA.md +0 -1
- package/IMPLEMENTATION/RFC-0065/AI_BRIEF.md +0 -1
- package/IMPLEMENTATION/RFC-0065/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0065/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0065/TESTS.md +0 -2
- package/IMPLEMENTATION/RFC-0066/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0066/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0066/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0066/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0066/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0067/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0067/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0067/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0067/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0067/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0068/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0068/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0068/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0068/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0068/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0069/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0069/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0069/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0069/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0069/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0070/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0070/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0070/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0070/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0070/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0071/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0071/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0071/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0071/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0071/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0072/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0072/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0072/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0072/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0072/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0073/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0073/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0073/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0073/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0073/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0074/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0074/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0074/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0074/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0074/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0075/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0075/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0075/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0075/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0075/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0076/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0076/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0076/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0076/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0076/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0077/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0077/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0077/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0077/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0077/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0078/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0078/AI_BRIEF.md +0 -17
- package/IMPLEMENTATION/RFC-0078/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0078/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0078/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0079/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0079/AI_BRIEF.md +0 -7
- package/IMPLEMENTATION/RFC-0079/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0079/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0079/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0080/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0080/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0080/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0080/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0080/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0081/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0081/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0081/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0081/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0081/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0082/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0082/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0082/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0082/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0082/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0083/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0083/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0083/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0083/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0083/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0084/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0084/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0084/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0084/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0084/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0085/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0085/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0085/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0085/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0085/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0086/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0086/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0086/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0086/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0086/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0087/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0087/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0087/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0087/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0087/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0088/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0088/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0088/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0088/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0088/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0089/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0089/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0089/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0089/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0089/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0090/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0090/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0090/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0090/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0090/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0091/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0091/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0091/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0091/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0091/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0092/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0092/AI_BRIEF.md +0 -20
- package/IMPLEMENTATION/RFC-0092/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0092/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0092/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0093/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0093/AI_BRIEF.md +0 -22
- package/IMPLEMENTATION/RFC-0093/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0093/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0093/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0094/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0094/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0094/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0094/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0094/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0095/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0095/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0095/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0095/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0095/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0096/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0096/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0096/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0096/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0096/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0097/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0097/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0097/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0097/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0097/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0098/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0098/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0098/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0098/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0098/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0099/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0099/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0099/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0099/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0099/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0100/ACCEPTANCE_CRITERIA.md +0 -2
- package/IMPLEMENTATION/RFC-0100/AI_BRIEF.md +0 -2
- package/IMPLEMENTATION/RFC-0100/FILES.md +0 -2
- package/IMPLEMENTATION/RFC-0100/TASKS.md +0 -4
- package/IMPLEMENTATION/RFC-0100/TESTS.md +0 -3
- package/IMPLEMENTATION/RFC-0101/ACCEPTANCE_CRITERIA.md +0 -74
- package/IMPLEMENTATION/RFC-0101/AI_BRIEF.md +0 -80
- package/IMPLEMENTATION/RFC-0101/FILES.md +0 -82
- package/IMPLEMENTATION/RFC-0101/TASKS.md +0 -92
- package/IMPLEMENTATION/RFC-0101/TESTS.md +0 -127
- package/IMPLEMENTATION/RFC-0102/ACCEPTANCE_CRITERIA.md +0 -33
- package/IMPLEMENTATION/RFC-0102/AI_BRIEF.md +0 -34
- package/IMPLEMENTATION/RFC-0102/FILES.md +0 -73
- package/IMPLEMENTATION/RFC-0102/TASKS.md +0 -75
- package/IMPLEMENTATION/RFC-0102/TESTS.md +0 -78
- package/IMPLEMENTATION/RFC-0103/ACCEPTANCE_CRITERIA.md +0 -45
- package/IMPLEMENTATION/RFC-0103/AI_BRIEF.md +0 -46
- package/IMPLEMENTATION/RFC-0103/FILES.md +0 -121
- package/IMPLEMENTATION/RFC-0103/TASKS.md +0 -97
- package/IMPLEMENTATION/RFC-0103/TESTS.md +0 -118
- package/IMPLEMENTATION/RFC-0104/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0104/FILES.md +0 -33
- package/IMPLEMENTATION/RFC-0105/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0105/FILES.md +0 -41
- package/IMPLEMENTATION/RFC-0106/ACCEPTANCE_CRITERIA.md +0 -29
- package/IMPLEMENTATION/RFC-0106/FILES.md +0 -43
- package/RFC/0001_LOOP_RUNTIME.md +0 -14
- package/RFC/0002_PROVIDER_ADAPTER.md +0 -3
- package/RFC/0003_QUOTA_MANAGER.md +0 -3
- package/RFC/0004_PLAYWRIGHT_ADAPTER.md +0 -3
- package/RFC/0005_GIT_WORKTREE.md +0 -3
- package/RFC/0006_CHECKPOINT_MANAGER.md +0 -56
- package/RFC/0007_SCHEDULER.md +0 -32
- package/RFC/0008_PROVIDER_ROUTER.md +0 -44
- package/RFC/0009_SHARED_CONTEXT.md +0 -32
- package/RFC/0010_CONTEXT_WINDOW_MANAGER.md +0 -50
- package/RFC/0011_SHARED_BLACKBOARD.md +0 -42
- package/RFC/0012_AGENT_HANDOFF_PROTOCOL.md +0 -41
- package/RFC/0013_E2E_TEST_ENGINE.md +0 -42
- package/RFC/0014_PROJECT_DETECTOR_AND_TEST_DATA_ENGINE.md +0 -35
- package/RFC/0015_JOB_STATE_MACHINE.md +0 -45
- package/RFC/0016_TASK_GRAPH.md +0 -31
- package/RFC/0017_MASTER_PLANNER.md +0 -32
- package/RFC/0018_REPAIR_ENGINE.md +0 -36
- package/RFC/0019_AUTO_COMPACT_AND_CONTINUE.md +0 -51
- package/RFC/0020_OUTPUT_TOKEN_LIMIT_HANDLER.md +0 -49
- package/RFC/0021_PARTIAL_RESPONSE_RECOVERY.md +0 -49
- package/RFC/0022_NOTIFICATION_CENTER.md +0 -47
- package/RFC/0023_LOCAL_BROWSER_AGENT.md +0 -67
- package/RFC/0024_LOCAL_RUNTIME_AGENT.md +0 -3
- package/RFC/0025_COMMAND_EXECUTOR.md +0 -3
- package/RFC/0026_WORKSPACE_MANAGER.md +0 -3
- package/RFC/0027_RUNTIME_API.md +0 -3
- package/RFC/0028_POLICY_ENGINE.md +0 -3
- package/RFC/0029_DEEPAGENTS_ADAPTER.md +0 -2
- package/RFC/0030_AGENT_WORKER_INTERFACE.md +0 -2
- package/RFC/0031_PROVIDER_ADAPTER_SDK.md +0 -171
- package/RFC/0032_CHECKPOINT_ENGINE.md +0 -217
- package/RFC/0033_SESSION_MANAGER.md +0 -262
- package/RFC/0034_OBSERVABILITY.md +0 -416
- package/RFC/0035_ROADMAP_V1.md +0 -295
- package/RFC/0036_CODE_REVIEW_ENGINE.md +0 -430
- package/RFC/0037_CODE_GENERATION_PIPELINE.md +0 -504
- package/RFC/0038_FRAMEWORK_DETECTOR.md +0 -466
- package/RFC/0039_TEST_DATA_GENERATOR.md +0 -504
- package/RFC/0040_FRAMEWORK_PLUGIN_SDK.md +0 -543
- package/RFC/0041_PROMPT_COMPILER.md +0 -232
- package/RFC/0042_CONTEXT_COMPILER.md +0 -216
- package/RFC/0043_REQUIREMENT_COMPILER.md +0 -211
- package/RFC/0044_TASK_COMPILER.md +0 -207
- package/RFC/0045_PROJECT_ANALYZER.md +0 -246
- package/RFC/0046_DEPENDENCY_ANALYZER.md +0 -14
- package/RFC/0047_REPOSITORY_KNOWLEDGE_GRAPH.md +0 -14
- package/RFC/0048_CODE_MERGE_ENGINE.md +0 -14
- package/RFC/0049_CONFLICT_RESOLUTION_ENGINE.md +0 -14
- package/RFC/0050_DOCUMENTATION_GENERATOR.md +0 -14
- package/RFC/0051_CAPABILITY_REGISTRY.md +0 -144
- package/RFC/0052_SKILL_REGISTRY.md +0 -167
- package/RFC/0053_MODEL_REGISTRY.md +0 -214
- package/RFC/0054_PROVIDER_ROUTER.md +0 -239
- package/RFC/0055_COST_OPTIMIZER.md +0 -285
- package/RFC/0056_PERFORMANCE_OPTIMIZER.md +0 -118
- package/RFC/0057_EVALUATION_ENGINE.md +0 -116
- package/RFC/0058_LEARNING_ENGINE.md +0 -113
- package/RFC/0059_EXPERIENCE_REPLAY.md +0 -107
- package/RFC/0060_MEMORY_ENGINE_OKF.md +0 -152
- package/RFC/0061_FRAPPE_PLUGIN.md +0 -9
- package/RFC/0062_NEXTJS_PLUGIN.md +0 -9
- package/RFC/0063_REACT_VITE_PLUGIN.md +0 -9
- package/RFC/0064_DJANGO_PLUGIN.md +0 -9
- package/RFC/0065_LARAVEL_PLUGIN.md +0 -9
- package/RFC/0066_GENERIC_WEB_PLUGIN.md +0 -24
- package/RFC/0067_CLI_PLUGIN_SDK.md +0 -101
- package/RFC/0068_MCP_ADAPTER.md +0 -114
- package/RFC/0069_GOOGLE_A2A_ADAPTER.md +0 -139
- package/RFC/0070_OPENAI_CODEX_ADAPTER.md +0 -134
- package/RFC/0071_REQUIREMENT_INTAKE.md +0 -95
- package/RFC/0072_PROJECT_BOOTSTRAP.md +0 -82
- package/RFC/0073_ARCHITECTURE_GENERATOR.md +0 -85
- package/RFC/0074_SPRINT_PLANNER.md +0 -61
- package/RFC/0075_MILESTONE_MANAGER.md +0 -58
- package/RFC/0076_BACKLOG_MANAGER.md +0 -24
- package/RFC/0077_HUMAN_APPROVAL_GATE.md +0 -24
- package/RFC/0078_RELEASE_MANAGER.md +0 -24
- package/RFC/0079_VERSION_MANAGER.md +0 -24
- package/RFC/0080_DEPLOYMENT_PIPELINE.md +0 -24
- package/RFC/0081_MULTI_USER_RUNTIME.md +0 -24
- package/RFC/0082_RBAC.md +0 -24
- package/RFC/0083_AUDIT_TRAIL.md +0 -24
- package/RFC/0084_DASHBOARD.md +0 -24
- package/RFC/0085_ANALYTICS.md +0 -24
- package/RFC/0086_DISTRIBUTED_RUNTIME.md +0 -24
- package/RFC/0087_CLUSTER_MANAGER.md +0 -24
- package/RFC/0088_RUNTIME_FEDERATION.md +0 -24
- package/RFC/0089_HIGH_AVAILABILITY.md +0 -24
- package/RFC/0090_DISASTER_RECOVERY.md +0 -24
- package/RFC/0091_AUTONOMOUS_ARCHITECTURE_REVIEW.md +0 -24
- package/RFC/0092_AUTONOMOUS_REFACTORING.md +0 -24
- package/RFC/0093_AUTONOMOUS_BUG_FIXING.md +0 -24
- package/RFC/0094_AUTONOMOUS_PERFORMANCE_TUNING.md +0 -24
- package/RFC/0095_AUTONOMOUS_SECURITY_REVIEW.md +0 -24
- package/RFC/0096_AUTONOMOUS_COST_OPTIMIZATION.md +0 -24
- package/RFC/0097_AUTONOMOUS_DOCUMENTATION.md +0 -24
- package/RFC/0098_AUTONOMOUS_KNOWLEDGE_MANAGEMENT.md +0 -24
- package/RFC/0099_RUNTIME_EVOLUTION_ENGINE.md +0 -24
- package/RFC/0100_SELF_DEVELOPING_RUNTIME.md +0 -24
- package/RFC/0101_AUTONOMOUS_OPERATIONS_RUNTIME.md +0 -1105
- package/RFC/0102_CONTEXT_ENGINEERING_PIPELINE.md +0 -508
- package/RFC/0103_SESSION_EVENT_RUNTIME_AGENT_COMMUNICATION_LAYER.md +0 -616
- package/RFC/0104_DISTRIBUTED_AGENT_COMMUNICATION.md +0 -143
- package/RFC/0105_DISTRIBUTED_KNOWLEDGE_RETRIEVAL.md +0 -301
- package/RFC/0106_KNOWLEDGE_GRAPH_PROVENANCE.md +0 -368
- package/RFC/README.md +0 -11
- package/packages/event-bus/dist/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-adapter-sdk/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# RFC-0059 — Experience Replay
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
Experience Replay reconstructs prior runtime execution from persisted events, checkpoints, prompts, outputs, and evaluation evidence. It supports debugging, regression analysis, and reproducibility.
|
|
6
|
-
|
|
7
|
-
Replay is read-only by default.
|
|
8
|
-
|
|
9
|
-
## 2. Inputs
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
export interface ReplayRequest {
|
|
13
|
-
jobId: string;
|
|
14
|
-
mode: "inspect" | "simulate" | "reexecute";
|
|
15
|
-
fromSequence?: number;
|
|
16
|
-
toSequence?: number;
|
|
17
|
-
allowExternalCalls: boolean;
|
|
18
|
-
}
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## 3. Outputs
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
export interface ReplayResult {
|
|
25
|
-
jobId: string;
|
|
26
|
-
reconstructedState: JobStateSnapshot;
|
|
27
|
-
timeline: ReplayEvent[];
|
|
28
|
-
divergences: ReplayDivergence[];
|
|
29
|
-
artifacts: string[];
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## 4. Modes
|
|
34
|
-
|
|
35
|
-
### Inspect
|
|
36
|
-
|
|
37
|
-
Rebuilds state without executing tasks or provider calls.
|
|
38
|
-
|
|
39
|
-
### Simulate
|
|
40
|
-
|
|
41
|
-
Runs deterministic runtime transitions using recorded inputs but no external model/provider calls.
|
|
42
|
-
|
|
43
|
-
### Reexecute
|
|
44
|
-
|
|
45
|
-
Runs selected steps again. This mode requires explicit approval and isolated worktree.
|
|
46
|
-
|
|
47
|
-
## 5. Replay Sources
|
|
48
|
-
|
|
49
|
-
```text
|
|
50
|
-
checkpoint.json
|
|
51
|
-
events.jsonl
|
|
52
|
-
task-graph.json
|
|
53
|
-
prompt packages
|
|
54
|
-
agent reports
|
|
55
|
-
test results
|
|
56
|
-
evaluation results
|
|
57
|
-
repair attempts
|
|
58
|
-
OKF knowledge references
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## 6. Determinism
|
|
62
|
-
|
|
63
|
-
A replay records divergence when:
|
|
64
|
-
|
|
65
|
-
- Source file hash differs.
|
|
66
|
-
- Project rules changed.
|
|
67
|
-
- Provider output differs.
|
|
68
|
-
- Test environment changed.
|
|
69
|
-
- Required artifact is missing.
|
|
70
|
-
- Runtime version differs.
|
|
71
|
-
|
|
72
|
-
## 7. Safety
|
|
73
|
-
|
|
74
|
-
Replay must never:
|
|
75
|
-
|
|
76
|
-
- Re-run destructive commands without approval.
|
|
77
|
-
- Modify the original worktree.
|
|
78
|
-
- Reuse expired credentials.
|
|
79
|
-
- Send notifications as if replay were live.
|
|
80
|
-
- Mark original tasks complete.
|
|
81
|
-
|
|
82
|
-
## 8. Runtime Events
|
|
83
|
-
|
|
84
|
-
```ts
|
|
85
|
-
type ReplayRuntimeEvent =
|
|
86
|
-
| { type: "replay.started"; jobId: string; mode: string }
|
|
87
|
-
| { type: "replay.state.reconstructed"; jobId: string; sequence: number }
|
|
88
|
-
| { type: "replay.divergence.detected"; jobId: string; reason: string }
|
|
89
|
-
| { type: "replay.completed"; jobId: string };
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## 9. Tests
|
|
93
|
-
|
|
94
|
-
- Reconstructs state from event log.
|
|
95
|
-
- Detects changed source hash.
|
|
96
|
-
- Inspect mode performs no writes.
|
|
97
|
-
- Reexecute mode requires approval.
|
|
98
|
-
- Original task state remains unchanged.
|
|
99
|
-
- Missing artifact creates divergence entry.
|
|
100
|
-
|
|
101
|
-
## 10. Acceptance Criteria
|
|
102
|
-
|
|
103
|
-
- Replay can reconstruct any checkpointed job.
|
|
104
|
-
- Inspect mode is strictly read-only.
|
|
105
|
-
- Divergences are explicit.
|
|
106
|
-
- Reexecution is isolated.
|
|
107
|
-
- Original job data is immutable.
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
# RFC-0060 — Memory Engine with OKF Integration
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
The Memory Engine converts runtime knowledge into durable, human-readable, agent-readable project memory using Google's Open Knowledge Format (OKF).
|
|
6
|
-
|
|
7
|
-
It bridges temporary Shared Blackboard state and long-term project knowledge.
|
|
8
|
-
|
|
9
|
-
## 2. Responsibilities
|
|
10
|
-
|
|
11
|
-
- Read OKF bundles.
|
|
12
|
-
- Validate OKF concept documents.
|
|
13
|
-
- Index concepts.
|
|
14
|
-
- Resolve links.
|
|
15
|
-
- Retrieve relevant knowledge.
|
|
16
|
-
- Export approved lessons.
|
|
17
|
-
- Preserve version history.
|
|
18
|
-
- Generate directory indexes.
|
|
19
|
-
- Record update logs.
|
|
20
|
-
|
|
21
|
-
## 3. OKF Bundle Structure
|
|
22
|
-
|
|
23
|
-
```text
|
|
24
|
-
knowledge/
|
|
25
|
-
+-- index.md
|
|
26
|
-
+-- log.md
|
|
27
|
-
+-- runtime/
|
|
28
|
-
| +-- index.md
|
|
29
|
-
| +-- loop-runtime.md
|
|
30
|
-
| +-- shared-blackboard.md
|
|
31
|
-
+-- providers/
|
|
32
|
-
+-- frameworks/
|
|
33
|
-
+-- failures/
|
|
34
|
-
+-- patterns/
|
|
35
|
-
+-- lessons/
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## 4. Concept Model
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
export interface OkfConcept {
|
|
42
|
-
id: string;
|
|
43
|
-
type: string;
|
|
44
|
-
title?: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
resource?: string;
|
|
47
|
-
tags: string[];
|
|
48
|
-
timestamp?: string;
|
|
49
|
-
metadata: Record<string, unknown>;
|
|
50
|
-
body: string;
|
|
51
|
-
links: OkfLink[];
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The only required OKF frontmatter field is `type`. Unknown metadata must be preserved.
|
|
56
|
-
|
|
57
|
-
## 5. Public Interface
|
|
58
|
-
|
|
59
|
-
```ts
|
|
60
|
-
export interface MemoryEngine {
|
|
61
|
-
loadBundle(path: string): Promise<KnowledgeBundle>;
|
|
62
|
-
validateBundle(bundle: KnowledgeBundle): Promise<ValidationResult>;
|
|
63
|
-
search(query: KnowledgeQuery): Promise<KnowledgeResult[]>;
|
|
64
|
-
writeConcept(input: WriteConceptRequest): Promise<OkfConcept>;
|
|
65
|
-
rebuildIndex(path: string): Promise<void>;
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## 6. Retrieval
|
|
70
|
-
|
|
71
|
-
Retrieval combines:
|
|
72
|
-
|
|
73
|
-
- Exact title match
|
|
74
|
-
- Tag match
|
|
75
|
-
- Concept type
|
|
76
|
-
- Link traversal
|
|
77
|
-
- Framework relevance
|
|
78
|
-
- Task relevance
|
|
79
|
-
- Freshness
|
|
80
|
-
- Authority metadata
|
|
81
|
-
|
|
82
|
-
## 7. Authority
|
|
83
|
-
|
|
84
|
-
Recommended extension:
|
|
85
|
-
|
|
86
|
-
```yaml
|
|
87
|
-
authority: approved | generated | unverified
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Consumers should prioritize approved concepts, but must preserve generated and unverified concepts.
|
|
91
|
-
|
|
92
|
-
## 8. Blackboard Promotion
|
|
93
|
-
|
|
94
|
-
```text
|
|
95
|
-
runtime state
|
|
96
|
-
-> candidate knowledge
|
|
97
|
-
-> deduplicate
|
|
98
|
-
-> review
|
|
99
|
-
-> approved concept
|
|
100
|
-
-> write OKF
|
|
101
|
-
-> update index.md
|
|
102
|
-
-> append log.md
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Temporary status updates should not automatically become durable knowledge.
|
|
106
|
-
|
|
107
|
-
## 9. Validation
|
|
108
|
-
|
|
109
|
-
A conformant concept:
|
|
110
|
-
|
|
111
|
-
- Is UTF-8 Markdown.
|
|
112
|
-
- Contains YAML frontmatter.
|
|
113
|
-
- Contains non-empty `type`.
|
|
114
|
-
- Preserves unknown fields.
|
|
115
|
-
- May contain broken links without failing the entire bundle.
|
|
116
|
-
|
|
117
|
-
Reserved files:
|
|
118
|
-
|
|
119
|
-
- `index.md`
|
|
120
|
-
- `log.md`
|
|
121
|
-
|
|
122
|
-
## 10. Security
|
|
123
|
-
|
|
124
|
-
The Memory Engine must never persist:
|
|
125
|
-
|
|
126
|
-
- API keys
|
|
127
|
-
- Cookies
|
|
128
|
-
- Passwords
|
|
129
|
-
- Raw secrets
|
|
130
|
-
- Private user data unrelated to engineering
|
|
131
|
-
- Complete confidential files unless explicitly approved
|
|
132
|
-
|
|
133
|
-
## 11. Tests
|
|
134
|
-
|
|
135
|
-
- Loads valid OKF concept.
|
|
136
|
-
- Rejects concept missing `type`.
|
|
137
|
-
- Preserves unknown frontmatter.
|
|
138
|
-
- Tolerates broken link.
|
|
139
|
-
- Generates `index.md`.
|
|
140
|
-
- Appends `log.md`.
|
|
141
|
-
- Searches by tag and type.
|
|
142
|
-
- Exports approved learning item.
|
|
143
|
-
- Rejects secret-like content.
|
|
144
|
-
|
|
145
|
-
## 12. Acceptance Criteria
|
|
146
|
-
|
|
147
|
-
- Bundle validation follows OKF v0.1.
|
|
148
|
-
- Unknown frontmatter survives round-trip.
|
|
149
|
-
- Search returns source references.
|
|
150
|
-
- Blackboard content requires promotion review.
|
|
151
|
-
- Index and log generation are deterministic.
|
|
152
|
-
- Secret filtering occurs before persistence.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# RFC-0066 — GENERIC WEB PLUGIN
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Defines the architecture contract for the generic web plugin subsystem.
|
|
5
|
-
|
|
6
|
-
## Scope
|
|
7
|
-
- Responsibilities
|
|
8
|
-
- Public interfaces
|
|
9
|
-
- Runtime events
|
|
10
|
-
- Integration points
|
|
11
|
-
- Acceptance criteria
|
|
12
|
-
|
|
13
|
-
## Key Interfaces
|
|
14
|
-
- Service
|
|
15
|
-
- Configuration
|
|
16
|
-
- Events
|
|
17
|
-
|
|
18
|
-
## Dependencies
|
|
19
|
-
To be refined during implementation review.
|
|
20
|
-
|
|
21
|
-
## Acceptance
|
|
22
|
-
- Typed API
|
|
23
|
-
- Deterministic behavior
|
|
24
|
-
- Unit tests
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# RFC-0067 — CLI Plugin SDK
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
A Node.js CLI SDK for managing pi-harness plugins — install, list, update, remove, and invoke plugin commands. Provides both a programmatic API (`PluginCLI`) and a standalone CLI (`pi-plugin`).
|
|
6
|
-
|
|
7
|
-
## Architecture
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
packages/cli-plugin-sdk/
|
|
11
|
-
+-- src/
|
|
12
|
-
| +-- index.ts # PluginCLI class + CLI entry
|
|
13
|
-
| +-- commands/ # Install, list, remove, invoke, update
|
|
14
|
-
| +-- registry.ts # npm registry client
|
|
15
|
-
| +-- plugin-fs.ts # Filesystem operations
|
|
16
|
-
| +-- types.ts
|
|
17
|
-
+-- bin/
|
|
18
|
-
| +-- pi-plugin.js # CLI entry point
|
|
19
|
-
+-- package.json
|
|
20
|
-
+-- README.md
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## CLI Commands
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
pi-plugin install <name> [--version <v>] [--global]
|
|
27
|
-
pi-plugin list [--json]
|
|
28
|
-
pi-plugin remove <name>
|
|
29
|
-
pi-plugin update [name]
|
|
30
|
-
pi-plugin invoke <name> <command> [--args <json>]
|
|
31
|
-
pi-plugin search <query>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Programmatic API
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { PluginCLI } from '@pi/cli-plugin-sdk';
|
|
38
|
-
|
|
39
|
-
const cli = new PluginCLI({ cwd: process.cwd() });
|
|
40
|
-
await cli.install('my-plugin');
|
|
41
|
-
await cli.invoke('my-plugin', 'analyze', { path: './src' });
|
|
42
|
-
const plugins = await cli.list();
|
|
43
|
-
await cli.remove('my-plugin');
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Interfaces
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
// packages/cli-plugin-sdk/src/types.ts
|
|
50
|
-
|
|
51
|
-
export interface PluginCLIConfig {
|
|
52
|
-
cwd?: string;
|
|
53
|
-
globalDir?: string;
|
|
54
|
-
registry?: string;
|
|
55
|
-
npmBin?: string;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface InstalledPlugin {
|
|
59
|
-
name: string;
|
|
60
|
-
version: string;
|
|
61
|
-
path: string;
|
|
62
|
-
manifest: PluginManifest;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface PluginSearchResult {
|
|
66
|
-
name: string;
|
|
67
|
-
version: string;
|
|
68
|
-
description: string;
|
|
69
|
-
downloads: number;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export class PluginCLI {
|
|
73
|
-
constructor(config?: PluginCLIConfig);
|
|
74
|
-
install(name: string, options?: { version?: string; global?: boolean }): Promise<void>;
|
|
75
|
-
remove(name: string): Promise<void>;
|
|
76
|
-
list(options?: { json?: boolean }): Promise<InstalledPlugin[]>;
|
|
77
|
-
update(name?: string): Promise<void>;
|
|
78
|
-
search(query: string): Promise<PluginSearchResult[]>;
|
|
79
|
-
invoke(pluginName: string, command: string, args?: Record<string, unknown>): Promise<unknown>;
|
|
80
|
-
getPluginPath(name: string): string | null;
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Key Implementation Details
|
|
85
|
-
|
|
86
|
-
- **Installation**: Uses `npm install` with `--save` or `--global` flag
|
|
87
|
-
- **Plugin directory**: `{cwd}/node_modules/@pi/plugins/` for local, `~/.pi/plugins/` for global
|
|
88
|
-
- **Manifest validation**: Validates `package.json` has `pi` field with `sdkVersion`
|
|
89
|
-
- **Invoke**: Loads plugin module and calls exported function by name
|
|
90
|
-
- **Search**: Queries npm registry for packages matching `@pi/plugin-*` or `@pi/*-plugin`
|
|
91
|
-
|
|
92
|
-
## Acceptance Criteria
|
|
93
|
-
|
|
94
|
-
- [ ] `pi-plugin install` installs from npm and validates manifest
|
|
95
|
-
- [ ] `pi-plugin list` shows all installed plugins with versions
|
|
96
|
-
- [ ] `pi-plugin remove` uninstalls and cleans up
|
|
97
|
-
- [ ] `pi-plugin update` updates to latest compatible version
|
|
98
|
-
- [ ] `pi-plugin invoke` calls plugin exported function
|
|
99
|
-
- [ ] `pi-plugin search` queries npm registry
|
|
100
|
-
- [ ] Programmatic `PluginCLI` API works
|
|
101
|
-
- [ ] Unit tests for all commands
|
package/RFC/0068_MCP_ADAPTER.md
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# RFC-0068 — MCP Adapter
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
Exposes the pi-harness runtime as a [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server. External MCP-compatible clients (Claude Desktop, Cursor, etc.) can discover and invoke harness capabilities as MCP tools, prompts, and resources.
|
|
6
|
-
|
|
7
|
-
## Architecture
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
packages/mcp-adapter/
|
|
11
|
-
+-- src/
|
|
12
|
-
| +-- server.ts # MCP server (stdio transport)
|
|
13
|
-
| +-- tools.ts # Tool definitions (4 core tools)
|
|
14
|
-
| +-- resources.ts # Read-only resource handlers
|
|
15
|
-
| +-- prompts.ts # Prompt templates
|
|
16
|
-
| +-- types.ts
|
|
17
|
-
| +-- index.ts
|
|
18
|
-
+-- package.json
|
|
19
|
-
+-- README.md
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## MCP Protocol Compliance
|
|
23
|
-
|
|
24
|
-
- **Transport**: STDIO (JSON-RPC 2.0 over stdin/stdout)
|
|
25
|
-
- **Protocol version**: 2024-11-05
|
|
26
|
-
- **Schema**: Follows MCP JSON-RPC request/response convention
|
|
27
|
-
|
|
28
|
-
## Exposed Tools
|
|
29
|
-
|
|
30
|
-
| Tool | Description | Parameters |
|
|
31
|
-
|------|-------------|------------|
|
|
32
|
-
| `analyze_workspace` | Analyze a codebase directory | `{ path: string, framework?: string }` |
|
|
33
|
-
| `search_memory` | Search harness memory store | `{ query: string, limit?: number }` |
|
|
34
|
-
| `list_skills` | List available harness skills | `{ capability?: string }` |
|
|
35
|
-
| `invoke_skill` | Invoke a named skill | `{ name: string, trigger: object }` |
|
|
36
|
-
|
|
37
|
-
## Exposed Resources
|
|
38
|
-
|
|
39
|
-
| URI | Description |
|
|
40
|
-
|-----|-------------|
|
|
41
|
-
| `harness://skills` | JSON list of all registered skills |
|
|
42
|
-
| `harness://capabilities` | Current capability registry |
|
|
43
|
-
| `harness://framework/{name}` | Framework analysis result |
|
|
44
|
-
|
|
45
|
-
## Exposed Prompts
|
|
46
|
-
|
|
47
|
-
| Prompt | Description |
|
|
48
|
-
|--------|-------------|
|
|
49
|
-
| `analyze_project` | Full project analysis with recommendations |
|
|
50
|
-
| `review_code` | Code review with context from workspace |
|
|
51
|
-
|
|
52
|
-
## Server Entry
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
// src/server.ts
|
|
56
|
-
export async function createMCPServer(options?: MCPServerOptions): Promise<void> {
|
|
57
|
-
// Read JSON-RPC requests from stdin
|
|
58
|
-
// Write responses to stdout
|
|
59
|
-
// Log errors to stderr
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Key Implementation
|
|
64
|
-
|
|
65
|
-
- **Transport**: STDIO — reads JSON-RPC requests from `process.stdin`, writes to `process.stdout`
|
|
66
|
-
- **Protocol**: MCP 2024-11-05 JSON-RPC 2.0
|
|
67
|
-
- **Server initialization**: Sends `initialize` response with server name/version/capabilities
|
|
68
|
-
- **Tool invocation**: Maps MCP `tools/call` to harness internal calls
|
|
69
|
-
- **Resources**: Read-only, served as `resources/list` + `resources/read`
|
|
70
|
-
- **Prompts**: Served as `prompts/list` + `prompts/get`
|
|
71
|
-
- **No network**: STDIO-only for security
|
|
72
|
-
|
|
73
|
-
## Types
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
// src/types.ts
|
|
77
|
-
|
|
78
|
-
export interface MCPServerOptions {
|
|
79
|
-
name?: string;
|
|
80
|
-
version?: string;
|
|
81
|
-
capabilities?: ServerCapabilities;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface ServerCapabilities {
|
|
85
|
-
tools?: { listChanged?: boolean };
|
|
86
|
-
resources?: { subscribe?: boolean; listChanged?: boolean };
|
|
87
|
-
prompts?: { listChanged?: boolean };
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// MCP JSON-RPC types
|
|
91
|
-
export interface MCPRequest {
|
|
92
|
-
jsonrpc: "2.0";
|
|
93
|
-
id: number | string;
|
|
94
|
-
method: string;
|
|
95
|
-
params?: Record<string, unknown>;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export interface MCPResponse {
|
|
99
|
-
jsonrpc: "2.0";
|
|
100
|
-
id: number | string;
|
|
101
|
-
result?: unknown;
|
|
102
|
-
error?: { code: number; message: string; data?: unknown };
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Acceptance Criteria
|
|
107
|
-
|
|
108
|
-
- [ ] MCP server starts and responds to `initialize`
|
|
109
|
-
- [ ] `tools/list` returns 4 harness tools
|
|
110
|
-
- [ ] `tools/call` invokes tool and returns result
|
|
111
|
-
- [ ] `resources/list` returns harness resources
|
|
112
|
-
- [ ] `prompts/list` returns harness prompts
|
|
113
|
-
- [ ] STDIO transport works correctly
|
|
114
|
-
- [ ] Unit tests for tool handlers
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# RFC-0069 — Google A2A Adapter
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
Implements the [Google Agent-to-Agent (A2A) protocol](https://google.github.io/A2A/) to enable pi-harness agents to discover, communicate, and delegate tasks to other A2A-compatible agents. Bridges the harness agent system with the broader A2A ecosystem.
|
|
6
|
-
|
|
7
|
-
## Architecture
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
packages/a2a-adapter/
|
|
11
|
-
+-- src/
|
|
12
|
-
| +-- agent.ts # A2AAgent class (agentcard, task handling)
|
|
13
|
-
| +-- client.ts # A2AClient class (agent discovery, delegation)
|
|
14
|
-
| +-- protocol.ts # A2A protocol types and constants
|
|
15
|
-
| +-- transport.ts # HTTP transport with SSE support
|
|
16
|
-
| +-- types.ts
|
|
17
|
-
| +-- index.ts
|
|
18
|
-
+-- package.json
|
|
19
|
-
+-- README.md
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## A2A Protocol Overview
|
|
23
|
-
|
|
24
|
-
A2A defines:
|
|
25
|
-
|
|
26
|
-
- **AgentCard**: JSON document at `/.well-known/agent.json` describing agent capabilities
|
|
27
|
-
- **Tasks**: Long-running task objects with status updates
|
|
28
|
-
- **Messages**: Task input/output as JSON
|
|
29
|
-
- **Skills**: Agent capability descriptors
|
|
30
|
-
- **Transport**: HTTP + Server-Sent Events (SSE) for streaming
|
|
31
|
-
|
|
32
|
-
## A2AAgent (Server Side)
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
// Expose this harness agent as an A2A agent
|
|
36
|
-
export class A2AAgent {
|
|
37
|
-
constructor(config: A2AAgentConfig);
|
|
38
|
-
|
|
39
|
-
// Serve AgentCard at /.well-known/agent.json
|
|
40
|
-
async serveAgentCard(): Promise<AgentCard>;
|
|
41
|
-
|
|
42
|
-
// Handle incoming A2A requests
|
|
43
|
-
async handleRequest(req: A2ARequest): Promise<A2AResponse>;
|
|
44
|
-
|
|
45
|
-
// Send task result back (for push notifications)
|
|
46
|
-
async sendTaskResult(taskId: string, result: TaskResult): Promise<void>;
|
|
47
|
-
|
|
48
|
-
// Stream task updates via SSE
|
|
49
|
-
streamTaskUpdates(taskId: string): AsyncGenerator<TaskUpdate>;
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## A2AClient (Delegate Side)
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
// Discover and delegate to remote A2A agents
|
|
57
|
-
export class A2AClient {
|
|
58
|
-
constructor(config?: A2AClientConfig);
|
|
59
|
-
|
|
60
|
-
// Discover agent via URL or well-known endpoint
|
|
61
|
-
async discoverAgent(url: string): Promise<AgentCard>;
|
|
62
|
-
|
|
63
|
-
// Search for agents by skill/capability
|
|
64
|
-
async findAgents(criteria: AgentSearchCriteria): Promise<AgentCard[]>;
|
|
65
|
-
|
|
66
|
-
// Send task to agent
|
|
67
|
-
async sendTask(agentUrl: string, task: Task): Promise<TaskHandle>;
|
|
68
|
-
|
|
69
|
-
// Get task result
|
|
70
|
-
async getTaskResult(taskId: string, agentUrl: string): Promise<TaskResult>;
|
|
71
|
-
|
|
72
|
-
// Subscribe to task updates (SSE)
|
|
73
|
-
subscribeToTask(taskId: string, agentUrl: string): AsyncGenerator<TaskUpdate>;
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## AgentCard
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
export interface AgentCard {
|
|
81
|
-
name: string;
|
|
82
|
-
description: string;
|
|
83
|
-
url: string;
|
|
84
|
-
version: string;
|
|
85
|
-
capabilities: {
|
|
86
|
-
streaming?: boolean;
|
|
87
|
-
pushNotifications?: boolean;
|
|
88
|
-
stateTransitionHistory?: boolean;
|
|
89
|
-
};
|
|
90
|
-
skills: Skill[];
|
|
91
|
-
authentication?: { schemes: string[] };
|
|
92
|
-
defaultInputModes?: string[];
|
|
93
|
-
defaultOutputModes?: string[];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface Skill {
|
|
97
|
-
id: string;
|
|
98
|
-
name: string;
|
|
99
|
-
description: string;
|
|
100
|
-
tags?: string[];
|
|
101
|
-
inputModes?: string[];
|
|
102
|
-
outputModes?: string[];
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Task Lifecycle
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
SendingAgent -> [send_task] -> ReceivingAgent
|
|
110
|
-
-> Task created (status: working)
|
|
111
|
-
-> TaskUpdate events (optional)
|
|
112
|
-
-> Task completed/cancelled/failed
|
|
113
|
-
SendingAgent <- [task_result] <- ReceivingAgent
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## Harness Integration
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
// Integrate with harness agent system
|
|
120
|
-
export interface A2AIntegrationConfig {
|
|
121
|
-
agentUrl: string;
|
|
122
|
-
agentPort: number;
|
|
123
|
-
pushUrl?: string; // For push notifications
|
|
124
|
-
agentCard: Partial<AgentCard>;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// When harness receives A2A task, route to skill-registry
|
|
128
|
-
// When harness delegates, use A2AClient
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Acceptance Criteria
|
|
132
|
-
|
|
133
|
-
- [ ] `A2AAgent` serves valid AgentCard at well-known endpoint
|
|
134
|
-
- [ ] `A2AAgent` handles `send_task` requests and returns task result
|
|
135
|
-
- [ ] `A2AClient` discovers agents via well-known URL
|
|
136
|
-
- [ ] `A2AClient` sends tasks and retrieves results
|
|
137
|
-
- [ ] SSE streaming for task updates works
|
|
138
|
-
- [ ] Harness skill-registry used for task routing
|
|
139
|
-
- [ ] Unit tests for all components
|