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,127 +0,0 @@
|
|
|
1
|
-
# Test Plan — RFC-0101
|
|
2
|
-
|
|
3
|
-
## Unit Tests
|
|
4
|
-
|
|
5
|
-
### Inbox
|
|
6
|
-
|
|
7
|
-
- `inbox.append` writes one JSON line per call to `tasks.jsonl`.
|
|
8
|
-
- `inbox.list` returns queued tasks in stable order (priority -> createdAt).
|
|
9
|
-
- `inbox.transition` updates status atomically with history append.
|
|
10
|
-
- `inbox.archive` moves completed records after the retention window.
|
|
11
|
-
|
|
12
|
-
### Lease
|
|
13
|
-
|
|
14
|
-
- `lease.claim` returns a lease and writes the lease file atomically.
|
|
15
|
-
- Two parallel `claim` calls on the same task — exactly one wins.
|
|
16
|
-
- `lease.heartbeat` extends `expiresAt`; cross-worker heartbeat aborts safely.
|
|
17
|
-
- `lease.reap` releases leases past `expiresAt + grace` and writes a `recovered` history entry.
|
|
18
|
-
- Lease file with corrupt JSON is quarantined, not silently reaped.
|
|
19
|
-
|
|
20
|
-
### Worker
|
|
21
|
-
|
|
22
|
-
- `worker.loop` claims the next ready task and runs it through the inner loop.
|
|
23
|
-
- `worker.recoverOnStartup` calls `lease.reap` once before the main loop.
|
|
24
|
-
- `worker.heartbeat` writes to `worker-registry.json` at the configured cadence.
|
|
25
|
-
- Worker `SIGTERM` handler runs graceful shutdown and exits 0.
|
|
26
|
-
|
|
27
|
-
### Privilege Broker
|
|
28
|
-
|
|
29
|
-
- `registry.load` reads `config/privileges.yaml` and rejects unknown capabilities.
|
|
30
|
-
- `executor.execve` runs an exact `argv` with no shell.
|
|
31
|
-
- `executor.argvTampering` — passing extra args that do not match the registered `argv` is rejected.
|
|
32
|
-
- `executor.unknownCapability` fails with a structured `BrokerDeniedError`.
|
|
33
|
-
- `audit.append` writes one line per broker call; rotation reads `logrotate` config and works under simulated 24 h clock.
|
|
34
|
-
|
|
35
|
-
### Policy Engine Integration
|
|
36
|
-
|
|
37
|
-
- `policy.class(capability)` resolves from `config/privileges.yaml`.
|
|
38
|
-
- Each capability in the initial registry is mapped to the class declared in RFC-0101 §9.
|
|
39
|
-
- `Approval.request` creates an approval request with `expiresAt`.
|
|
40
|
-
- `Approval.timeout` sweeps expired requests and fails the task.
|
|
41
|
-
|
|
42
|
-
### Scheduler Adapter
|
|
43
|
-
|
|
44
|
-
- `systemd.compile(task)` produces a `.service` + `.timer` pair matching the template.
|
|
45
|
-
- `launchd.compile(task)` produces a `plist` with `StartCalendarInterval`.
|
|
46
|
-
- `cron.compile(task)` produces a crontab fragment.
|
|
47
|
-
- `internal.compile(task)` registers an in-process timer (and is marked not-for-production).
|
|
48
|
-
- Re-running install does not duplicate units (idempotency test).
|
|
49
|
-
|
|
50
|
-
## Integration Tests
|
|
51
|
-
|
|
52
|
-
### Happy Path
|
|
53
|
-
|
|
54
|
-
- Submit a task while a chat session is open; close the chat; worker still completes the task.
|
|
55
|
-
- Schedule a recurring task; verify it fires every N minutes under `cron` and `systemd` adapters.
|
|
56
|
-
- OKF pattern bundle is produced on a successful task with deliverable.
|
|
57
|
-
- OKF lesson bundle is produced on a classified failure.
|
|
58
|
-
|
|
59
|
-
### Concurrency
|
|
60
|
-
|
|
61
|
-
- Spin up two workers on the same host; submit 100 tasks; verify each is executed exactly once.
|
|
62
|
-
- Spin up a reaper script in parallel with the workers; verify no lease is reaped while still heartbeating.
|
|
63
|
-
|
|
64
|
-
### Recovery
|
|
65
|
-
|
|
66
|
-
- Kill a worker mid-task with `SIGKILL`; another worker resumes the task from its last checkpoint.
|
|
67
|
-
- Reboot the host (or simulate via `systemctl restart`); worker restarts; in-flight tasks recovered.
|
|
68
|
-
- Fill the disk to 99 %; worker pauses new claims; verify no checkpoint corruption.
|
|
69
|
-
- Block the notification channel for 1 hour; verify events buffer and flush on reconnect.
|
|
70
|
-
|
|
71
|
-
### Approval Flow
|
|
72
|
-
|
|
73
|
-
- Submit a `human_approval_required` task; verify the task pauses at `waiting_approval`.
|
|
74
|
-
- Approve the task via operator; verify the task resumes and completes.
|
|
75
|
-
- Deny the task; verify it transitions to `failed` with reason "approval denied".
|
|
76
|
-
- Let an approval expire (24 h); verify it transitions to `failed` with reason "approval timeout".
|
|
77
|
-
|
|
78
|
-
### Privilege Broker
|
|
79
|
-
|
|
80
|
-
- Request a registered capability -> succeeds.
|
|
81
|
-
- Request an unknown capability -> fails with `BrokerDeniedError`.
|
|
82
|
-
- Request a registered capability with mismatched args -> fails.
|
|
83
|
-
- Verify audit log contains one entry per call with the correct shape.
|
|
84
|
-
|
|
85
|
-
## Failure-Mode Tests
|
|
86
|
-
|
|
87
|
-
| Scenario | Expected Outcome |
|
|
88
|
-
|---|---|
|
|
89
|
-
| Worker killed mid-task | Lease reaper releases; next worker resumes from checkpoint. |
|
|
90
|
-
| Host reboot | Supervisor restarts worker; leases reaped; checkpoints restored. |
|
|
91
|
-
| Filesystem full during checkpoint | Worker pauses new claims; operator notified; no half-written checkpoint. |
|
|
92
|
-
| Quota exhausted | Task transitions to `waiting_quota`; resumes after reset. |
|
|
93
|
-
| Provider returns 5xx for 30 min | Tasks wait in `waiting_quota`; resume on green health probe. |
|
|
94
|
-
| Clock skew between two workers | Atomic rename protects; only one heartbeat wins. |
|
|
95
|
-
| Privilege registry file corrupted | Worker refuses to start; clear error pointing at schema validator. |
|
|
96
|
-
| Approval request lost in transit | Task expires after 24 h; broker logs lost request. |
|
|
97
|
-
| Repeated identical failure | After `maxAttempts` the task moves to `dead_letter`; operator notified. |
|
|
98
|
-
| Recursive task creation (cycle) | DAG cycle detection rejects; task fails. |
|
|
99
|
-
|
|
100
|
-
## Security Tests
|
|
101
|
-
|
|
102
|
-
- Capability enumeration refuses unknown names.
|
|
103
|
-
- Argv tampering rejected at broker.
|
|
104
|
-
- Audit log cannot be rewritten by the worker (`chmod 0640`, owner `root`, group `your_app`).
|
|
105
|
-
- No `shell.root`, `sudo.any`, or wildcard capabilities are reachable via the registry.
|
|
106
|
-
- Agent cannot mutate `privileges.yaml` at runtime (no API exposed).
|
|
107
|
-
|
|
108
|
-
## Performance / Cost
|
|
109
|
-
|
|
110
|
-
- Worker steady-state CPU < 1 % on idle (verify with `pidstat -u -p <pid> 60`).
|
|
111
|
-
- Heartbeat write rate < 1 KB / 30 s.
|
|
112
|
-
- Inbox append throughput ≥ 1 000 tasks / s on local SSD.
|
|
113
|
-
- Lease claim latency < 5 ms on local filesystem.
|
|
114
|
-
|
|
115
|
-
## Acceptance Run
|
|
116
|
-
|
|
117
|
-
- All 25 criteria in RFC-0101 §20 must be demonstrated.
|
|
118
|
-
- Run the integration suite end-to-end against a clean `~/.pi/harness/` directory.
|
|
119
|
-
- Capture the test report under `test/reports/RFC-0101-<date>.md`.
|
|
120
|
-
|
|
121
|
-
## Required Tooling
|
|
122
|
-
|
|
123
|
-
- `bun test` (or `node --test`) for unit + integration.
|
|
124
|
-
- `tmux` or `setsid` for parallel-worker chaos.
|
|
125
|
-
- `systemd-run --scope` for supervised-worker tests on Linux.
|
|
126
|
-
- `logrotate --debug` for audit-log rotation tests.
|
|
127
|
-
- `faketime` (or equivalent) for approval-timeout and clock-skew tests.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Acceptance Criteria — RFC-0102 Context Engineering Pipeline
|
|
2
|
-
|
|
3
|
-
## Functional
|
|
4
|
-
|
|
5
|
-
- [ ] IntentAnalyzer classifies "fix the login bug" as `bug_fix`
|
|
6
|
-
- [ ] IntentAnalyzer classifies "add dark mode support" as `feature`
|
|
7
|
-
- [ ] IntentAnalyzer classifies "deploy to production" as `deployment`
|
|
8
|
-
- [ ] IntentAnalyzer falls back to `general` for unknown input
|
|
9
|
-
- [ ] WorkspaceScanner detects git branch, dirty state, modified files
|
|
10
|
-
- [ ] WorkspaceScanner detects project type from package.json, go.mod, Cargo.toml
|
|
11
|
-
- [ ] WorkspaceScanner detects framework from vite.config.ts, next.config.js, nuxt.config.ts
|
|
12
|
-
- [ ] DependencyAnalyzer parses ESM imports: `import X from './y'`, `import { a } from 'pkg'`
|
|
13
|
-
- [ ] DependencyAnalyzer parses CommonJS: `const X = require('./y')`
|
|
14
|
-
- [ ] DependencyAnalyzer parses Python: `from module import x`
|
|
15
|
-
- [ ] ContextDiscovery collects candidates from workspace + git diff + OKF
|
|
16
|
-
- [ ] ContextEngineeringPipeline returns a valid ContextPackage
|
|
17
|
-
- [ ] Policy filter denies `**/.env`, `**/*.pem`, `**/credentials/**`
|
|
18
|
-
- [ ] Cache key invalidates when git branch changes
|
|
19
|
-
- [ ] Cache key invalidates when AGENTS.md changes
|
|
20
|
-
|
|
21
|
-
## Non-Functional
|
|
22
|
-
|
|
23
|
-
- [ ] Each package compiles with `npx tsc --skipLibCheck` zero errors
|
|
24
|
-
- [ ] All tests pass: `bun test packages/*/test/*.test.ts`
|
|
25
|
-
- [ ] No hardcoded paths — uses configurable root
|
|
26
|
-
- [ ] No secret leakage — .env files never included
|
|
27
|
-
- [ ] Pipeline processes known workspace in < 2 seconds
|
|
28
|
-
|
|
29
|
-
## Integration
|
|
30
|
-
|
|
31
|
-
- [ ] Pipeline integrates with `@pi/context-compiler` (compileContext, loadOkfConcepts)
|
|
32
|
-
- [ ] Pipeline integrates with `@pi/session-api` for historical context
|
|
33
|
-
- [ ] Pipeline output compatible with provider router input format
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# AI Brief — RFC-0102 Context Engineering Pipeline
|
|
2
|
-
|
|
3
|
-
## What is being built
|
|
4
|
-
|
|
5
|
-
An 5-package pipeline that transforms user intent into an optimal LLM input:
|
|
6
|
-
|
|
7
|
-
1. **intent-analyzer** — keyword-based intent classification
|
|
8
|
-
2. **workspace-scanner** — git state + project type detection
|
|
9
|
-
3. **dependency-analyzer** — import/export graph builder
|
|
10
|
-
4. **context-discovery** — orchestrates all stages to collect relevant files
|
|
11
|
-
5. **context-engineering** — wires pipeline, builds ContextPackage, manages cache
|
|
12
|
-
|
|
13
|
-
Existing `packages/context-compiler/` covers: ranking, compression, compilation, OKF loading.
|
|
14
|
-
|
|
15
|
-
## Key interfaces
|
|
16
|
-
|
|
17
|
-
- `Intent` — kind (bug_fix/feature/etc.), confidence, signals, originalText
|
|
18
|
-
- `WorkspaceSnapshot` — root, git state, project config, env files, config files
|
|
19
|
-
- `DependencyGraph` — Map<filePath, DependencyNode> + edges[]
|
|
20
|
-
- `DiscoveredContext` — intent + workspace + dependencies + knowledge + files
|
|
21
|
-
- `ContextPackage` — structured output sent to LLM
|
|
22
|
-
|
|
23
|
-
## Integration
|
|
24
|
-
|
|
25
|
-
- Pipeline reads from: filesystem, git, OKF
|
|
26
|
-
- Output feeds: `compileContext()` from `@pi/context-compiler`, then to provider router
|
|
27
|
-
- No new schema — uses existing context-compiler types for candidates
|
|
28
|
-
- Session API (RFC-0103) provides historical context
|
|
29
|
-
|
|
30
|
-
## Testing strategy
|
|
31
|
-
|
|
32
|
-
- Unit: intent detection keywords, workspace detection patterns, import parsing
|
|
33
|
-
- Integration: full pipeline on known workspaces
|
|
34
|
-
- Mock workspace fixture for CI
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Files — RFC-0102 Context Engineering Pipeline
|
|
2
|
-
|
|
3
|
-
## New Packages
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
packages/
|
|
7
|
-
+-- intent-analyzer/
|
|
8
|
-
| +-- src/
|
|
9
|
-
| | +-- types.ts # Intent, IntentKind, IntentConfidence, IntentSignal, IntentRule
|
|
10
|
-
| | +-- analyzer.ts # IntentAnalyzer class — keyword scoring, analyze(text): Intent
|
|
11
|
-
| | +-- index.ts # Public barrel
|
|
12
|
-
| +-- test/
|
|
13
|
-
| | +-- analyzer.test.ts # bun test — all intent kinds
|
|
14
|
-
| +-- package.json
|
|
15
|
-
| +-- tsconfig.json
|
|
16
|
-
|
|
|
17
|
-
+-- workspace-scanner/
|
|
18
|
-
| +-- src/
|
|
19
|
-
| | +-- types.ts # WorkspaceSnapshot, GitState, ProjectConfig, ScannerOptions
|
|
20
|
-
| | +-- git.ts # getGitState(rootPath): GitState | null via git CLI
|
|
21
|
-
| | +-- detect.ts # detectProject(rootPath): ProjectConfig — file-based detection
|
|
22
|
-
| | +-- scanner.ts # WorkspaceScanner class — orchestrates git + detect
|
|
23
|
-
| | +-- index.ts # Public barrel
|
|
24
|
-
| +-- test/
|
|
25
|
-
| | +-- scanner.test.ts # bun test — mock workspace
|
|
26
|
-
| +-- package.json
|
|
27
|
-
| +-- tsconfig.json
|
|
28
|
-
|
|
|
29
|
-
+-- dependency-analyzer/
|
|
30
|
-
| +-- src/
|
|
31
|
-
| | +-- types.ts # DependencyNode, DependencyGraph, DependencyEdge, DependencyKind
|
|
32
|
-
| | +-- analyzer.ts # DependencyAnalyzer class — scan + graph build
|
|
33
|
-
| | +-- imports.ts # parseImports(content, filePath): string[] — regex for TS/JS/Python
|
|
34
|
-
| | +-- index.ts # Public barrel
|
|
35
|
-
| +-- test/
|
|
36
|
-
| | +-- analyzer.test.ts # bun test — import patterns
|
|
37
|
-
| +-- package.json
|
|
38
|
-
| +-- tsconfig.json
|
|
39
|
-
|
|
|
40
|
-
+-- context-discovery/
|
|
41
|
-
| +-- src/
|
|
42
|
-
| | +-- types.ts # DiscoveredContext, DiscoveryOptions, DiscoveryResult
|
|
43
|
-
| | +-- discovery.ts # ContextDiscovery class — orchestrates all stages
|
|
44
|
-
| | +-- index.ts # Public barrel
|
|
45
|
-
| +-- test/
|
|
46
|
-
| | +-- discovery.test.ts # bun test — mock dependencies
|
|
47
|
-
| +-- package.json
|
|
48
|
-
| +-- tsconfig.json
|
|
49
|
-
|
|
|
50
|
-
+-- context-engineering/
|
|
51
|
-
+-- src/
|
|
52
|
-
| +-- types.ts # ContextPackage, PipelineOptions, PipelineStats
|
|
53
|
-
| +-- pipeline.ts # ContextEngineeringPipeline — orchestrates all 5 packages
|
|
54
|
-
| +-- cache.ts # ContextCache — wraps @pi/context-compiler cache
|
|
55
|
-
| +-- index.ts # Public barrel
|
|
56
|
-
+-- test/
|
|
57
|
-
| +-- pipeline.test.ts # bun test — full pipeline
|
|
58
|
-
+-- package.json
|
|
59
|
-
+-- tsconfig.json
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Integration (do not create new files)
|
|
63
|
-
|
|
64
|
-
| Source | Import from |
|
|
65
|
-
|---|---|
|
|
66
|
-
| Context Compiler | `@pi/context-compiler` — compileContext, ContextCandidate, ContextPolicy |
|
|
67
|
-
| OKF Loader | `@pi/context-compiler/src/okf-loader.js` — loadOkfConcepts |
|
|
68
|
-
| Session API | `@pi/session-api` — getRecentFailures, getArchitectureHistory |
|
|
69
|
-
|
|
70
|
-
## Files NOT Created
|
|
71
|
-
|
|
72
|
-
- `packages/context-compiler/` — already exists, do not modify
|
|
73
|
-
- `packages/okf-kb/` — already exists, do not modify
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# Tasks — RFC-0102 Context Engineering Pipeline
|
|
2
|
-
|
|
3
|
-
## Phase 1 — intent-analyzer
|
|
4
|
-
|
|
5
|
-
- [ ] Create `packages/intent-analyzer/src/types.ts` — Intent, IntentKind (14 kinds), IntentConfidence, IntentSignal, IntentRule
|
|
6
|
-
- [ ] Create `packages/intent-analyzer/src/analyzer.ts` — IntentAnalyzer class with keyword scoring, analyze(text), analyzeBatch(texts)
|
|
7
|
-
- [ ] Create `packages/intent-analyzer/src/index.ts` — public barrel
|
|
8
|
-
- [ ] Create `packages/intent-analyzer/test/analyzer.test.ts` — bun test for all 14 intent kinds
|
|
9
|
-
- [ ] Build and verify: `npx tsc -p packages/intent-analyzer/tsconfig.json --skipLibCheck`
|
|
10
|
-
- [ ] Run tests: `bun test packages/intent-analyzer/test/analyzer.test.ts`
|
|
11
|
-
|
|
12
|
-
## Phase 2 — workspace-scanner
|
|
13
|
-
|
|
14
|
-
- [ ] Create `packages/workspace-scanner/src/types.ts` — WorkspaceSnapshot, GitState, ProjectConfig, ScannerOptions
|
|
15
|
-
- [ ] Create `packages/workspace-scanner/src/git.ts` — getGitState(rootPath) via git CLI (rev-parse, status --porcelain, log -1)
|
|
16
|
-
- [ ] Create `packages/workspace-scanner/src/detect.ts` — detectProject(rootPath) from file presence (package.json, go.mod, Cargo.toml, etc.)
|
|
17
|
-
- [ ] Create `packages/workspace-scanner/src/scanner.ts` — WorkspaceScanner class orchestrating git + detect
|
|
18
|
-
- [ ] Create `packages/workspace-scanner/src/index.ts` — public barrel
|
|
19
|
-
- [ ] Create `packages/workspace-scanner/test/scanner.test.ts` — bun test with temp dir
|
|
20
|
-
- [ ] Build and verify
|
|
21
|
-
- [ ] Run tests
|
|
22
|
-
|
|
23
|
-
## Phase 3 — dependency-analyzer
|
|
24
|
-
|
|
25
|
-
- [ ] Create `packages/dependency-analyzer/src/types.ts` — DependencyKind enum, DependencyNode, DependencyGraph, DependencyEdge
|
|
26
|
-
- [ ] Create `packages/dependency-analyzer/src/imports.ts` — parseImports(content, filePath) regex for TS/JS/CommonJS/Python
|
|
27
|
-
- [ ] Create `packages/dependency-analyzer/src/analyzer.ts` — DependencyAnalyzer class, analyze(filePath, rootPath): DependencyGraph
|
|
28
|
-
- [ ] Create `packages/dependency-analyzer/src/index.ts` — public barrel
|
|
29
|
-
- [ ] Create `packages/dependency-analyzer/test/analyzer.test.ts` — bun test with sample TypeScript
|
|
30
|
-
- [ ] Build and verify
|
|
31
|
-
- [ ] Run tests
|
|
32
|
-
|
|
33
|
-
## Phase 4 — context-discovery
|
|
34
|
-
|
|
35
|
-
- [ ] Create `packages/context-discovery/src/types.ts` — DiscoveredContext, DiscoveryOptions, DiscoveryResult
|
|
36
|
-
- [ ] Create `packages/context-discovery/src/discovery.ts` — ContextDiscovery class orchestrating intent + workspace + dependency + OKF
|
|
37
|
-
- [ ] Create `packages/context-discovery/src/index.ts` — public barrel
|
|
38
|
-
- [ ] Create `packages/context-discovery/test/discovery.test.ts` — bun test with mocked dependencies
|
|
39
|
-
- [ ] Build and verify
|
|
40
|
-
- [ ] Run tests
|
|
41
|
-
|
|
42
|
-
## Phase 5 — context-engineering (Pipeline Coordinator)
|
|
43
|
-
|
|
44
|
-
- [ ] Create `packages/context-engineering/src/types.ts` — ContextPackage, PipelineOptions, PipelineStats
|
|
45
|
-
- [ ] Create `packages/context-engineering/src/pipeline.ts` — ContextEngineeringPipeline class wiring all 5 packages
|
|
46
|
-
- [ ] Create `packages/context-engineering/src/cache.ts` — ContextCache wrapping @pi/context-compiler cache
|
|
47
|
-
- [ ] Create `packages/context-engineering/src/index.ts` — public barrel
|
|
48
|
-
- [ ] Create `packages/context-engineering/test/pipeline.test.ts` — bun test
|
|
49
|
-
- [ ] Build and verify
|
|
50
|
-
- [ ] Run tests
|
|
51
|
-
|
|
52
|
-
## Phase 6 — Integration
|
|
53
|
-
|
|
54
|
-
- [ ] Import `compileContext` from `@pi/context-compiler` in context-discovery
|
|
55
|
-
- [ ] Import `loadOkfConcepts` from `@pi/context-compiler/src/okf-loader.js` in context-discovery
|
|
56
|
-
- [ ] Wire ContextEngineeringPipeline output to provider router input format
|
|
57
|
-
- [ ] Verify full pipeline builds: `npx tsc` across all 5 packages
|
|
58
|
-
|
|
59
|
-
## Phase 7 — Tests
|
|
60
|
-
|
|
61
|
-
- [ ] Unit: intent-analyzer — all 14 intent kinds detected correctly
|
|
62
|
-
- [ ] Unit: workspace-scanner — git state, project type, framework detection
|
|
63
|
-
- [ ] Unit: dependency-analyzer — import parsing for TS/JS/Python, cycle detection
|
|
64
|
-
- [ ] Unit: context-discovery — candidates collected from all sources
|
|
65
|
-
- [ ] Integration: full pipeline on known test workspace
|
|
66
|
-
- [ ] Security: policy filter denies .env files
|
|
67
|
-
|
|
68
|
-
## Phase 8 — Documentation
|
|
69
|
-
|
|
70
|
-
- [ ] Write `packages/intent-analyzer/README.md`
|
|
71
|
-
- [ ] Write `packages/workspace-scanner/README.md`
|
|
72
|
-
- [ ] Write `packages/dependency-analyzer/README.md`
|
|
73
|
-
- [ ] Write `packages/context-discovery/README.md`
|
|
74
|
-
- [ ] Write `packages/context-engineering/README.md`
|
|
75
|
-
- [ ] Update root `README.md` with RFC-0102 reference
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Tests — RFC-0102 Context Engineering Pipeline
|
|
2
|
-
|
|
3
|
-
## intent-analyzer
|
|
4
|
-
|
|
5
|
-
### Unit Tests
|
|
6
|
-
|
|
7
|
-
| Test | Input | Expected |
|
|
8
|
-
|---|---|---|
|
|
9
|
-
| bug_fix detection | "fix the login bug" | kind = "bug_fix" |
|
|
10
|
-
| feature detection | "add dark mode support" | kind = "feature" |
|
|
11
|
-
| refactor detection | "refactor the auth module" | kind = "refactor" |
|
|
12
|
-
| code_review detection | "review the pull request" | kind = "code_review" |
|
|
13
|
-
| testing detection | "write tests for payment" | kind = "testing" |
|
|
14
|
-
| deployment detection | "deploy to production" | kind = "deployment" |
|
|
15
|
-
| security detection | "fix auth vulnerability" | kind = "security" |
|
|
16
|
-
| performance detection | "optimize database query" | kind = "performance" |
|
|
17
|
-
| architecture detection | "review architecture design" | kind = "architecture" |
|
|
18
|
-
| migration detection | "migrate to TypeScript" | kind = "migration" |
|
|
19
|
-
| research detection | "investigate memory leak" | kind = "research" |
|
|
20
|
-
| learning detection | "explain how X works" | kind = "learning" |
|
|
21
|
-
| documentation detection | "add README for API" | kind = "documentation" |
|
|
22
|
-
| general fallback | "hello world" | kind = "general" |
|
|
23
|
-
| multiple keywords | "fix the security bug" | kind = "bug_fix" (both signals) |
|
|
24
|
-
| analyzeBatch | ["fix bug", "add feat"] | [bug_fix, feature] |
|
|
25
|
-
|
|
26
|
-
## workspace-scanner
|
|
27
|
-
|
|
28
|
-
### Unit Tests
|
|
29
|
-
|
|
30
|
-
| Test | Setup | Expected |
|
|
31
|
-
|---|---|---|
|
|
32
|
-
| detects package.json | package.json in dir | hasNode = true |
|
|
33
|
-
| detects pyproject.toml | pyproject.toml in dir | hasPython = true |
|
|
34
|
-
| detects git repo | .git in dir | hasGit = true |
|
|
35
|
-
| detects dirty git | git with modified files | isDirty = true |
|
|
36
|
-
| detects branch | git on branch "feature-x" | branch = "feature-x" |
|
|
37
|
-
| detects vite | vite.config.ts in dir | framework = "vite" |
|
|
38
|
-
| detects next | next.config.js in dir | framework = "next" |
|
|
39
|
-
| skips git | skipGit = true | git = null |
|
|
40
|
-
| skips config | skipConfig = true | project = {} |
|
|
41
|
-
|
|
42
|
-
## dependency-analyzer
|
|
43
|
-
|
|
44
|
-
### Unit Tests
|
|
45
|
-
|
|
46
|
-
| Test | Input | Expected |
|
|
47
|
-
|---|---|---|
|
|
48
|
-
| ESM default import | `import x from './y'` | ['./y'] |
|
|
49
|
-
| ESM named import | `import { a, b } from './x'` | ['./x'] |
|
|
50
|
-
| ESM package import | `import pkg from 'lodash'` | ['lodash'] |
|
|
51
|
-
| ESM namespace | `import * as x from './y'` | ['./y'] |
|
|
52
|
-
| CommonJS require | `const x = require('./y')` | ['./y'] |
|
|
53
|
-
| Python from-import | `from os import path` | ['os'] |
|
|
54
|
-
| Python direct import | `import numpy` | ['numpy'] |
|
|
55
|
-
| cycle detection | a->b->c->a | cycle = ['a','b','c'] |
|
|
56
|
-
| empty file | '' | [] |
|
|
57
|
-
|
|
58
|
-
## context-discovery
|
|
59
|
-
|
|
60
|
-
### Unit Tests
|
|
61
|
-
|
|
62
|
-
| Test | Setup | Expected |
|
|
63
|
-
|---|---|---|
|
|
64
|
-
| discovers package.json | npm workspace | candidates has package.json |
|
|
65
|
-
| discovers git diff | modified files | candidates has modified files |
|
|
66
|
-
| filters .env | workspace has .env | .env not in candidates |
|
|
67
|
-
| filters node_modules | workspace has node_modules | node_modules not in candidates |
|
|
68
|
-
|
|
69
|
-
## context-engineering
|
|
70
|
-
|
|
71
|
-
### Integration Tests
|
|
72
|
-
|
|
73
|
-
| Test | Setup | Expected |
|
|
74
|
-
|---|---|---|
|
|
75
|
-
| full pipeline | known workspace + task | ContextPackage with intent + files |
|
|
76
|
-
| cache hit | same task twice | second call faster |
|
|
77
|
-
| cache miss | git branch changed | rebuild triggered |
|
|
78
|
-
| policy deny | AGENTS.md denies *.pem | pem files omitted |
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Acceptance Criteria — RFC-0103 Session Event Runtime
|
|
2
|
-
|
|
3
|
-
## Functional
|
|
4
|
-
|
|
5
|
-
- [ ] EventStore.append() generates id + timestamp, appends JSONL line
|
|
6
|
-
- [ ] EventStore.read() returns events filtered by sessionId, since, types, limit
|
|
7
|
-
- [ ] EventStore.search() returns events matching text query
|
|
8
|
-
- [ ] EventStore.stats() returns totalEvents, sizeBytes, lastEventAt
|
|
9
|
-
- [ ] EventStore.list() returns all session IDs from ~/.pi/sessions/
|
|
10
|
-
- [ ] EventBus.publish() returns eventId, notifies all matching subscribers
|
|
11
|
-
- [ ] EventBus.subscribe() returns subscriptionId, sorted by priority (higher first)
|
|
12
|
-
- [ ] EventBus.subscribe() with filter only notifies when filter(data) returns true
|
|
13
|
-
- [ ] EventBus.unsubscribe() removes subscription, no further notifications
|
|
14
|
-
- [ ] EventBus.replay() delivers historical events to new subscriber
|
|
15
|
-
- [ ] ProjectionEngine.addEvent() updates all projections
|
|
16
|
-
- [ ] ProjectionEngine.getDecisions() returns detected architecture decisions
|
|
17
|
-
- [ ] ProjectionEngine.getSummary() returns messageCount, toolCount, decisionCount, topics
|
|
18
|
-
- [ ] SemanticEventBuilder.buildFromSessionEvents() converts SessionEvents to SemanticEvents
|
|
19
|
-
- [ ] WorkflowStateMachine.transition() advances state based on semantic event
|
|
20
|
-
- [ ] SubscriptionEngine.subscribe() creates subscription with predicate
|
|
21
|
-
- [ ] SubscriptionEngine.match() returns all subscriptions whose predicate matches
|
|
22
|
-
- [ ] SessionService.getLatestDecision() returns most recent decision
|
|
23
|
-
- [ ] SessionService.search() returns matching events from event-store
|
|
24
|
-
- [ ] SessionExporter.toMarkdown() generates readable markdown with timeline
|
|
25
|
-
- [ ] SessionExporter.toJson() generates structured JSON export
|
|
26
|
-
- [ ] Clipboard.copy() writes text to system clipboard
|
|
27
|
-
- [ ] Clipboard.read() reads from system clipboard
|
|
28
|
-
- [ ] /copy last — copies latest assistant message via clipboard
|
|
29
|
-
- [ ] /export last — exports latest response via session-export
|
|
30
|
-
|
|
31
|
-
## Non-Functional
|
|
32
|
-
|
|
33
|
-
- [ ] All 8 packages compile with zero TypeScript errors
|
|
34
|
-
- [ ] All tests pass: `bun test packages/*/test/*.test.ts`
|
|
35
|
-
- [ ] event-store handles corrupted JSONL lines gracefully (skip + warn)
|
|
36
|
-
- [ ] event-bus handles subscriber crash gracefully (remove dead subscriber)
|
|
37
|
-
- [ ] projection-engine handles empty events array gracefully
|
|
38
|
-
- [ ] clipboard gracefully handles unavailable clipboard (fallback message)
|
|
39
|
-
- [ ] SessionService never reads JSONL directly — always through event-store
|
|
40
|
-
|
|
41
|
-
## Integration
|
|
42
|
-
|
|
43
|
-
- [ ] autonomous-runtime (RFC-0101) publishes WorkerStarted, TaskAssigned, TaskCompleted via EventBus
|
|
44
|
-
- [ ] context-engineering (RFC-0102) reads session via SessionService.getRecentFailures()
|
|
45
|
-
- [ ] JSONL format preserved — same format as existing pi session files
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# AI Brief — RFC-0103 Session Event Runtime & Agent Communication Layer
|
|
2
|
-
|
|
3
|
-
## What is being built
|
|
4
|
-
|
|
5
|
-
An 8-package system that transforms pi's JSONL session files into a real-time event bus for autonomous agents:
|
|
6
|
-
|
|
7
|
-
1. **event-store** — immutable JSONL wrapper: append, read, search, stats
|
|
8
|
-
2. **event-bus** — typed pub/sub with priority, filtering, replay
|
|
9
|
-
3. **projection-engine** — semantic views from raw events (decisions, tasks, summary, timeline)
|
|
10
|
-
4. **workflow-events** — semantic event vocabulary + state machine
|
|
11
|
-
5. **subscription-engine** — predicate-based agent subscriptions
|
|
12
|
-
6. **session-api** — safe read-only API (never parse JSONL directly)
|
|
13
|
-
7. **session-export** — markdown/JSON/text/HTML export
|
|
14
|
-
8. **clipboard** — /copy and /export commands
|
|
15
|
-
|
|
16
|
-
## Key interfaces
|
|
17
|
-
|
|
18
|
-
- `SessionEvent` — { id, sessionId, timestamp, type, role?, content?, tool?, metadata? }
|
|
19
|
-
- `EventPayload<T>` — { topic, data, timestamp, eventId, source }
|
|
20
|
-
- `SemanticEvent` — discriminated union: TaskAssigned/Started/Completed, ReviewRequested, ArchitectureDecision, etc.
|
|
21
|
-
- `EventBus` — publish(topic, data), subscribe(topic, fn, filter?, priority?)
|
|
22
|
-
- `SessionService` — getLatestDecision(), getRecentFailures(), search(), getSummary()
|
|
23
|
-
|
|
24
|
-
## Integration
|
|
25
|
-
|
|
26
|
-
- event-store reads/writes JSONL at `~/.pi/sessions/`
|
|
27
|
-
- event-bus uses Node.js EventEmitter internally
|
|
28
|
-
- projection-engine consumes SessionEvents, emits typed views
|
|
29
|
-
- subscription-engine wraps event-bus for predicate filtering
|
|
30
|
-
- session-api uses projection-engine + event-store for read operations
|
|
31
|
-
- autonomous-runtime (RFC-0101) publishes lifecycle events via event-bus
|
|
32
|
-
- context-engineering (RFC-0102) uses session-api for historical context
|
|
33
|
-
|
|
34
|
-
## Testing strategy
|
|
35
|
-
|
|
36
|
-
- event-store: mock temp JSONL file, test append/read/search
|
|
37
|
-
- event-bus: test pub/sub, priority ordering, filter, unsubscribe, replay
|
|
38
|
-
- projection-engine: test decision detection, task state, summary counts
|
|
39
|
-
- workflow-events: test state machine transitions
|
|
40
|
-
- Mock JSONL fixtures for CI
|
|
41
|
-
|
|
42
|
-
## Security
|
|
43
|
-
|
|
44
|
-
- No direct JSONL access from agents — must use SessionService
|
|
45
|
-
- Replay attack prevention via eventId deduplication
|
|
46
|
-
- Capability enforcement via SubscriptionEngine
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# Files — RFC-0103 Session Event Runtime & Agent Communication Layer
|
|
2
|
-
|
|
3
|
-
## New Packages
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
packages/
|
|
7
|
-
+-- event-store/
|
|
8
|
-
| +-- src/
|
|
9
|
-
| | +-- types.ts # SessionEvent, SessionEventType, EventMetadata,
|
|
10
|
-
| | | # StoreOptions, StoreStats, WriteResult,
|
|
11
|
-
| | | # ReadOptions, SearchOptions
|
|
12
|
-
| | +-- store.ts # EventStore class — append/read/search/stats/list
|
|
13
|
-
| | +-- index.ts # Public barrel
|
|
14
|
-
| +-- test/
|
|
15
|
-
| | +-- store.test.ts # bun test — temp JSONL file
|
|
16
|
-
| +-- package.json
|
|
17
|
-
| +-- tsconfig.json
|
|
18
|
-
|
|
|
19
|
-
+-- event-bus/
|
|
20
|
-
| +-- src/
|
|
21
|
-
| | +-- types.ts # Topic, EventPayload, Subscriber, Subscription,
|
|
22
|
-
| | | # BusOptions, EventBusError
|
|
23
|
-
| | +-- bus.ts # EventBus class — Map-based pub/sub + EventEmitter
|
|
24
|
-
| | +-- index.ts # Public barrel
|
|
25
|
-
| +-- test/
|
|
26
|
-
| | +-- bus.test.ts # bun test — pub/sub, priority, filter, replay
|
|
27
|
-
| +-- package.json
|
|
28
|
-
| +-- tsconfig.json
|
|
29
|
-
|
|
|
30
|
-
+-- projection-engine/
|
|
31
|
-
| +-- src/
|
|
32
|
-
| | +-- types.ts # Projection, Decision, TaskState,
|
|
33
|
-
| | | # KnowledgeExtraction, AgentTimeline,
|
|
34
|
-
| | | # SessionSummary
|
|
35
|
-
| | +-- engine.ts # ProjectionEngine class — addEvent, projections
|
|
36
|
-
| | +-- projections/
|
|
37
|
-
| | | +-- decision-projector.ts # detectArchitectureDecision()
|
|
38
|
-
| | | +-- task-projector.ts # detectTaskState()
|
|
39
|
-
| | | +-- summary-projector.ts # buildSummary()
|
|
40
|
-
| | | +-- timeline-projector.ts # buildTimeline()
|
|
41
|
-
| | +-- index.ts # Public barrel
|
|
42
|
-
| +-- test/
|
|
43
|
-
| | +-- engine.test.ts # bun test — projections
|
|
44
|
-
| +-- package.json
|
|
45
|
-
| +-- tsconfig.json
|
|
46
|
-
|
|
|
47
|
-
+-- workflow-events/
|
|
48
|
-
| +-- src/
|
|
49
|
-
| | +-- types.ts # SemanticEvent discriminated union (12 variants),
|
|
50
|
-
| | | # WorkflowState, WorkflowTransition
|
|
51
|
-
| | +-- builder.ts # SemanticEventBuilder — buildFromSessionEvents()
|
|
52
|
-
| | +-- workflow.ts # WorkflowStateMachine — transition(), getState()
|
|
53
|
-
| | +-- index.ts # Public barrel
|
|
54
|
-
| +-- test/
|
|
55
|
-
| | +-- workflow.test.ts # bun test — transitions
|
|
56
|
-
| +-- package.json
|
|
57
|
-
| +-- tsconfig.json
|
|
58
|
-
|
|
|
59
|
-
+-- subscription-engine/
|
|
60
|
-
| +-- src/
|
|
61
|
-
| | +-- types.ts # Predicate<T>, TopicSubscription<T>,
|
|
62
|
-
| | | # SubscriptionResult, SubscriberInfo
|
|
63
|
-
| | +-- engine.ts # SubscriptionEngine — subscribe/unsubscribe/match
|
|
64
|
-
| | +-- index.ts # Public barrel
|
|
65
|
-
| +-- test/
|
|
66
|
-
| | +-- engine.test.ts # bun test — predicate filtering
|
|
67
|
-
| +-- package.json
|
|
68
|
-
| +-- tsconfig.json
|
|
69
|
-
|
|
|
70
|
-
+-- session-api/
|
|
71
|
-
| +-- src/
|
|
72
|
-
| | +-- types.ts # SessionService interface, SessionQuery
|
|
73
|
-
| | +-- api.ts # SessionServiceImpl — getLatestDecision(),
|
|
74
|
-
| | | # getRecentFailures(), search(), getSummary()
|
|
75
|
-
| | +-- index.ts # Public barrel
|
|
76
|
-
| +-- test/
|
|
77
|
-
| | +-- api.test.ts # bun test — mock event store
|
|
78
|
-
| +-- package.json
|
|
79
|
-
| +-- tsconfig.json
|
|
80
|
-
|
|
|
81
|
-
+-- session-export/
|
|
82
|
-
| +-- src/
|
|
83
|
-
| | +-- types.ts # ExportFormat, ExportRequest, ExportResult
|
|
84
|
-
| | +-- exporter.ts # SessionExporter — toMarkdown(), toJson(),
|
|
85
|
-
| | | # toText(), toHtml()
|
|
86
|
-
| | +-- index.ts # Public barrel
|
|
87
|
-
| +-- test/
|
|
88
|
-
| | +-- export.test.ts # bun test — formats
|
|
89
|
-
| +-- package.json
|
|
90
|
-
| +-- tsconfig.json
|
|
91
|
-
|
|
|
92
|
-
+-- clipboard/
|
|
93
|
-
+-- src/
|
|
94
|
-
| +-- types.ts # ClipboardContent, ClipboardOptions
|
|
95
|
-
| +-- clipboard.ts # copy(), read(), copyLastResponse()
|
|
96
|
-
| +-- index.ts # Public barrel
|
|
97
|
-
+-- test/
|
|
98
|
-
| +-- clipboard.test.ts # bun test — mock
|
|
99
|
-
+-- package.json
|
|
100
|
-
+-- tsconfig.json
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Integration
|
|
104
|
-
|
|
105
|
-
| Source | Import from |
|
|
106
|
-
|---|---|
|
|
107
|
-
| Session JSONL path | `~/.pi/sessions/` — convention |
|
|
108
|
-
| SessionService | `session-api` — used by `context-engineering` |
|
|
109
|
-
| Event Bus | `event-bus` — used by `workflow-events`, `subscription-engine` |
|
|
110
|
-
| Semantic Events | `workflow-events` — used by `autonomous-runtime` (RFC-0101) |
|
|
111
|
-
|
|
112
|
-
## Dependencies
|
|
113
|
-
|
|
114
|
-
- `event-store` — standalone, no dependencies
|
|
115
|
-
- `event-bus` — uses `crypto.randomUUID()`, no dependencies
|
|
116
|
-
- `projection-engine` — uses `event-store` (or mock)
|
|
117
|
-
- `workflow-events` — uses `event-store` (or mock)
|
|
118
|
-
- `subscription-engine` — uses `event-bus` (or mock)
|
|
119
|
-
- `session-api` — uses `event-store` + `projection-engine`
|
|
120
|
-
- `session-export` — uses `session-api`
|
|
121
|
-
- `clipboard` — uses `session-api`; fallback: `/dev/clipboard` on Linux
|