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,285 +0,0 @@
|
|
|
1
|
-
# RFC-0055 — Cost Optimizer
|
|
2
|
-
|
|
3
|
-
Status: Draft
|
|
4
|
-
Target package: `packages/cost-optimizer`
|
|
5
|
-
Depends on: RFC-0051 Capability Registry, RFC-0053 Model Registry, RFC-0054 Provider Router
|
|
6
|
-
|
|
7
|
-
## 1. Problem
|
|
8
|
-
|
|
9
|
-
The runtime needs intelligent cost management to minimize expenses while maintaining quality. Currently costs are not tracked or optimized. The Cost Optimizer provides budget tracking, cost forecasting, and model selection optimization.
|
|
10
|
-
|
|
11
|
-
## 2. Cost Tracking
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export interface CostEntry {
|
|
15
|
-
id: string;
|
|
16
|
-
jobId: string;
|
|
17
|
-
taskId?: string;
|
|
18
|
-
providerId: string;
|
|
19
|
-
modelId: string;
|
|
20
|
-
inputTokens: number;
|
|
21
|
-
outputTokens: number;
|
|
22
|
-
cost: number;
|
|
23
|
-
currency: "USD" | "THB";
|
|
24
|
-
timestamp: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface CostBudget {
|
|
28
|
-
daily?: number;
|
|
29
|
-
weekly?: number;
|
|
30
|
-
monthly?: number;
|
|
31
|
-
perJob?: number;
|
|
32
|
-
perTask?: number;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface CostSummary {
|
|
36
|
-
total: number;
|
|
37
|
-
currency: "USD" | "THB";
|
|
38
|
-
byProvider: Record<string, number>;
|
|
39
|
-
byModel: Record<string, number>;
|
|
40
|
-
byJob: Record<string, number>;
|
|
41
|
-
period: CostPeriod;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface CostPeriod {
|
|
45
|
-
start: string;
|
|
46
|
-
end: string;
|
|
47
|
-
type: "day" | "week" | "month" | "custom";
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## 3. Optimizer Interface
|
|
52
|
-
|
|
53
|
-
```ts
|
|
54
|
-
export interface CostOptimizer {
|
|
55
|
-
trackCost(entry: Omit<CostEntry, "id" | "timestamp">): CostEntry;
|
|
56
|
-
getSummary(period: CostPeriod): CostSummary;
|
|
57
|
-
getBudgetStatus(): BudgetStatus;
|
|
58
|
-
canAfford(cost: number): boolean;
|
|
59
|
-
shouldSwitchToCheaper(
|
|
60
|
-
currentModel: ModelInfo,
|
|
61
|
-
requiredCapabilities: Capability[],
|
|
62
|
-
options?: SwitchOptions,
|
|
63
|
-
): ModelSwitchRecommendation | null;
|
|
64
|
-
forecastCosts(jobRequirements: JobRequirements): CostForecast;
|
|
65
|
-
optimizeModelSelection(
|
|
66
|
-
task: RuntimeTask,
|
|
67
|
-
requirements: TaskRequirements,
|
|
68
|
-
): OptimizedSelection[];
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export interface BudgetStatus {
|
|
72
|
-
daily: { used: number; budget: number; remaining: number };
|
|
73
|
-
weekly: { used: number; budget: number; remaining: number };
|
|
74
|
-
monthly: { used: number; budget: number; remaining: number };
|
|
75
|
-
exhausted: boolean;
|
|
76
|
-
nextReset?: string;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export interface SwitchOptions {
|
|
80
|
-
maxQualityLoss?: number; // percentage
|
|
81
|
-
maxLatencyIncrease?: "fast" | "medium" | "slow";
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface ModelSwitchRecommendation {
|
|
85
|
-
currentModel: ModelInfo;
|
|
86
|
-
recommendedModel: ModelInfo;
|
|
87
|
-
costSavings: number; // percentage
|
|
88
|
-
qualityImpact: number; // percentage
|
|
89
|
-
reason: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export interface CostForecast {
|
|
93
|
-
estimatedTotal: number;
|
|
94
|
-
byTaskType: Record<string, number>;
|
|
95
|
-
confidence: number;
|
|
96
|
-
assumptions: string[];
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export interface TaskRequirements {
|
|
100
|
-
requiredCapabilities: Capability[];
|
|
101
|
-
minContextWindow: number;
|
|
102
|
-
maxLatency?: "fast" | "medium" | "slow";
|
|
103
|
-
estimatedInputTokens: number;
|
|
104
|
-
estimatedOutputTokens: number;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface OptimizedSelection {
|
|
108
|
-
model: ModelInfo;
|
|
109
|
-
estimatedCost: number;
|
|
110
|
-
qualityScore: number;
|
|
111
|
-
reason: string;
|
|
112
|
-
tradeoffs: string[];
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
## 4. Cost Tracking Algorithm
|
|
117
|
-
|
|
118
|
-
```ts
|
|
119
|
-
export function trackCost(
|
|
120
|
-
optimizer: CostOptimizer,
|
|
121
|
-
entry: Omit<CostEntry, "id" | "timestamp">,
|
|
122
|
-
): CostEntry {
|
|
123
|
-
const costEntry: CostEntry = {
|
|
124
|
-
...entry,
|
|
125
|
-
id: generateId(),
|
|
126
|
-
timestamp: new Date().toISOString(),
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
// Store in history
|
|
130
|
-
optimizer.addToHistory(costEntry);
|
|
131
|
-
|
|
132
|
-
// Check budget
|
|
133
|
-
const status = optimizer.getBudgetStatus();
|
|
134
|
-
if (status.exhausted) {
|
|
135
|
-
optimizer.emit({
|
|
136
|
-
type: "cost.budget_exhausted",
|
|
137
|
-
status,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return costEntry;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export function canAfford(
|
|
145
|
-
optimizer: CostOptimizer,
|
|
146
|
-
cost: number,
|
|
147
|
-
): boolean {
|
|
148
|
-
const status = optimizer.getBudgetStatus();
|
|
149
|
-
|
|
150
|
-
if (cost > status.daily.remaining && status.daily.budget) return false;
|
|
151
|
-
if (cost > status.weekly.remaining && status.weekly.budget) return false;
|
|
152
|
-
if (cost > status.monthly.remaining && status.monthly.budget) return false;
|
|
153
|
-
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 5. Model Selection Optimization
|
|
159
|
-
|
|
160
|
-
```ts
|
|
161
|
-
export function shouldSwitchToCheaper(
|
|
162
|
-
optimizer: CostOptimizer,
|
|
163
|
-
currentModel: ModelInfo,
|
|
164
|
-
requiredCapabilities: Capability[],
|
|
165
|
-
options?: SwitchOptions,
|
|
166
|
-
): ModelSwitchRecommendation | null {
|
|
167
|
-
const candidates = optimizer.findModels({
|
|
168
|
-
capabilities: requiredCapabilities,
|
|
169
|
-
status: "active",
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
// Filter by quality tolerance
|
|
173
|
-
const maxQualityLoss = options?.maxQualityLoss ?? 20;
|
|
174
|
-
|
|
175
|
-
const cheaperOptions = candidates
|
|
176
|
-
.filter(m => {
|
|
177
|
-
const currentCost = calculateModelCost(currentModel);
|
|
178
|
-
const candidateCost = calculateModelCost(m);
|
|
179
|
-
return candidateCost < currentCost;
|
|
180
|
-
})
|
|
181
|
-
.filter(m => {
|
|
182
|
-
const qualityLoss = getQualityImpact(currentModel, m);
|
|
183
|
-
return qualityLoss <= maxQualityLoss;
|
|
184
|
-
})
|
|
185
|
-
.map(m => ({
|
|
186
|
-
model: m,
|
|
187
|
-
costSavings: calculateSavings(currentModel, m),
|
|
188
|
-
qualityImpact: getQualityImpact(currentModel, m),
|
|
189
|
-
}))
|
|
190
|
-
.sort((a, b) => b.costSavings - a.costSavings);
|
|
191
|
-
|
|
192
|
-
if (cheaperOptions.length === 0) return null;
|
|
193
|
-
|
|
194
|
-
const best = cheaperOptions[0];
|
|
195
|
-
return {
|
|
196
|
-
currentModel,
|
|
197
|
-
recommendedModel: best.model,
|
|
198
|
-
costSavings: best.costSavings,
|
|
199
|
-
qualityImpact: best.qualityImpact,
|
|
200
|
-
reason: `Switching from ${currentModel.id} to ${best.model.id} saves ${best.costSavings.toFixed(1)}% with ${best.qualityImpact.toFixed(1)}% quality impact`,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export function optimizeModelSelection(
|
|
205
|
-
optimizer: CostOptimizer,
|
|
206
|
-
task: RuntimeTask,
|
|
207
|
-
requirements: TaskRequirements,
|
|
208
|
-
): OptimizedSelection[] {
|
|
209
|
-
const candidates = optimizer.findModels({
|
|
210
|
-
capabilities: requirements.requiredCapabilities,
|
|
211
|
-
status: "active",
|
|
212
|
-
})
|
|
213
|
-
.filter(m => m.contextWindow >= requirements.minContextWindow)
|
|
214
|
-
.filter(m => !requirements.maxLatency || LATENCY_RANK[m.latency] <= LATENCY_RANK[requirements.maxLatency]);
|
|
215
|
-
|
|
216
|
-
const baseTokens = requirements.estimatedInputTokens + requirements.estimatedOutputTokens;
|
|
217
|
-
|
|
218
|
-
return candidates
|
|
219
|
-
.map(m => {
|
|
220
|
-
const estimatedCost = calculateCost(m, requirements.estimatedInputTokens, requirements.estimatedOutputTokens);
|
|
221
|
-
const qualityScore = calculateQualityScore(m, requirements.requiredCapabilities);
|
|
222
|
-
|
|
223
|
-
return {
|
|
224
|
-
model: m,
|
|
225
|
-
estimatedCost,
|
|
226
|
-
qualityScore,
|
|
227
|
-
reason: generateReason(m, estimatedCost, qualityScore),
|
|
228
|
-
tradeoffs: generateTradeoffs(m, requirements),
|
|
229
|
-
};
|
|
230
|
-
})
|
|
231
|
-
.sort((a, b) => {
|
|
232
|
-
// Pareto-optimal: prefer lower cost at similar quality
|
|
233
|
-
const qualityAdjusted = a.qualityScore * 0.6 - a.estimatedCost * 0.4;
|
|
234
|
-
const qualityAdjustedB = b.qualityScore * 0.6 - b.estimatedCost * 0.4;
|
|
235
|
-
return qualityAdjustedB - qualityAdjusted;
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
## 6. Budget Configuration
|
|
241
|
-
|
|
242
|
-
```ts
|
|
243
|
-
export interface CostOptimizerConfig {
|
|
244
|
-
defaultBudget: CostBudget;
|
|
245
|
-
currency: "USD" | "THB";
|
|
246
|
-
alertThreshold: number; // percentage of budget
|
|
247
|
-
autoSwitchToCheaper: boolean;
|
|
248
|
-
maxQualityLossPercent: number;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
export const DEFAULT_CONFIG: CostOptimizerConfig = {
|
|
252
|
-
defaultBudget: {
|
|
253
|
-
daily: 10,
|
|
254
|
-
weekly: 50,
|
|
255
|
-
monthly: 200,
|
|
256
|
-
},
|
|
257
|
-
currency: "USD",
|
|
258
|
-
alertThreshold: 0.8, // 80%
|
|
259
|
-
autoSwitchToCheaper: false,
|
|
260
|
-
maxQualityLossPercent: 15,
|
|
261
|
-
};
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
## 7. Events
|
|
265
|
-
|
|
266
|
-
```ts
|
|
267
|
-
type CostOptimizerEvent =
|
|
268
|
-
| { type: "cost.tracked"; entryId: string; cost: number; total: number }
|
|
269
|
-
| { type: "cost.budget_warning"; threshold: number; percentage: number }
|
|
270
|
-
| { type: "cost.budget_exhausted"; period: string }
|
|
271
|
-
| { type: "cost.switch_recommended"; from: string; to: string; savings: number }
|
|
272
|
-
| { type: "cost.forecast"; estimated: number; confidence: number }
|
|
273
|
-
| { type: "cost.optimization_applied"; model: string; savings: number };
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
## 8. Acceptance Criteria
|
|
277
|
-
|
|
278
|
-
- Cost entries are tracked with full metadata
|
|
279
|
-
- Budget status reflects current usage correctly
|
|
280
|
-
- Forecast provides reasonable estimates
|
|
281
|
-
- Model switch recommendations are sensible
|
|
282
|
-
- Optimized selections are Pareto-optimal
|
|
283
|
-
- Events are emitted for budget warnings and exhaustion
|
|
284
|
-
- Unit tests cover all scenarios
|
|
285
|
-
- Integration with Model Registry and Capability Registry works
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# RFC-0056 — Performance Optimizer
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
The Performance Optimizer improves runtime throughput and reduces waste without changing task semantics. It analyzes execution metrics and produces advisory optimization decisions for scheduling, provider selection, context size, retry policy, and concurrency.
|
|
6
|
-
|
|
7
|
-
It does not directly execute tasks, modify source code, or override mandatory project policy.
|
|
8
|
-
|
|
9
|
-
## 2. Inputs
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
export interface PerformanceOptimizationRequest {
|
|
13
|
-
jobId: string;
|
|
14
|
-
taskId?: string;
|
|
15
|
-
metrics: RuntimeMetricSnapshot;
|
|
16
|
-
providerStates: ProviderRuntimeState[];
|
|
17
|
-
taskGraph: TaskGraphSnapshot;
|
|
18
|
-
policy: PerformancePolicy;
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 3. Outputs
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
export interface PerformanceOptimizationPlan {
|
|
26
|
-
jobId: string;
|
|
27
|
-
recommendations: PerformanceRecommendation[];
|
|
28
|
-
expectedImpact: {
|
|
29
|
-
tokenReductionPercent?: number;
|
|
30
|
-
latencyReductionPercent?: number;
|
|
31
|
-
retryReductionPercent?: number;
|
|
32
|
-
};
|
|
33
|
-
generatedAt: string;
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## 4. Recommendation Types
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
export type PerformanceRecommendation =
|
|
41
|
-
| { type: "reduce_context"; targetTokens: number; reason: string }
|
|
42
|
-
| { type: "change_provider"; provider: string; reason: string }
|
|
43
|
-
| { type: "increase_parallelism"; limit: number; reason: string }
|
|
44
|
-
| { type: "decrease_parallelism"; limit: number; reason: string }
|
|
45
|
-
| { type: "reuse_checkpoint"; checkpointId: string; reason: string }
|
|
46
|
-
| { type: "skip_redundant_step"; taskId: string; reason: string };
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## 5. Optimization Rules
|
|
50
|
-
|
|
51
|
-
The optimizer may recommend:
|
|
52
|
-
|
|
53
|
-
- Reusing unchanged compiled context.
|
|
54
|
-
- Reusing successful checkpoints.
|
|
55
|
-
- Avoiding repeated repository scans.
|
|
56
|
-
- Reducing unnecessary provider switching.
|
|
57
|
-
- Limiting parallel tasks that touch overlapping files.
|
|
58
|
-
- Increasing parallelism for independent read-only tasks.
|
|
59
|
-
- Routing short deterministic work to lower-cost providers.
|
|
60
|
-
- Escalating complex review tasks to stronger models.
|
|
61
|
-
|
|
62
|
-
## 6. Safety Boundaries
|
|
63
|
-
|
|
64
|
-
The optimizer must never:
|
|
65
|
-
|
|
66
|
-
- Skip mandatory review or E2E stages.
|
|
67
|
-
- Remove project rules.
|
|
68
|
-
- Override security policy.
|
|
69
|
-
- Execute `build`, `migrate`, or `commit` without approval.
|
|
70
|
-
- Modify acceptance criteria.
|
|
71
|
-
- Hide failed tests.
|
|
72
|
-
|
|
73
|
-
## 7. Algorithm
|
|
74
|
-
|
|
75
|
-
```text
|
|
76
|
-
collect metrics
|
|
77
|
-
-> normalize provider/task statistics
|
|
78
|
-
-> detect bottlenecks
|
|
79
|
-
-> evaluate safe optimizations
|
|
80
|
-
-> rank recommendations
|
|
81
|
-
-> remove conflicting recommendations
|
|
82
|
-
-> emit advisory plan
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## 8. Runtime Events
|
|
86
|
-
|
|
87
|
-
```ts
|
|
88
|
-
type PerformanceOptimizerEvent =
|
|
89
|
-
| { type: "performance.analysis.started"; jobId: string }
|
|
90
|
-
| { type: "performance.recommendation.created"; jobId: string; recommendation: PerformanceRecommendation }
|
|
91
|
-
| { type: "performance.analysis.completed"; jobId: string }
|
|
92
|
-
| { type: "performance.analysis.failed"; jobId: string; error: string };
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## 9. Failure Handling
|
|
96
|
-
|
|
97
|
-
- Missing metrics: return no-op recommendation set.
|
|
98
|
-
- Conflicting recommendations: keep the safer option.
|
|
99
|
-
- Unknown provider capability: do not route to that provider.
|
|
100
|
-
- Incomplete task graph: disable concurrency recommendations.
|
|
101
|
-
- Invalid policy: fail with typed configuration error.
|
|
102
|
-
|
|
103
|
-
## 10. Tests
|
|
104
|
-
|
|
105
|
-
- Recommends context reuse when hashes match.
|
|
106
|
-
- Does not skip required E2E stage.
|
|
107
|
-
- Reduces concurrency when file overlap exists.
|
|
108
|
-
- Does not choose unavailable provider.
|
|
109
|
-
- Produces deterministic recommendation ranking.
|
|
110
|
-
- Emits no-op plan when metrics are insufficient.
|
|
111
|
-
|
|
112
|
-
## 11. Acceptance Criteria
|
|
113
|
-
|
|
114
|
-
- Output is advisory and typed.
|
|
115
|
-
- Recommendations are deterministic for identical inputs.
|
|
116
|
-
- No mandatory stage is removed.
|
|
117
|
-
- Every recommendation contains a reason.
|
|
118
|
-
- Policy conflicts are rejected.
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# RFC-0057 — Evaluation Engine
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
The Evaluation Engine determines whether an agent-produced result is acceptable before the runtime advances the task. It combines test results, static analysis, policy checks, diff review, artifact validation, and task-specific acceptance criteria.
|
|
6
|
-
|
|
7
|
-
## 2. Inputs
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
export interface EvaluationRequest {
|
|
11
|
-
jobId: string;
|
|
12
|
-
task: CompiledTask;
|
|
13
|
-
worktreePath: string;
|
|
14
|
-
outputs: TaskOutputArtifact[];
|
|
15
|
-
testResults: TestResult[];
|
|
16
|
-
policyFindings: PolicyFinding[];
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## 3. Outputs
|
|
21
|
-
|
|
22
|
-
```ts
|
|
23
|
-
export interface EvaluationResult {
|
|
24
|
-
status: "passed" | "failed" | "needs_review";
|
|
25
|
-
score: number;
|
|
26
|
-
findings: EvaluationFinding[];
|
|
27
|
-
evidence: EvaluationEvidence[];
|
|
28
|
-
recommendedAction: "continue" | "repair" | "human_review";
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## 4. Evaluation Dimensions
|
|
33
|
-
|
|
34
|
-
- Correctness
|
|
35
|
-
- Test completeness
|
|
36
|
-
- Acceptance criteria coverage
|
|
37
|
-
- Policy compliance
|
|
38
|
-
- Code quality
|
|
39
|
-
- Security risk
|
|
40
|
-
- Regression risk
|
|
41
|
-
- Documentation completeness
|
|
42
|
-
|
|
43
|
-
## 5. Scoring
|
|
44
|
-
|
|
45
|
-
```text
|
|
46
|
-
final_score =
|
|
47
|
-
correctness_weight
|
|
48
|
-
+ test_weight
|
|
49
|
-
+ acceptance_weight
|
|
50
|
-
+ quality_weight
|
|
51
|
-
- policy_penalty
|
|
52
|
-
- security_penalty
|
|
53
|
-
- regression_penalty
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
A critical policy or security finding forces failure regardless of numeric score.
|
|
57
|
-
|
|
58
|
-
## 6. Evidence Contract
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
export interface EvaluationEvidence {
|
|
62
|
-
kind: "test" | "diff" | "file" | "policy" | "screenshot" | "trace";
|
|
63
|
-
path?: string;
|
|
64
|
-
description: string;
|
|
65
|
-
hash?: string;
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
The engine must not accept an agent's self-reported completion without external evidence.
|
|
70
|
-
|
|
71
|
-
## 7. State Flow
|
|
72
|
-
|
|
73
|
-
```text
|
|
74
|
-
pending
|
|
75
|
-
-> collecting_evidence
|
|
76
|
-
-> evaluating
|
|
77
|
-
-> passed
|
|
78
|
-
or failed
|
|
79
|
-
or needs_review
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## 8. Failure Classification
|
|
83
|
-
|
|
84
|
-
```ts
|
|
85
|
-
export type EvaluationFailureClass =
|
|
86
|
-
| "test_failure"
|
|
87
|
-
| "missing_output"
|
|
88
|
-
| "acceptance_gap"
|
|
89
|
-
| "policy_violation"
|
|
90
|
-
| "security_issue"
|
|
91
|
-
| "regression_risk"
|
|
92
|
-
| "insufficient_evidence";
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## 9. Integration
|
|
96
|
-
|
|
97
|
-
- Passed: Task Graph marks task complete.
|
|
98
|
-
- Failed: Repair Engine creates repair task.
|
|
99
|
-
- Needs review: Human Approval Gate or reviewer agent receives evidence bundle.
|
|
100
|
-
|
|
101
|
-
## 10. Tests
|
|
102
|
-
|
|
103
|
-
- Fails when required artifact is missing.
|
|
104
|
-
- Fails on critical policy violation.
|
|
105
|
-
- Passes when all acceptance criteria are evidenced.
|
|
106
|
-
- Returns needs-review for ambiguous manual criterion.
|
|
107
|
-
- Preserves evidence references.
|
|
108
|
-
- Produces deterministic score.
|
|
109
|
-
|
|
110
|
-
## 11. Acceptance Criteria
|
|
111
|
-
|
|
112
|
-
- Every result includes findings and evidence.
|
|
113
|
-
- Critical policy findings force failure.
|
|
114
|
-
- Self-reported completion alone is insufficient.
|
|
115
|
-
- Each acceptance criterion is mapped to evidence or marked unmet.
|
|
116
|
-
- Evaluation results are persisted for replay.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# RFC-0058 — Learning Engine
|
|
2
|
-
|
|
3
|
-
## 1. Purpose
|
|
4
|
-
|
|
5
|
-
The Learning Engine extracts reusable lessons from completed and failed jobs. Its output improves future planning, routing, prompt compilation, repair selection, and evaluation.
|
|
6
|
-
|
|
7
|
-
The engine learns recommendations, not autonomous policy. Human-approved project rules remain authoritative.
|
|
8
|
-
|
|
9
|
-
## 2. Inputs
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
export interface LearningRequest {
|
|
13
|
-
jobId: string;
|
|
14
|
-
events: RuntimeEvent[];
|
|
15
|
-
evaluation: EvaluationResult[];
|
|
16
|
-
repairHistory: RepairAttempt[];
|
|
17
|
-
providerMetrics: ProviderExecutionMetric[];
|
|
18
|
-
humanFeedback?: HumanFeedback[];
|
|
19
|
-
}
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 3. Outputs
|
|
23
|
-
|
|
24
|
-
```ts
|
|
25
|
-
export interface LearnedExperience {
|
|
26
|
-
id: string;
|
|
27
|
-
scope: "global" | "framework" | "repository" | "task_type";
|
|
28
|
-
pattern: string;
|
|
29
|
-
recommendation: string;
|
|
30
|
-
confidence: number;
|
|
31
|
-
evidenceRefs: string[];
|
|
32
|
-
status: "proposed" | "approved" | "rejected";
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## 4. Learnable Patterns
|
|
37
|
-
|
|
38
|
-
- Provider success by task type.
|
|
39
|
-
- Prompt structures associated with fewer retries.
|
|
40
|
-
- Common failure causes.
|
|
41
|
-
- Effective repair strategies.
|
|
42
|
-
- Framework-specific command patterns.
|
|
43
|
-
- Test scenarios that catch recurring regressions.
|
|
44
|
-
- Context sources frequently used in successful jobs.
|
|
45
|
-
|
|
46
|
-
## 5. Non-Learnable Data
|
|
47
|
-
|
|
48
|
-
The engine must not learn from or retain:
|
|
49
|
-
|
|
50
|
-
- Credentials
|
|
51
|
-
- Browser cookies
|
|
52
|
-
- Personal data not required for engineering
|
|
53
|
-
- Secret environment values
|
|
54
|
-
- Unreviewed destructive commands
|
|
55
|
-
|
|
56
|
-
## 6. Confidence
|
|
57
|
-
|
|
58
|
-
Confidence increases with:
|
|
59
|
-
|
|
60
|
-
- Repeated independent occurrences
|
|
61
|
-
- Consistent positive evaluation
|
|
62
|
-
- Human approval
|
|
63
|
-
- Framework-specific corroboration
|
|
64
|
-
|
|
65
|
-
Confidence decreases with:
|
|
66
|
-
|
|
67
|
-
- Contradictory outcomes
|
|
68
|
-
- Single-event evidence
|
|
69
|
-
- Stale repository revisions
|
|
70
|
-
- Changed project rules
|
|
71
|
-
|
|
72
|
-
## 7. Approval Flow
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
experience extracted
|
|
76
|
-
-> proposed
|
|
77
|
-
-> human or policy review
|
|
78
|
-
-> approved
|
|
79
|
-
or rejected
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Only approved experience may affect routing or planning automatically.
|
|
83
|
-
|
|
84
|
-
## 8. OKF Integration
|
|
85
|
-
|
|
86
|
-
Approved lessons may be exported as OKF concepts:
|
|
87
|
-
|
|
88
|
-
```yaml
|
|
89
|
-
---
|
|
90
|
-
type: Engineering Lesson
|
|
91
|
-
title: Prefer isolated worktrees for parallel file changes
|
|
92
|
-
tags: [git, worktree, concurrency]
|
|
93
|
-
timestamp: 2026-07-13T00:00:00+07:00
|
|
94
|
-
authority: approved
|
|
95
|
-
---
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## 9. Tests
|
|
99
|
-
|
|
100
|
-
- Extracts repeated failure pattern.
|
|
101
|
-
- Does not approve experience automatically.
|
|
102
|
-
- Redacts secret-like values.
|
|
103
|
-
- Low evidence produces low confidence.
|
|
104
|
-
- Human approval raises status to approved.
|
|
105
|
-
- Approved lesson exports to OKF.
|
|
106
|
-
|
|
107
|
-
## 10. Acceptance Criteria
|
|
108
|
-
|
|
109
|
-
- Every learned item has evidence references.
|
|
110
|
-
- Automatic learning cannot override project rules.
|
|
111
|
-
- Secrets are excluded.
|
|
112
|
-
- Only approved lessons affect runtime behavior.
|
|
113
|
-
- Lessons can be exported to OKF.
|