@ymdvsymd/tornado 0.7.1 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/tornado.js CHANGED
@@ -1,4 +1,4 @@
1
- #\!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  function _M0DTPB4Json4Null() {}
3
3
  _M0DTPB4Json4Null.prototype.$tag = 0;
4
4
  const _M0DTPB4Json4Null__ = new _M0DTPB4Json4Null();
@@ -868,6 +868,9 @@ function _M0DTP36mizchi7tornado5types15MilestoneStatus6Failed(param0) {
868
868
  this._0 = param0;
869
869
  }
870
870
  _M0DTP36mizchi7tornado5types15MilestoneStatus6Failed.prototype.$tag = 3;
871
+ function _M0TPC13ref3RefGsE(param0) {
872
+ this.val = param0;
873
+ }
871
874
  function _M0TP36mizchi7tornado5types9RalphTask(param0, param1, param2, param3, param4, param5) {
872
875
  this.id = param0;
873
876
  this.description = param1;
@@ -876,16 +879,18 @@ function _M0TP36mizchi7tornado5types9RalphTask(param0, param1, param2, param3, p
876
879
  this.result = param4;
877
880
  this.plan_doc = param5;
878
881
  }
879
- function _M0TP36mizchi7tornado5ralph16MilestoneManager(param0, param1) {
882
+ function _M0TP36mizchi7tornado5ralph16MilestoneManager(param0, param1, param2) {
880
883
  this.milestones = param0;
881
884
  this.next_task_id = param1;
885
+ this.brief = param2;
882
886
  }
883
- function _M0TP36mizchi7tornado5types9Milestone(param0, param1, param2, param3, param4) {
887
+ function _M0TP36mizchi7tornado5types9Milestone(param0, param1, param2, param3, param4, param5) {
884
888
  this.id = param0;
885
889
  this.goal = param1;
886
890
  this.status = param2;
887
891
  this.tasks = param3;
888
892
  this.current_wave = param4;
893
+ this.summary = param5;
889
894
  }
890
895
  function _M0DTPC16result6ResultGRP36mizchi7tornado5ralph16MilestoneManagerRPB7FailureE3Err(param0) {
891
896
  this._0 = param0;
@@ -1030,9 +1035,6 @@ function _M0DTPC16option6OptionGOsE4Some(param0) {
1030
1035
  this._0 = param0;
1031
1036
  }
1032
1037
  _M0DTPC16option6OptionGOsE4Some.prototype.$tag = 1;
1033
- function _M0TPC13ref3RefGsE(param0) {
1034
- this.val = param0;
1035
- }
1036
1038
  function _M0TPC13ref3RefGRPB5ArrayGsEE(param0) {
1037
1039
  this.val = param0;
1038
1040
  }
@@ -1074,68 +1076,68 @@ const _M0FPC17strconv17parse__scientificN8exp__numS241 = $0L;
1074
1076
  const _M0FPC17strconv13parse__numberN11exp__numberS222 = $0L;
1075
1077
  const _M0FPC17strconv12double__info = new _M0TPC17strconv9FloatInfo(52, 11, -1023);
1076
1078
  const _M0FPC17strconv6powtab = [1, 3, 6, 9, 13, 16, 19, 23, 26, 29, 33, 36, 39, 43, 46, 49, 53, 56, 59];
1077
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1349 = { _0: 0, _1: "" };
1078
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1350 = { _0: 1, _1: "5" };
1079
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1351 = { _0: 1, _1: "25" };
1080
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1352 = { _0: 1, _1: "125" };
1081
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1353 = { _0: 2, _1: "625" };
1082
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1354 = { _0: 2, _1: "3125" };
1083
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1355 = { _0: 2, _1: "15625" };
1084
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1356 = { _0: 3, _1: "78125" };
1085
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1357 = { _0: 3, _1: "390625" };
1086
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1358 = { _0: 3, _1: "1953125" };
1087
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1359 = { _0: 4, _1: "9765625" };
1088
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1360 = { _0: 4, _1: "48828125" };
1089
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1361 = { _0: 4, _1: "244140625" };
1090
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1362 = { _0: 4, _1: "1220703125" };
1091
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1363 = { _0: 5, _1: "6103515625" };
1092
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1364 = { _0: 5, _1: "30517578125" };
1093
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1365 = { _0: 5, _1: "152587890625" };
1094
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1366 = { _0: 6, _1: "762939453125" };
1095
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1367 = { _0: 6, _1: "3814697265625" };
1096
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1368 = { _0: 6, _1: "19073486328125" };
1097
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1369 = { _0: 7, _1: "95367431640625" };
1098
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1370 = { _0: 7, _1: "476837158203125" };
1099
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1371 = { _0: 7, _1: "2384185791015625" };
1100
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1372 = { _0: 7, _1: "11920928955078125" };
1101
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1373 = { _0: 8, _1: "59604644775390625" };
1102
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1374 = { _0: 8, _1: "298023223876953125" };
1103
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1375 = { _0: 8, _1: "1490116119384765625" };
1104
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1376 = { _0: 9, _1: "7450580596923828125" };
1105
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1377 = { _0: 9, _1: "37252902984619140625" };
1106
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1378 = { _0: 9, _1: "186264514923095703125" };
1107
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1379 = { _0: 10, _1: "931322574615478515625" };
1108
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1380 = { _0: 10, _1: "4656612873077392578125" };
1109
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1381 = { _0: 10, _1: "23283064365386962890625" };
1110
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1382 = { _0: 10, _1: "116415321826934814453125" };
1111
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1383 = { _0: 11, _1: "582076609134674072265625" };
1112
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1384 = { _0: 11, _1: "2910383045673370361328125" };
1113
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1385 = { _0: 11, _1: "14551915228366851806640625" };
1114
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1386 = { _0: 12, _1: "72759576141834259033203125" };
1115
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1387 = { _0: 12, _1: "363797880709171295166015625" };
1116
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1388 = { _0: 12, _1: "1818989403545856475830078125" };
1117
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1389 = { _0: 13, _1: "9094947017729282379150390625" };
1118
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1390 = { _0: 13, _1: "45474735088646411895751953125" };
1119
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1391 = { _0: 13, _1: "227373675443232059478759765625" };
1120
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1392 = { _0: 13, _1: "1136868377216160297393798828125" };
1121
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1393 = { _0: 14, _1: "5684341886080801486968994140625" };
1122
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1394 = { _0: 14, _1: "28421709430404007434844970703125" };
1123
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1395 = { _0: 14, _1: "142108547152020037174224853515625" };
1124
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1396 = { _0: 15, _1: "710542735760100185871124267578125" };
1125
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1397 = { _0: 15, _1: "3552713678800500929355621337890625" };
1126
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1398 = { _0: 15, _1: "17763568394002504646778106689453125" };
1127
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1399 = { _0: 16, _1: "88817841970012523233890533447265625" };
1128
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1400 = { _0: 16, _1: "444089209850062616169452667236328125" };
1129
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1401 = { _0: 16, _1: "2220446049250313080847263336181640625" };
1130
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1402 = { _0: 16, _1: "11102230246251565404236316680908203125" };
1131
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1403 = { _0: 17, _1: "55511151231257827021181583404541015625" };
1132
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1404 = { _0: 17, _1: "277555756156289135105907917022705078125" };
1133
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1405 = { _0: 17, _1: "1387778780781445675529539585113525390625" };
1134
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1406 = { _0: 18, _1: "6938893903907228377647697925567626953125" };
1135
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1407 = { _0: 18, _1: "34694469519536141888238489627838134765625" };
1136
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1408 = { _0: 18, _1: "173472347597680709441192448139190673828125" };
1137
- const _M0FPC17strconv34left__shift__cheats_2etuple_2f1409 = { _0: 19, _1: "867361737988403547205962240695953369140625" };
1138
- const _M0FPC17strconv19left__shift__cheats = [_M0FPC17strconv34left__shift__cheats_2etuple_2f1349, _M0FPC17strconv34left__shift__cheats_2etuple_2f1350, _M0FPC17strconv34left__shift__cheats_2etuple_2f1351, _M0FPC17strconv34left__shift__cheats_2etuple_2f1352, _M0FPC17strconv34left__shift__cheats_2etuple_2f1353, _M0FPC17strconv34left__shift__cheats_2etuple_2f1354, _M0FPC17strconv34left__shift__cheats_2etuple_2f1355, _M0FPC17strconv34left__shift__cheats_2etuple_2f1356, _M0FPC17strconv34left__shift__cheats_2etuple_2f1357, _M0FPC17strconv34left__shift__cheats_2etuple_2f1358, _M0FPC17strconv34left__shift__cheats_2etuple_2f1359, _M0FPC17strconv34left__shift__cheats_2etuple_2f1360, _M0FPC17strconv34left__shift__cheats_2etuple_2f1361, _M0FPC17strconv34left__shift__cheats_2etuple_2f1362, _M0FPC17strconv34left__shift__cheats_2etuple_2f1363, _M0FPC17strconv34left__shift__cheats_2etuple_2f1364, _M0FPC17strconv34left__shift__cheats_2etuple_2f1365, _M0FPC17strconv34left__shift__cheats_2etuple_2f1366, _M0FPC17strconv34left__shift__cheats_2etuple_2f1367, _M0FPC17strconv34left__shift__cheats_2etuple_2f1368, _M0FPC17strconv34left__shift__cheats_2etuple_2f1369, _M0FPC17strconv34left__shift__cheats_2etuple_2f1370, _M0FPC17strconv34left__shift__cheats_2etuple_2f1371, _M0FPC17strconv34left__shift__cheats_2etuple_2f1372, _M0FPC17strconv34left__shift__cheats_2etuple_2f1373, _M0FPC17strconv34left__shift__cheats_2etuple_2f1374, _M0FPC17strconv34left__shift__cheats_2etuple_2f1375, _M0FPC17strconv34left__shift__cheats_2etuple_2f1376, _M0FPC17strconv34left__shift__cheats_2etuple_2f1377, _M0FPC17strconv34left__shift__cheats_2etuple_2f1378, _M0FPC17strconv34left__shift__cheats_2etuple_2f1379, _M0FPC17strconv34left__shift__cheats_2etuple_2f1380, _M0FPC17strconv34left__shift__cheats_2etuple_2f1381, _M0FPC17strconv34left__shift__cheats_2etuple_2f1382, _M0FPC17strconv34left__shift__cheats_2etuple_2f1383, _M0FPC17strconv34left__shift__cheats_2etuple_2f1384, _M0FPC17strconv34left__shift__cheats_2etuple_2f1385, _M0FPC17strconv34left__shift__cheats_2etuple_2f1386, _M0FPC17strconv34left__shift__cheats_2etuple_2f1387, _M0FPC17strconv34left__shift__cheats_2etuple_2f1388, _M0FPC17strconv34left__shift__cheats_2etuple_2f1389, _M0FPC17strconv34left__shift__cheats_2etuple_2f1390, _M0FPC17strconv34left__shift__cheats_2etuple_2f1391, _M0FPC17strconv34left__shift__cheats_2etuple_2f1392, _M0FPC17strconv34left__shift__cheats_2etuple_2f1393, _M0FPC17strconv34left__shift__cheats_2etuple_2f1394, _M0FPC17strconv34left__shift__cheats_2etuple_2f1395, _M0FPC17strconv34left__shift__cheats_2etuple_2f1396, _M0FPC17strconv34left__shift__cheats_2etuple_2f1397, _M0FPC17strconv34left__shift__cheats_2etuple_2f1398, _M0FPC17strconv34left__shift__cheats_2etuple_2f1399, _M0FPC17strconv34left__shift__cheats_2etuple_2f1400, _M0FPC17strconv34left__shift__cheats_2etuple_2f1401, _M0FPC17strconv34left__shift__cheats_2etuple_2f1402, _M0FPC17strconv34left__shift__cheats_2etuple_2f1403, _M0FPC17strconv34left__shift__cheats_2etuple_2f1404, _M0FPC17strconv34left__shift__cheats_2etuple_2f1405, _M0FPC17strconv34left__shift__cheats_2etuple_2f1406, _M0FPC17strconv34left__shift__cheats_2etuple_2f1407, _M0FPC17strconv34left__shift__cheats_2etuple_2f1408, _M0FPC17strconv34left__shift__cheats_2etuple_2f1409];
1079
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1351 = { _0: 0, _1: "" };
1080
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1352 = { _0: 1, _1: "5" };
1081
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1353 = { _0: 1, _1: "25" };
1082
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1354 = { _0: 1, _1: "125" };
1083
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1355 = { _0: 2, _1: "625" };
1084
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1356 = { _0: 2, _1: "3125" };
1085
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1357 = { _0: 2, _1: "15625" };
1086
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1358 = { _0: 3, _1: "78125" };
1087
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1359 = { _0: 3, _1: "390625" };
1088
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1360 = { _0: 3, _1: "1953125" };
1089
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1361 = { _0: 4, _1: "9765625" };
1090
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1362 = { _0: 4, _1: "48828125" };
1091
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1363 = { _0: 4, _1: "244140625" };
1092
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1364 = { _0: 4, _1: "1220703125" };
1093
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1365 = { _0: 5, _1: "6103515625" };
1094
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1366 = { _0: 5, _1: "30517578125" };
1095
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1367 = { _0: 5, _1: "152587890625" };
1096
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1368 = { _0: 6, _1: "762939453125" };
1097
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1369 = { _0: 6, _1: "3814697265625" };
1098
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1370 = { _0: 6, _1: "19073486328125" };
1099
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1371 = { _0: 7, _1: "95367431640625" };
1100
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1372 = { _0: 7, _1: "476837158203125" };
1101
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1373 = { _0: 7, _1: "2384185791015625" };
1102
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1374 = { _0: 7, _1: "11920928955078125" };
1103
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1375 = { _0: 8, _1: "59604644775390625" };
1104
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1376 = { _0: 8, _1: "298023223876953125" };
1105
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1377 = { _0: 8, _1: "1490116119384765625" };
1106
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1378 = { _0: 9, _1: "7450580596923828125" };
1107
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1379 = { _0: 9, _1: "37252902984619140625" };
1108
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1380 = { _0: 9, _1: "186264514923095703125" };
1109
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1381 = { _0: 10, _1: "931322574615478515625" };
1110
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1382 = { _0: 10, _1: "4656612873077392578125" };
1111
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1383 = { _0: 10, _1: "23283064365386962890625" };
1112
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1384 = { _0: 10, _1: "116415321826934814453125" };
1113
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1385 = { _0: 11, _1: "582076609134674072265625" };
1114
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1386 = { _0: 11, _1: "2910383045673370361328125" };
1115
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1387 = { _0: 11, _1: "14551915228366851806640625" };
1116
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1388 = { _0: 12, _1: "72759576141834259033203125" };
1117
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1389 = { _0: 12, _1: "363797880709171295166015625" };
1118
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1390 = { _0: 12, _1: "1818989403545856475830078125" };
1119
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1391 = { _0: 13, _1: "9094947017729282379150390625" };
1120
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1392 = { _0: 13, _1: "45474735088646411895751953125" };
1121
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1393 = { _0: 13, _1: "227373675443232059478759765625" };
1122
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1394 = { _0: 13, _1: "1136868377216160297393798828125" };
1123
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1395 = { _0: 14, _1: "5684341886080801486968994140625" };
1124
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1396 = { _0: 14, _1: "28421709430404007434844970703125" };
1125
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1397 = { _0: 14, _1: "142108547152020037174224853515625" };
1126
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1398 = { _0: 15, _1: "710542735760100185871124267578125" };
1127
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1399 = { _0: 15, _1: "3552713678800500929355621337890625" };
1128
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1400 = { _0: 15, _1: "17763568394002504646778106689453125" };
1129
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1401 = { _0: 16, _1: "88817841970012523233890533447265625" };
1130
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1402 = { _0: 16, _1: "444089209850062616169452667236328125" };
1131
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1403 = { _0: 16, _1: "2220446049250313080847263336181640625" };
1132
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1404 = { _0: 16, _1: "11102230246251565404236316680908203125" };
1133
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1405 = { _0: 17, _1: "55511151231257827021181583404541015625" };
1134
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1406 = { _0: 17, _1: "277555756156289135105907917022705078125" };
1135
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1407 = { _0: 17, _1: "1387778780781445675529539585113525390625" };
1136
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1408 = { _0: 18, _1: "6938893903907228377647697925567626953125" };
1137
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1409 = { _0: 18, _1: "34694469519536141888238489627838134765625" };
1138
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1410 = { _0: 18, _1: "173472347597680709441192448139190673828125" };
1139
+ const _M0FPC17strconv34left__shift__cheats_2etuple_2f1411 = { _0: 19, _1: "867361737988403547205962240695953369140625" };
1140
+ const _M0FPC17strconv19left__shift__cheats = [_M0FPC17strconv34left__shift__cheats_2etuple_2f1351, _M0FPC17strconv34left__shift__cheats_2etuple_2f1352, _M0FPC17strconv34left__shift__cheats_2etuple_2f1353, _M0FPC17strconv34left__shift__cheats_2etuple_2f1354, _M0FPC17strconv34left__shift__cheats_2etuple_2f1355, _M0FPC17strconv34left__shift__cheats_2etuple_2f1356, _M0FPC17strconv34left__shift__cheats_2etuple_2f1357, _M0FPC17strconv34left__shift__cheats_2etuple_2f1358, _M0FPC17strconv34left__shift__cheats_2etuple_2f1359, _M0FPC17strconv34left__shift__cheats_2etuple_2f1360, _M0FPC17strconv34left__shift__cheats_2etuple_2f1361, _M0FPC17strconv34left__shift__cheats_2etuple_2f1362, _M0FPC17strconv34left__shift__cheats_2etuple_2f1363, _M0FPC17strconv34left__shift__cheats_2etuple_2f1364, _M0FPC17strconv34left__shift__cheats_2etuple_2f1365, _M0FPC17strconv34left__shift__cheats_2etuple_2f1366, _M0FPC17strconv34left__shift__cheats_2etuple_2f1367, _M0FPC17strconv34left__shift__cheats_2etuple_2f1368, _M0FPC17strconv34left__shift__cheats_2etuple_2f1369, _M0FPC17strconv34left__shift__cheats_2etuple_2f1370, _M0FPC17strconv34left__shift__cheats_2etuple_2f1371, _M0FPC17strconv34left__shift__cheats_2etuple_2f1372, _M0FPC17strconv34left__shift__cheats_2etuple_2f1373, _M0FPC17strconv34left__shift__cheats_2etuple_2f1374, _M0FPC17strconv34left__shift__cheats_2etuple_2f1375, _M0FPC17strconv34left__shift__cheats_2etuple_2f1376, _M0FPC17strconv34left__shift__cheats_2etuple_2f1377, _M0FPC17strconv34left__shift__cheats_2etuple_2f1378, _M0FPC17strconv34left__shift__cheats_2etuple_2f1379, _M0FPC17strconv34left__shift__cheats_2etuple_2f1380, _M0FPC17strconv34left__shift__cheats_2etuple_2f1381, _M0FPC17strconv34left__shift__cheats_2etuple_2f1382, _M0FPC17strconv34left__shift__cheats_2etuple_2f1383, _M0FPC17strconv34left__shift__cheats_2etuple_2f1384, _M0FPC17strconv34left__shift__cheats_2etuple_2f1385, _M0FPC17strconv34left__shift__cheats_2etuple_2f1386, _M0FPC17strconv34left__shift__cheats_2etuple_2f1387, _M0FPC17strconv34left__shift__cheats_2etuple_2f1388, _M0FPC17strconv34left__shift__cheats_2etuple_2f1389, _M0FPC17strconv34left__shift__cheats_2etuple_2f1390, _M0FPC17strconv34left__shift__cheats_2etuple_2f1391, _M0FPC17strconv34left__shift__cheats_2etuple_2f1392, _M0FPC17strconv34left__shift__cheats_2etuple_2f1393, _M0FPC17strconv34left__shift__cheats_2etuple_2f1394, _M0FPC17strconv34left__shift__cheats_2etuple_2f1395, _M0FPC17strconv34left__shift__cheats_2etuple_2f1396, _M0FPC17strconv34left__shift__cheats_2etuple_2f1397, _M0FPC17strconv34left__shift__cheats_2etuple_2f1398, _M0FPC17strconv34left__shift__cheats_2etuple_2f1399, _M0FPC17strconv34left__shift__cheats_2etuple_2f1400, _M0FPC17strconv34left__shift__cheats_2etuple_2f1401, _M0FPC17strconv34left__shift__cheats_2etuple_2f1402, _M0FPC17strconv34left__shift__cheats_2etuple_2f1403, _M0FPC17strconv34left__shift__cheats_2etuple_2f1404, _M0FPC17strconv34left__shift__cheats_2etuple_2f1405, _M0FPC17strconv34left__shift__cheats_2etuple_2f1406, _M0FPC17strconv34left__shift__cheats_2etuple_2f1407, _M0FPC17strconv34left__shift__cheats_2etuple_2f1408, _M0FPC17strconv34left__shift__cheats_2etuple_2f1409, _M0FPC17strconv34left__shift__cheats_2etuple_2f1410, _M0FPC17strconv34left__shift__cheats_2etuple_2f1411];
1139
1141
  const _M0FPC17strconv10int__pow10 = [$1L, $10L, $100L, $1000L, $10000L, $100000L, $1000000L, $10000000L, $100000000L, $1000000000L, $10000000000L, $100000000000L, $1000000000000L, $10000000000000L, $100000000000000L, $1000000000000000L];
1140
1142
  const _M0FPC17strconv25max__exponent__fast__path = $22L;
1141
1143
  const _M0FPC17strconv5table = [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, 10000000000, 100000000000, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22, 0, 0, 0, 0, 0, 0, 0, 0, 0];
@@ -1155,7 +1157,7 @@ const _M0FPC16double13neg__infinity = _M0MPC15int645Int6423reinterpret__as__doub
1155
1157
  const _M0FPC16double14not__a__number = _M0MPC15int645Int6423reinterpret__as__double($9221120237041090561L);
1156
1158
  const _M0FPC16double8infinity = _M0MPC15int645Int6423reinterpret__as__double($9218868437227405312L);
1157
1159
  const _M0FPC17strconv25max__mantissa__fast__path = _M0IPC16uint646UInt64PB3Shl3shl($2L, 52);
1158
- const _M0FPC17strconv28checked__mul_2econstr_2f1826 = $0L;
1160
+ const _M0FPC17strconv28checked__mul_2econstr_2f1828 = $0L;
1159
1161
  function _M0FPC15abort5abortGRPC16string10StringViewE(msg) {
1160
1162
  return $panic();
1161
1163
  }
@@ -6718,7 +6720,7 @@ function _M0MPC17strconv7Decimal16to__double__priv(self) {
6718
6720
  }
6719
6721
  function _M0FPC17strconv12checked__mul(a, b) {
6720
6722
  if (_M0IPC16uint646UInt64PB2Eq5equal(a, $0L) || _M0IPC16uint646UInt64PB2Eq5equal(b, $0L)) {
6721
- return _M0FPC17strconv28checked__mul_2econstr_2f1826;
6723
+ return _M0FPC17strconv28checked__mul_2econstr_2f1828;
6722
6724
  }
6723
6725
  if (_M0IPC16uint646UInt64PB2Eq5equal(a, $1L)) {
6724
6726
  return b;
@@ -8999,6 +9001,60 @@ function _M0IP36mizchi7tornado5types11AgentStatusPB4Show6output(_x_206, _x_207)
8999
9001
  _M0MPB6Logger13write__objectGsE(_x_207, _arg_208);
9000
9002
  _x_207.method_table.method_0(_x_207.self, ")");
9001
9003
  }
9004
+ function _M0IP36mizchi7tornado5types10TaskStatusPB2Eq5equal(_x_138, _x_139) {
9005
+ let _x0_142;
9006
+ let _y0_143;
9007
+ _L: {
9008
+ let _x0_140;
9009
+ let _y0_141;
9010
+ _L$2: {
9011
+ switch (_x_138.$tag) {
9012
+ case 0: {
9013
+ if (_x_139.$tag === 0) {
9014
+ return true;
9015
+ } else {
9016
+ return false;
9017
+ }
9018
+ }
9019
+ case 1: {
9020
+ const _InProgress = _x_138;
9021
+ const _$42$x0_140 = _InProgress._0;
9022
+ if (_x_139.$tag === 1) {
9023
+ const _InProgress$2 = _x_139;
9024
+ const _$42$y0_141 = _InProgress$2._0;
9025
+ _x0_140 = _$42$x0_140;
9026
+ _y0_141 = _$42$y0_141;
9027
+ break _L$2;
9028
+ } else {
9029
+ return false;
9030
+ }
9031
+ }
9032
+ case 2: {
9033
+ if (_x_139.$tag === 2) {
9034
+ return true;
9035
+ } else {
9036
+ return false;
9037
+ }
9038
+ }
9039
+ default: {
9040
+ const _Failed = _x_138;
9041
+ const _$42$x0_142 = _Failed._0;
9042
+ if (_x_139.$tag === 3) {
9043
+ const _Failed$2 = _x_139;
9044
+ const _$42$y0_143 = _Failed$2._0;
9045
+ _x0_142 = _$42$x0_142;
9046
+ _y0_143 = _$42$y0_143;
9047
+ break _L;
9048
+ } else {
9049
+ return false;
9050
+ }
9051
+ }
9052
+ }
9053
+ }
9054
+ return _x0_140 === _y0_141;
9055
+ }
9056
+ return _x0_142 === _y0_143;
9057
+ }
9002
9058
  function _M0IP36mizchi7tornado5types15MilestoneStatusPB2Eq5equal(_x_108, _x_109) {
9003
9059
  let _x0_110;
9004
9060
  let _y0_111;
@@ -10269,10 +10325,13 @@ function _M0MP36mizchi7tornado5agent17SubprocessBackend17run__claude__code(self,
10269
10325
  function _M0FP36mizchi7tornado5agent15run__codex__sdk(opts_json) {
10270
10326
  return _M0FP36mizchi7tornado5agent12js__run__sdk("codex-runner.mjs", opts_json);
10271
10327
  }
10272
- function _M0MP36mizchi7tornado5agent17SubprocessBackend10run__codex(self, task, _system_prompt, on_output) {
10328
+ function _M0MP36mizchi7tornado5agent17SubprocessBackend10run__codex(self, task, system_prompt, on_output) {
10273
10329
  const _bind = [];
10274
10330
  const opts = _M0MPB3Map11from__arrayGsRPB4JsonE(new _M0TPB9ArrayViewGUsRPB4JsonEE(_bind, 0, 0));
10275
10331
  _M0MPB3Map3setGsRPB4JsonE(opts, "prompt", _M0IPC16string6StringPB6ToJson8to__json(task));
10332
+ if (!_M0MPC16string6String9is__empty(system_prompt)) {
10333
+ _M0MPB3Map3setGsRPB4JsonE(opts, "systemPrompt", _M0IPC16string6StringPB6ToJson8to__json(system_prompt));
10334
+ }
10276
10335
  if (!_M0MPC16string6String9is__empty(self.model)) {
10277
10336
  _M0MPB3Map3setGsRPB4JsonE(opts, "model", _M0IPC16string6StringPB6ToJson8to__json(self.model));
10278
10337
  }
@@ -10637,10 +10696,16 @@ function _M0FP36mizchi7tornado5agent15create__backend(config) {
10637
10696
  }
10638
10697
  default: {
10639
10698
  const _bind$2 = config.role;
10640
- if (_bind$2 === 4) {
10641
- return _M0MP36mizchi7tornado5agent11MockBackend5boxed(_M0MP36mizchi7tornado5agent11MockBackend11new_2einner("<wave_approved>"));
10642
- } else {
10643
- return _M0MP36mizchi7tornado5agent11MockBackend5boxed(_M0MP36mizchi7tornado5agent11MockBackend11new_2einner("mock response"));
10699
+ switch (_bind$2) {
10700
+ case 3: {
10701
+ return _M0MP36mizchi7tornado5agent11MockBackend5boxed(_M0MP36mizchi7tornado5agent11MockBackend11new_2einner("WAVE 0:\n1. Mock planned task"));
10702
+ }
10703
+ case 4: {
10704
+ return _M0MP36mizchi7tornado5agent11MockBackend5boxed(_M0MP36mizchi7tornado5agent11MockBackend11new_2einner("<wave_approved>"));
10705
+ }
10706
+ default: {
10707
+ return _M0MP36mizchi7tornado5agent11MockBackend5boxed(_M0MP36mizchi7tornado5agent11MockBackend11new_2einner("mock response"));
10708
+ }
10644
10709
  }
10645
10710
  }
10646
10711
  }
@@ -11874,22 +11939,22 @@ function _M0FP36mizchi7tornado7prompts19security__checklist(lang) {
11874
11939
  }
11875
11940
  return _M0MPB13StringBuilder10to__string(buf);
11876
11941
  }
11877
- function _M0IP36mizchi7tornado5ralph19VerifierPerspectivePB4Show6output(_x_335, _x_336) {
11878
- switch (_x_335) {
11942
+ function _M0IP36mizchi7tornado5ralph19VerifierPerspectivePB4Show6output(_x_353, _x_354) {
11943
+ switch (_x_353) {
11879
11944
  case 0: {
11880
- _x_336.method_table.method_0(_x_336.self, "CodeQuality");
11945
+ _x_354.method_table.method_0(_x_354.self, "CodeQuality");
11881
11946
  return;
11882
11947
  }
11883
11948
  case 1: {
11884
- _x_336.method_table.method_0(_x_336.self, "Performance");
11949
+ _x_354.method_table.method_0(_x_354.self, "Performance");
11885
11950
  return;
11886
11951
  }
11887
11952
  case 2: {
11888
- _x_336.method_table.method_0(_x_336.self, "Security");
11953
+ _x_354.method_table.method_0(_x_354.self, "Security");
11889
11954
  return;
11890
11955
  }
11891
11956
  default: {
11892
- _x_336.method_table.method_0(_x_336.self, "GoalAlignment");
11957
+ _x_354.method_table.method_0(_x_354.self, "GoalAlignment");
11893
11958
  return;
11894
11959
  }
11895
11960
  }
@@ -12396,6 +12461,49 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager24next__pending__milestone
12396
12461
  function _M0FP36mizchi7tornado5ralph13find__backend(backends, id) {
12397
12462
  return _M0MPB3Map3getGsRP36mizchi7tornado5agent12BoxedBackendE(backends, id);
12398
12463
  }
12464
+ function _M0FP36mizchi7tornado5ralph13join__strings(parts, sep) {
12465
+ const buf = _M0MPB13StringBuilder11new_2einner(0);
12466
+ const _bind = parts.length;
12467
+ let _tmp = 0;
12468
+ while (true) {
12469
+ const i = _tmp;
12470
+ if (i < _bind) {
12471
+ const part = parts[i];
12472
+ if (i > 0) {
12473
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, sep);
12474
+ }
12475
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, part);
12476
+ _tmp = i + 1 | 0;
12477
+ continue;
12478
+ } else {
12479
+ break;
12480
+ }
12481
+ }
12482
+ return _M0MPB13StringBuilder10to__string(buf);
12483
+ }
12484
+ function _M0FP36mizchi7tornado5ralph28generate__milestone__summary(milestone) {
12485
+ const parts = [];
12486
+ const _bind = milestone.tasks;
12487
+ const _bind$2 = _bind.length;
12488
+ let _tmp = 0;
12489
+ while (true) {
12490
+ const _ = _tmp;
12491
+ if (_ < _bind$2) {
12492
+ const task = _bind[_];
12493
+ if (_M0IP36mizchi7tornado5types10TaskStatusPB2Eq5equal(task.status, _M0DTP36mizchi7tornado5types10TaskStatus4Done__)) {
12494
+ _M0MPC15array5Array4pushGsE(parts, task.description);
12495
+ }
12496
+ _tmp = _ + 1 | 0;
12497
+ continue;
12498
+ } else {
12499
+ break;
12500
+ }
12501
+ }
12502
+ if (_M0MPC15array5Array9is__emptyGsE(parts)) {
12503
+ return milestone.goal;
12504
+ }
12505
+ return _M0FP36mizchi7tornado5ralph13join__strings(parts, "; ");
12506
+ }
12399
12507
  function _M0FP36mizchi7tornado5ralph13handle__event(rl, agent_id, event) {
12400
12508
  let msg;
12401
12509
  _L: {
@@ -12491,7 +12599,44 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager18next__wave__number(_self
12491
12599
  }
12492
12600
  return min_wave.val;
12493
12601
  }
12494
- function _M0MP36mizchi7tornado5ralph12PlannerAgent19build__plan__prompt(self, milestone, project_context) {
12602
+ function _M0FP36mizchi7tornado5ralph30build__planner__system__prompt(brief, milestones) {
12603
+ const buf = _M0MPB13StringBuilder11new_2einner(0);
12604
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "You are a planning agent that breaks down milestones into executable tasks.\n\n");
12605
+ if (!_M0MPC16string6String9is__empty(brief)) {
12606
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "## Brief\n");
12607
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, brief);
12608
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "\n\n");
12609
+ }
12610
+ const has_completed = new _M0TPC13ref3RefGbE(false);
12611
+ const _bind = milestones.length;
12612
+ let _tmp = 0;
12613
+ while (true) {
12614
+ const _ = _tmp;
12615
+ if (_ < _bind) {
12616
+ const m = milestones[_];
12617
+ if (_M0IP36mizchi7tornado5types15MilestoneStatusPB2Eq5equal(m.status, _M0DTP36mizchi7tornado5types15MilestoneStatus4Done__) && !_M0MPC16string6String9is__empty(m.summary)) {
12618
+ if (!has_completed.val) {
12619
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "## Completed Milestones\n");
12620
+ has_completed.val = true;
12621
+ }
12622
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "- ");
12623
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, m.id);
12624
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, ": ");
12625
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, m.summary);
12626
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
12627
+ }
12628
+ _tmp = _ + 1 | 0;
12629
+ continue;
12630
+ } else {
12631
+ break;
12632
+ }
12633
+ }
12634
+ if (has_completed.val) {
12635
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
12636
+ }
12637
+ return _M0MPB13StringBuilder10to__string(buf);
12638
+ }
12639
+ function _M0MP36mizchi7tornado5ralph12PlannerAgent19build__plan__prompt(self, milestone) {
12495
12640
  const lang_instruction = self.lang === "ja" ? "Respond in Japanese." : "Respond in English.";
12496
12641
  const prompt = _M0MPB13StringBuilder11new_2einner(0);
12497
12642
  _M0IPB13StringBuilderPB6Logger13write__string(prompt, "You are a Planner agent. ");
@@ -12503,11 +12648,6 @@ function _M0MP36mizchi7tornado5ralph12PlannerAgent19build__plan__prompt(self, mi
12503
12648
  _M0IPB13StringBuilderPB6Logger13write__string(prompt, "\nGoal: ");
12504
12649
  _M0IPB13StringBuilderPB6Logger13write__string(prompt, milestone.goal);
12505
12650
  _M0IPB13StringBuilderPB6Logger13write__string(prompt, "\n\n");
12506
- if (!_M0MPC16string6String9is__empty(project_context)) {
12507
- _M0IPB13StringBuilderPB6Logger13write__string(prompt, "## Project Context\n");
12508
- _M0IPB13StringBuilderPB6Logger13write__string(prompt, project_context);
12509
- _M0IPB13StringBuilderPB6Logger13write__string(prompt, "\n\n");
12510
- }
12511
12651
  _M0IPB13StringBuilderPB6Logger13write__string(prompt, "## Instructions\nBreak down this milestone into concrete tasks grouped by waves.\nTasks in the same wave can be executed independently.\nTasks in later waves depend on earlier waves.\n\n## Output Format\nWAVE 0:\n1. First task description\n2. Second task description\n\nWAVE 1:\n1. Task that depends on wave 0\n");
12512
12652
  return _M0MPB13StringBuilder10to__string(prompt);
12513
12653
  }
@@ -12527,6 +12667,28 @@ function _M0FP36mizchi7tornado5ralph17has__wave__prefix(s) {
12527
12667
  return _tmp;
12528
12668
  }
12529
12669
  }
12670
+ function _M0FP36mizchi7tornado5ralph13is__separator(s) {
12671
+ const chars = _M0MPC16string6String9to__array(s);
12672
+ if (chars.length < 3) {
12673
+ return false;
12674
+ }
12675
+ const _bind = chars.length;
12676
+ let _tmp = 0;
12677
+ while (true) {
12678
+ const _ = _tmp;
12679
+ if (_ < _bind) {
12680
+ const ch = chars[_];
12681
+ if (ch !== 45) {
12682
+ return false;
12683
+ }
12684
+ _tmp = _ + 1 | 0;
12685
+ continue;
12686
+ } else {
12687
+ break;
12688
+ }
12689
+ }
12690
+ return true;
12691
+ }
12530
12692
  function _M0FP36mizchi7tornado5ralph17parse__list__item(s) {
12531
12693
  const chars = _M0MPC16string6String9to__array(s);
12532
12694
  const len = chars.length;
@@ -12580,6 +12742,30 @@ function _M0FP36mizchi7tornado5ralph19parse__wave__number(s) {
12580
12742
  }
12581
12743
  return found.val ? num.val : -1;
12582
12744
  }
12745
+ function _M0FP36mizchi7tornado5ralph23strip__markdown__prefix(s) {
12746
+ const result = new _M0TPC13ref3RefGsE(s);
12747
+ while (true) {
12748
+ const _tmp = result.val;
12749
+ const _bind = "#";
12750
+ if (_M0MPC16string6String11has__prefix(_tmp, new _M0TPC16string10StringView(_bind, 0, _bind.length))) {
12751
+ result.val = _M0FP36mizchi7tornado5ralph4trim(_M0MPC16string6String11from__array(_M0MPC15array5Array12view_2einnerGcE(_M0MPC16string6String9to__array(result.val), 1, undefined)));
12752
+ continue;
12753
+ } else {
12754
+ break;
12755
+ }
12756
+ }
12757
+ while (true) {
12758
+ const _tmp = result.val;
12759
+ const _bind = "**";
12760
+ if (_M0MPC16string6String11has__prefix(_tmp, new _M0TPC16string10StringView(_bind, 0, _bind.length))) {
12761
+ result.val = _M0MPC16string6String11from__array(_M0MPC15array5Array12view_2einnerGcE(_M0MPC16string6String9to__array(result.val), 2, undefined));
12762
+ continue;
12763
+ } else {
12764
+ break;
12765
+ }
12766
+ }
12767
+ return result.val;
12768
+ }
12583
12769
  function _M0MP36mizchi7tornado5ralph16MilestoneManager13gen__task__id(self, milestone_id) {
12584
12770
  const id = `${_M0IPC16string6StringPB4Show10to__string(milestone_id)}-t${_M0IP016_24default__implPB4Show10to__stringGiE(self.next_task_id)}`;
12585
12771
  self.next_task_id = self.next_task_id + 1 | 0;
@@ -12600,8 +12786,12 @@ function _M0FP36mizchi7tornado5ralph17parse__plan__text(mgr, output, milestone_i
12600
12786
  if (_M0MPC16string6String9is__empty(trimmed)) {
12601
12787
  break _L;
12602
12788
  }
12603
- if (_M0FP36mizchi7tornado5ralph17has__wave__prefix(trimmed)) {
12604
- const num = _M0FP36mizchi7tornado5ralph19parse__wave__number(trimmed);
12789
+ if (_M0FP36mizchi7tornado5ralph13is__separator(trimmed) && tasks.length > 0) {
12790
+ break;
12791
+ }
12792
+ const stripped = _M0FP36mizchi7tornado5ralph23strip__markdown__prefix(trimmed);
12793
+ if (_M0FP36mizchi7tornado5ralph17has__wave__prefix(stripped)) {
12794
+ const num = _M0FP36mizchi7tornado5ralph19parse__wave__number(stripped);
12605
12795
  if (num >= 0) {
12606
12796
  current_wave.val = num;
12607
12797
  }
@@ -12628,9 +12818,9 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager22parse__planner__output(s
12628
12818
  function _M0MP36mizchi7tornado5ralph12PlannerAgent11parse__plan(_self, output, milestone_id, mgr) {
12629
12819
  return _M0MP36mizchi7tornado5ralph16MilestoneManager22parse__planner__output(mgr, output, milestone_id);
12630
12820
  }
12631
- function _M0MP36mizchi7tornado5ralph12PlannerAgent12plan_2einner(self, milestone, backend, project_context, mgr, on_event) {
12632
- const prompt = _M0MP36mizchi7tornado5ralph12PlannerAgent19build__plan__prompt(self, milestone, project_context);
12633
- const system_prompt = "You are a planning agent that breaks down milestones into executable tasks.";
12821
+ function _M0MP36mizchi7tornado5ralph12PlannerAgent12plan_2einner(self, milestone, backend, brief, milestones, mgr, on_event) {
12822
+ const prompt = _M0MP36mizchi7tornado5ralph12PlannerAgent19build__plan__prompt(self, milestone);
12823
+ const system_prompt = _M0FP36mizchi7tornado5ralph30build__planner__system__prompt(brief, milestones);
12634
12824
  const result = _M0MP36mizchi7tornado5agent12BoxedBackend3run(backend, prompt, system_prompt, on_event);
12635
12825
  const _bind = result.status;
12636
12826
  if (_bind.$tag === 2) {
@@ -12639,6 +12829,12 @@ function _M0MP36mizchi7tornado5ralph12PlannerAgent12plan_2einner(self, milestone
12639
12829
  return [];
12640
12830
  }
12641
12831
  }
12832
+ function _M0FP36mizchi7tornado5ralph30build__builder__system__prompt(brief) {
12833
+ if (_M0MPC16string6String9is__empty(brief)) {
12834
+ return "";
12835
+ }
12836
+ return `## Brief\n${brief}\n`;
12837
+ }
12642
12838
  function _M0FP36mizchi7tornado5ralph22collect__wave__results(tasks) {
12643
12839
  const results = [];
12644
12840
  const _bind = tasks.length;
@@ -12833,7 +13029,7 @@ function _M0MP36mizchi7tornado5ralph9RalphLoop13rework__tasks(self, milestone, w
12833
13029
  const feedback_str = _M0MPC16string6String9is__empty(task_feedback_str) ? _M0MPB4Iter4foldGssE(_M0MPC15array5Array4iterGRP36mizchi7tornado5types11AgentConfigE(feedback), "", (acc, item) => `${acc}- ${item}\n`) : task_feedback_str;
12834
13030
  const rework_prompt = `${task.description}\n\nFeedback from verifier:\n${feedback_str}`;
12835
13031
  _M0FP36mizchi7tornado5ralph10emit__info(self, `Reworking task ${_M0IPC16string6StringPB4Show10to__string(task.id)}`);
12836
- const result = _M0MP36mizchi7tornado5agent12BoxedBackend3run(backend, rework_prompt, "", (e) => {
13032
+ const result = _M0MP36mizchi7tornado5agent12BoxedBackend3run(backend, rework_prompt, _M0FP36mizchi7tornado5ralph30build__builder__system__prompt(self.milestone_manager.brief), (e) => {
12837
13033
  _M0FP36mizchi7tornado5ralph13handle__event(self, bid, e);
12838
13034
  });
12839
13035
  const _bind$4 = result.status;
@@ -12977,7 +13173,7 @@ function _M0MP36mizchi7tornado5ralph9RalphLoop9run__wave(self, milestone, wave)
12977
13173
  const task = tasks[_];
12978
13174
  task.status = new _M0DTP36mizchi7tornado5types10TaskStatus10InProgress(bid);
12979
13175
  _M0FP36mizchi7tornado5ralph10emit__info(self, `Running task ${_M0IPC16string6StringPB4Show10to__string(task.id)}: ${_M0IPC16string6StringPB4Show10to__string(task.description)}`);
12980
- const result = _M0MP36mizchi7tornado5agent12BoxedBackend3run(backend, task.description, "", (e) => {
13176
+ const result = _M0MP36mizchi7tornado5agent12BoxedBackend3run(backend, task.description, _M0FP36mizchi7tornado5ralph30build__builder__system__prompt(self.milestone_manager.brief), (e) => {
12981
13177
  _M0FP36mizchi7tornado5ralph13handle__event(self, bid, e);
12982
13178
  });
12983
13179
  const _bind$2 = result.status;
@@ -13032,7 +13228,7 @@ function _M0MP36mizchi7tornado5ralph9RalphLoop14run__milestone(self, milestone)
13032
13228
  break _L$3;
13033
13229
  }
13034
13230
  }
13035
- const tasks = _M0MP36mizchi7tornado5ralph12PlannerAgent12plan_2einner(planner, milestone, backend, "", self.milestone_manager, (e) => {
13231
+ const tasks = _M0MP36mizchi7tornado5ralph12PlannerAgent12plan_2einner(planner, milestone, backend, self.milestone_manager.brief, self.milestone_manager.milestones, self.milestone_manager, (e) => {
13036
13232
  _M0FP36mizchi7tornado5ralph13handle__event(self, planner.agent_id, e);
13037
13233
  });
13038
13234
  if (_M0MPC15array5Array9is__emptyGsE(tasks)) {
@@ -13068,6 +13264,7 @@ function _M0MP36mizchi7tornado5ralph9RalphLoop14run__milestone(self, milestone)
13068
13264
  break;
13069
13265
  }
13070
13266
  }
13267
+ milestone.summary = _M0FP36mizchi7tornado5ralph28generate__milestone__summary(milestone);
13071
13268
  milestone.status = _M0DTP36mizchi7tornado5types15MilestoneStatus4Done__;
13072
13269
  self.current_phase = new _M0DTP36mizchi7tornado5types10RalphPhase17MilestoneComplete(milestone.id);
13073
13270
  _M0FP36mizchi7tornado5ralph10emit__info(self, `Milestone ${_M0IPC16string6StringPB4Show10to__string(milestone.id)} complete`);
@@ -13099,7 +13296,7 @@ function _M0MP36mizchi7tornado5ralph9RalphLoop3run(self) {
13099
13296
  }
13100
13297
  }
13101
13298
  function _M0MP36mizchi7tornado5ralph16MilestoneManager3new() {
13102
- return new _M0TP36mizchi7tornado5ralph16MilestoneManager([], 1);
13299
+ return new _M0TP36mizchi7tornado5ralph16MilestoneManager([], 1, "");
13103
13300
  }
13104
13301
  function _M0FP36mizchi7tornado5ralph18extract__task__num(id) {
13105
13302
  const chars = _M0MPC16string6String9to__array(id);
@@ -13333,6 +13530,7 @@ function _M0FP36mizchi7tornado5ralph16parse__milestone(json) {
13333
13530
  }
13334
13531
  const tasks = [];
13335
13532
  const current_wave = _M0FP36mizchi7tornado5ralph8get__num(json, "current_wave", 0);
13533
+ const summary = _M0FP36mizchi7tornado5ralph8get__str(json, "summary", "");
13336
13534
  let map;
13337
13535
  _L: {
13338
13536
  _L$2: {
@@ -13376,7 +13574,7 @@ function _M0FP36mizchi7tornado5ralph16parse__milestone(json) {
13376
13574
  }
13377
13575
  }
13378
13576
  }
13379
- return new _M0TP36mizchi7tornado5types9Milestone(id, goal, status, tasks, current_wave);
13577
+ return new _M0TP36mizchi7tornado5types9Milestone(id, goal, status, tasks, current_wave, summary);
13380
13578
  }
13381
13579
  function _M0MP36mizchi7tornado5ralph16MilestoneManager16load__from__json(s) {
13382
13580
  let json;
@@ -13410,13 +13608,28 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager16load__from__json(s) {
13410
13608
  return new _M0DTPC16result6ResultGRP36mizchi7tornado5ralph16MilestoneManagerRPB7FailureE3Err(new _M0DTPC15error5Error48moonbitlang_2fcore_2fbuiltin_2eFailure_2eFailure("Milestones must be a JSON object"));
13411
13609
  }
13412
13610
  }
13611
+ let brief;
13612
+ const _bind = _M0MPB3Map3getGsRPB4JsonE(map, "brief");
13613
+ if (_bind === undefined) {
13614
+ brief = "";
13615
+ } else {
13616
+ const _Some = _bind;
13617
+ const _x = _Some;
13618
+ if (_x.$tag === 4) {
13619
+ const _String = _x;
13620
+ const _s = _String._0;
13621
+ brief = _s;
13622
+ } else {
13623
+ brief = "";
13624
+ }
13625
+ }
13413
13626
  let arr;
13414
13627
  _L$3: {
13415
13628
  _L$4: {
13416
- const _bind = _M0MPB3Map3getGsRPB4JsonE(map, "milestones");
13417
- if (_bind === undefined) {
13629
+ const _bind$2 = _M0MPB3Map3getGsRPB4JsonE(map, "milestones");
13630
+ if (_bind$2 === undefined) {
13418
13631
  } else {
13419
- const _Some = _bind;
13632
+ const _Some = _bind$2;
13420
13633
  const _x = _Some;
13421
13634
  if (_x.$tag === 5) {
13422
13635
  const _Array = _x;
@@ -13427,20 +13640,20 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager16load__from__json(s) {
13427
13640
  }
13428
13641
  break _L$3;
13429
13642
  }
13430
- const _bind = arr.length;
13643
+ const _bind$2 = arr.length;
13431
13644
  let _tmp = 0;
13432
13645
  while (true) {
13433
13646
  const _ = _tmp;
13434
- if (_ < _bind) {
13647
+ if (_ < _bind$2) {
13435
13648
  const item = arr[_];
13436
13649
  const m = _M0FP36mizchi7tornado5ralph16parse__milestone(item);
13437
- const _bind$2 = m.tasks;
13438
- const _bind$3 = _bind$2.length;
13650
+ const _bind$3 = m.tasks;
13651
+ const _bind$4 = _bind$3.length;
13439
13652
  let _tmp$2 = 0;
13440
13653
  while (true) {
13441
13654
  const _$2 = _tmp$2;
13442
- if (_$2 < _bind$3) {
13443
- const t = _bind$2[_$2];
13655
+ if (_$2 < _bind$4) {
13656
+ const t = _bind$3[_$2];
13444
13657
  const num = _M0FP36mizchi7tornado5ralph18extract__task__num(t.id);
13445
13658
  if (num > max_id.val) {
13446
13659
  max_id.val = num;
@@ -13459,27 +13672,7 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager16load__from__json(s) {
13459
13672
  }
13460
13673
  }
13461
13674
  }
13462
- return new _M0DTPC16result6ResultGRP36mizchi7tornado5ralph16MilestoneManagerRPB7FailureE2Ok(new _M0TP36mizchi7tornado5ralph16MilestoneManager(milestones, max_id.val + 1 | 0));
13463
- }
13464
- function _M0FP36mizchi7tornado5ralph13join__strings(parts, sep) {
13465
- const buf = _M0MPB13StringBuilder11new_2einner(0);
13466
- const _bind = parts.length;
13467
- let _tmp = 0;
13468
- while (true) {
13469
- const i = _tmp;
13470
- if (i < _bind) {
13471
- const part = parts[i];
13472
- if (i > 0) {
13473
- _M0IPB13StringBuilderPB6Logger13write__string(buf, sep);
13474
- }
13475
- _M0IPB13StringBuilderPB6Logger13write__string(buf, part);
13476
- _tmp = i + 1 | 0;
13477
- continue;
13478
- } else {
13479
- break;
13480
- }
13481
- }
13482
- return _M0MPB13StringBuilder10to__string(buf);
13675
+ return new _M0DTPC16result6ResultGRP36mizchi7tornado5ralph16MilestoneManagerRPB7FailureE2Ok(new _M0TP36mizchi7tornado5ralph16MilestoneManager(milestones, max_id.val + 1 | 0, brief));
13483
13676
  }
13484
13677
  function _M0FP36mizchi7tornado5ralph12json__escape(s) {
13485
13678
  const buf = _M0MPB13StringBuilder11new_2einner(0);
@@ -13616,7 +13809,7 @@ function _M0FP36mizchi7tornado5ralph19milestone__to__json(m) {
13616
13809
  }
13617
13810
  }
13618
13811
  const tasks_json = `[${_M0FP36mizchi7tornado5ralph13join__strings(task_parts, ",")}]`;
13619
- return `{\"id\":${_M0FP36mizchi7tornado5ralph12json__escape(m.id)},\"goal\":${_M0FP36mizchi7tornado5ralph12json__escape(m.goal)},\"status\":\"${status_str}\",\"current_wave\":${_M0MPC13int3Int18to__string_2einner(m.current_wave, 10)},\"tasks\":${tasks_json}}`;
13812
+ return `{\"id\":${_M0FP36mizchi7tornado5ralph12json__escape(m.id)},\"goal\":${_M0FP36mizchi7tornado5ralph12json__escape(m.goal)},\"status\":\"${status_str}\",\"current_wave\":${_M0MPC13int3Int18to__string_2einner(m.current_wave, 10)},\"tasks\":${tasks_json},\"summary\":${_M0FP36mizchi7tornado5ralph12json__escape(m.summary)}}`;
13620
13813
  }
13621
13814
  function _M0MP36mizchi7tornado5ralph16MilestoneManager8to__json(self) {
13622
13815
  const parts = [];
@@ -13634,7 +13827,7 @@ function _M0MP36mizchi7tornado5ralph16MilestoneManager8to__json(self) {
13634
13827
  break;
13635
13828
  }
13636
13829
  }
13637
- return `{\"milestones\":[${_M0FP36mizchi7tornado5ralph13join__strings(parts, ",")}]}`;
13830
+ return `{\"brief\":${_M0FP36mizchi7tornado5ralph12json__escape(self.brief)},\"milestones\":[${_M0FP36mizchi7tornado5ralph13join__strings(parts, ",")}]}`;
13638
13831
  }
13639
13832
  function _M0IP36mizchi7tornado6review17ReviewPerspectivePB4Show6output(_x_73, _x_74) {
13640
13833
  switch (_x_73) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ymdvsymd/tornado",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "Multi-agent development orchestrator with TUI",
5
5
  "bin": {
6
6
  "tornado": "bin/tornado.js"
@@ -1,13 +1,18 @@
1
1
  import { Codex } from "@openai/codex-sdk";
2
2
  import { formatTurnCompletedLog, formatTurnFailedLog, normalizeItemComplete, normalizeItemStart, normalizeTurnCompleted, normalizeTurnFailed, } from "./codex-normalizer.mjs";
3
- export function createCodexAdapter(client = new Codex()) {
3
+ export function createCodexAdapter(deps = {}) {
4
4
  return {
5
5
  tag: "Codex",
6
6
  async start(opts) {
7
+ const codexClientOpts = opts.systemPrompt
8
+ ? { config: { developer_instructions: opts.systemPrompt } }
9
+ : undefined;
10
+ const client = new (deps.CodexClient || Codex)(codexClientOpts);
7
11
  const threadOpts = {
8
12
  model: opts.model || undefined,
9
13
  workingDirectory: opts.cwd || process.cwd(),
10
14
  approvalPolicy: "never",
15
+ sandboxMode: "workspace-write",
11
16
  };
12
17
  const logs = [];
13
18
  const thread = opts.threadId
@@ -18,6 +18,7 @@ type CodexThreadOptions = {
18
18
  model?: string;
19
19
  workingDirectory: string;
20
20
  approvalPolicy: "never";
21
+ sandboxMode: "workspace-write";
21
22
  };
22
23
 
23
24
  type CodexThread = {
@@ -30,6 +31,10 @@ type CodexClient = {
30
31
  resumeThread(threadId: string, opts: CodexThreadOptions): CodexThread;
31
32
  };
32
33
 
34
+ type CodexClientConstructor = new (opts?: {
35
+ config?: { developer_instructions: string };
36
+ }) => CodexClient;
37
+
33
38
  type CodexItem = {
34
39
  type?: string;
35
40
  _display?: string;
@@ -48,15 +53,24 @@ type CodexEvent = {
48
53
  };
49
54
 
50
55
  export function createCodexAdapter(
51
- client: CodexClient = new Codex() as unknown as CodexClient,
56
+ deps: {
57
+ CodexClient?: CodexClientConstructor;
58
+ } = {},
52
59
  ): AgentAdapter<CodexEvent> {
53
60
  return {
54
61
  tag: "Codex",
55
62
  async start(opts: RunnerOptions): Promise<AdapterStartResult<CodexEvent>> {
63
+ const codexClientOpts = opts.systemPrompt
64
+ ? { config: { developer_instructions: opts.systemPrompt } }
65
+ : undefined;
66
+ const client = new (deps.CodexClient || (Codex as unknown as CodexClientConstructor))(
67
+ codexClientOpts,
68
+ );
56
69
  const threadOpts: CodexThreadOptions = {
57
70
  model: opts.model || undefined,
58
71
  workingDirectory: opts.cwd || process.cwd(),
59
72
  approvalPolicy: "never",
73
+ sandboxMode: "workspace-write",
60
74
  };
61
75
 
62
76
  const logs: string[] = [];
@@ -0,0 +1,103 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+
4
+ import { createCodexAdapter } from './codex-adapter.mjs';
5
+
6
+ test('createCodexAdapter passes systemPrompt as developer_instructions', async () => {
7
+ const constructed = [];
8
+ const fakeThread = {
9
+ id: 'thread-1',
10
+ async runStreamed() {
11
+ return { events: emptyAsync() };
12
+ },
13
+ };
14
+
15
+ class FakeCodex {
16
+ constructor(opts) {
17
+ constructed.push(opts);
18
+ }
19
+
20
+ startThread(opts) {
21
+ assert.equal(opts.workingDirectory, process.cwd());
22
+ return fakeThread;
23
+ }
24
+
25
+ resumeThread() {
26
+ throw new Error('resumeThread should not be called');
27
+ }
28
+ }
29
+
30
+ const adapter = createCodexAdapter({ CodexClient: FakeCodex });
31
+ const result = await adapter.start({
32
+ prompt: 'Implement auth',
33
+ systemPrompt: 'Follow the brief',
34
+ });
35
+
36
+ assert.deepEqual(constructed, [
37
+ { config: { developer_instructions: 'Follow the brief' } },
38
+ ]);
39
+ assert.equal(result.sessionId, 'thread-1');
40
+ });
41
+
42
+ test('createCodexAdapter creates Codex with no config when systemPrompt is absent', async () => {
43
+ const constructed = [];
44
+ const fakeThread = {
45
+ id: 'thread-2',
46
+ async runStreamed() {
47
+ return { events: emptyAsync() };
48
+ },
49
+ };
50
+
51
+ class FakeCodex {
52
+ constructor(opts) {
53
+ constructed.push(opts);
54
+ }
55
+
56
+ startThread() {
57
+ return fakeThread;
58
+ }
59
+
60
+ resumeThread() {
61
+ throw new Error('resumeThread should not be called');
62
+ }
63
+ }
64
+
65
+ const adapter = createCodexAdapter({ CodexClient: FakeCodex });
66
+ const result = await adapter.start({
67
+ prompt: 'Implement auth',
68
+ });
69
+
70
+ assert.deepEqual(constructed, [undefined]);
71
+ assert.equal(result.sessionId, 'thread-2');
72
+ });
73
+
74
+ test('createCodexAdapter passes sandboxMode workspace-write to startThread', async () => {
75
+ let threadOpts;
76
+ const fakeThread = {
77
+ id: 'thread-3',
78
+ async runStreamed() {
79
+ return { events: emptyAsync() };
80
+ },
81
+ };
82
+
83
+ class FakeCodex {
84
+ constructor() {}
85
+
86
+ startThread(opts) {
87
+ threadOpts = opts;
88
+ return fakeThread;
89
+ }
90
+
91
+ resumeThread() {
92
+ throw new Error('resumeThread should not be called');
93
+ }
94
+ }
95
+
96
+ const adapter = createCodexAdapter({ CodexClient: FakeCodex });
97
+ await adapter.start({ prompt: 'Test task' });
98
+
99
+ assert.equal(threadOpts.sandboxMode, 'workspace-write');
100
+ assert.equal(threadOpts.skipGitRepoCheck, undefined);
101
+ });
102
+
103
+ async function* emptyAsync() {}
@@ -0,0 +1,13 @@
1
+ import test from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { readFileSync } from 'node:fs';
4
+
5
+ test('bin/tornado.js has valid shebang without backslash escaping', () => {
6
+ const buf = readFileSync('bin/tornado.js');
7
+ // 先頭2バイトが #! (0x23 0x21) であること
8
+ assert.equal(buf[0], 0x23, 'first byte should be # (0x23)');
9
+ assert.equal(buf[1], 0x21, 'second byte should be ! (0x21), not \\! (0x5c 0x21)');
10
+ // 完全な shebang 行の検証
11
+ const firstLine = buf.toString('utf8').split('\n')[0];
12
+ assert.equal(firstLine, '#!/usr/bin/env node');
13
+ });