@rpamis/comet 0.4.0-beta.7 → 0.4.0-beta.9

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.
Files changed (161) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +3 -3
  3. package/assets/manifest.json +1 -1
  4. package/assets/skills/comet/reference/comet-yaml-fields.md +2 -2
  5. package/assets/skills/comet/scripts/comet-entry-runtime.mjs +118 -6
  6. package/assets/skills/comet/scripts/comet-hook-router.mjs +244 -26
  7. package/assets/skills/comet/scripts/comet-runtime.mjs +221 -104
  8. package/assets/skills/comet-archive/SKILL.md +29 -20
  9. package/assets/skills/comet-native/SKILL.md +23 -15
  10. package/assets/skills/comet-native/reference/artifacts.md +19 -4
  11. package/assets/skills/comet-native/reference/commands.md +8 -2
  12. package/assets/skills/comet-native/reference/recovery.md +1 -1
  13. package/assets/skills/comet-native/scripts/comet-native-runtime.mjs +1136 -471
  14. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +2 -2
  15. package/assets/skills-zh/comet-archive/SKILL.md +29 -20
  16. package/assets/skills-zh/comet-native/SKILL.md +23 -15
  17. package/assets/skills-zh/comet-native/reference/artifacts.md +20 -5
  18. package/assets/skills-zh/comet-native/reference/commands.md +8 -2
  19. package/assets/skills-zh/comet-native/reference/recovery.md +1 -1
  20. package/dist/app/commands/init.d.ts.map +1 -1
  21. package/dist/app/commands/init.js +3 -6
  22. package/dist/app/commands/init.js.map +1 -1
  23. package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
  24. package/dist/domains/bundle/bundle-platform.js +1 -1
  25. package/dist/domains/bundle/bundle-platform.js.map +1 -1
  26. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
  27. package/dist/domains/comet-classic/classic-guard.js +3 -2
  28. package/dist/domains/comet-classic/classic-guard.js.map +1 -1
  29. package/dist/domains/comet-entry/current-selection.d.ts.map +1 -1
  30. package/dist/domains/comet-entry/current-selection.js +6 -8
  31. package/dist/domains/comet-entry/current-selection.js.map +1 -1
  32. package/dist/domains/comet-entry/project-status.d.ts.map +1 -1
  33. package/dist/domains/comet-entry/project-status.js +5 -1
  34. package/dist/domains/comet-entry/project-status.js.map +1 -1
  35. package/dist/domains/comet-native/native-archive-transaction.d.ts.map +1 -1
  36. package/dist/domains/comet-native/native-archive-transaction.js +5 -6
  37. package/dist/domains/comet-native/native-archive-transaction.js.map +1 -1
  38. package/dist/domains/comet-native/native-atomic-file.d.ts.map +1 -1
  39. package/dist/domains/comet-native/native-atomic-file.js +11 -7
  40. package/dist/domains/comet-native/native-atomic-file.js.map +1 -1
  41. package/dist/domains/comet-native/native-bounded-file.d.ts.map +1 -1
  42. package/dist/domains/comet-native/native-bounded-file.js +11 -7
  43. package/dist/domains/comet-native/native-bounded-file.js.map +1 -1
  44. package/dist/domains/comet-native/native-build-evidence.js +2 -2
  45. package/dist/domains/comet-native/native-build-evidence.js.map +1 -1
  46. package/dist/domains/comet-native/native-change.d.ts +4 -2
  47. package/dist/domains/comet-native/native-change.d.ts.map +1 -1
  48. package/dist/domains/comet-native/native-change.js +18 -4
  49. package/dist/domains/comet-native/native-change.js.map +1 -1
  50. package/dist/domains/comet-native/native-check-receipt-storage.d.ts.map +1 -1
  51. package/dist/domains/comet-native/native-check-receipt-storage.js +11 -7
  52. package/dist/domains/comet-native/native-check-receipt-storage.js.map +1 -1
  53. package/dist/domains/comet-native/native-check-receipt.d.ts.map +1 -1
  54. package/dist/domains/comet-native/native-check-receipt.js +16 -11
  55. package/dist/domains/comet-native/native-check-receipt.js.map +1 -1
  56. package/dist/domains/comet-native/native-cli.d.ts.map +1 -1
  57. package/dist/domains/comet-native/native-cli.js +120 -16
  58. package/dist/domains/comet-native/native-cli.js.map +1 -1
  59. package/dist/domains/comet-native/native-config.d.ts +5 -1
  60. package/dist/domains/comet-native/native-config.d.ts.map +1 -1
  61. package/dist/domains/comet-native/native-config.js +78 -0
  62. package/dist/domains/comet-native/native-config.js.map +1 -1
  63. package/dist/domains/comet-native/native-continuation.d.ts +2 -1
  64. package/dist/domains/comet-native/native-continuation.d.ts.map +1 -1
  65. package/dist/domains/comet-native/native-continuation.js +13 -5
  66. package/dist/domains/comet-native/native-continuation.js.map +1 -1
  67. package/dist/domains/comet-native/native-diagnostics.d.ts +7 -3
  68. package/dist/domains/comet-native/native-diagnostics.d.ts.map +1 -1
  69. package/dist/domains/comet-native/native-diagnostics.js +19 -9
  70. package/dist/domains/comet-native/native-diagnostics.js.map +1 -1
  71. package/dist/domains/comet-native/native-evidence-retention.d.ts.map +1 -1
  72. package/dist/domains/comet-native/native-evidence-retention.js +5 -3
  73. package/dist/domains/comet-native/native-evidence-retention.js.map +1 -1
  74. package/dist/domains/comet-native/native-evidence-storage.d.ts.map +1 -1
  75. package/dist/domains/comet-native/native-evidence-storage.js +11 -7
  76. package/dist/domains/comet-native/native-evidence-storage.js.map +1 -1
  77. package/dist/domains/comet-native/native-file-identity.d.ts +3 -0
  78. package/dist/domains/comet-native/native-file-identity.d.ts.map +1 -0
  79. package/dist/domains/comet-native/native-file-identity.js +2 -0
  80. package/dist/domains/comet-native/native-file-identity.js.map +1 -0
  81. package/dist/domains/comet-native/native-findings.d.ts.map +1 -1
  82. package/dist/domains/comet-native/native-findings.js +19 -1
  83. package/dist/domains/comet-native/native-findings.js.map +1 -1
  84. package/dist/domains/comet-native/native-guards.d.ts +2 -1
  85. package/dist/domains/comet-native/native-guards.d.ts.map +1 -1
  86. package/dist/domains/comet-native/native-guards.js +14 -0
  87. package/dist/domains/comet-native/native-guards.js.map +1 -1
  88. package/dist/domains/comet-native/native-lock.d.ts.map +1 -1
  89. package/dist/domains/comet-native/native-lock.js +30 -35
  90. package/dist/domains/comet-native/native-lock.js.map +1 -1
  91. package/dist/domains/comet-native/native-protected-file.d.ts.map +1 -1
  92. package/dist/domains/comet-native/native-protected-file.js +9 -8
  93. package/dist/domains/comet-native/native-protected-file.js.map +1 -1
  94. package/dist/domains/comet-native/native-root-move.d.ts.map +1 -1
  95. package/dist/domains/comet-native/native-root-move.js +2 -0
  96. package/dist/domains/comet-native/native-root-move.js.map +1 -1
  97. package/dist/domains/comet-native/native-run-store.d.ts.map +1 -1
  98. package/dist/domains/comet-native/native-run-store.js +9 -8
  99. package/dist/domains/comet-native/native-run-store.js.map +1 -1
  100. package/dist/domains/comet-native/native-snapshot.d.ts +5 -1
  101. package/dist/domains/comet-native/native-snapshot.d.ts.map +1 -1
  102. package/dist/domains/comet-native/native-snapshot.js +225 -5
  103. package/dist/domains/comet-native/native-snapshot.js.map +1 -1
  104. package/dist/domains/comet-native/native-transitions.d.ts +2 -1
  105. package/dist/domains/comet-native/native-transitions.d.ts.map +1 -1
  106. package/dist/domains/comet-native/native-transitions.js +34 -11
  107. package/dist/domains/comet-native/native-transitions.js.map +1 -1
  108. package/dist/domains/comet-native/native-types.d.ts +16 -0
  109. package/dist/domains/comet-native/native-types.d.ts.map +1 -1
  110. package/dist/domains/comet-native/native-verification-runtime.d.ts.map +1 -1
  111. package/dist/domains/comet-native/native-verification-runtime.js +5 -3
  112. package/dist/domains/comet-native/native-verification-runtime.js.map +1 -1
  113. package/dist/domains/comet-native/native-verification-scope.d.ts +2 -1
  114. package/dist/domains/comet-native/native-verification-scope.d.ts.map +1 -1
  115. package/dist/domains/comet-native/native-verification-scope.js +6 -1
  116. package/dist/domains/comet-native/native-verification-scope.js.map +1 -1
  117. package/dist/domains/dashboard/native-collector.d.ts.map +1 -1
  118. package/dist/domains/dashboard/native-collector.js +4 -1
  119. package/dist/domains/dashboard/native-collector.js.map +1 -1
  120. package/dist/domains/dashboard/web/index.html +14 -14
  121. package/dist/domains/skill/platform-install.d.ts.map +1 -1
  122. package/dist/domains/skill/platform-install.js +9 -0
  123. package/dist/domains/skill/platform-install.js.map +1 -1
  124. package/dist/domains/skill/project-instructions.d.ts.map +1 -1
  125. package/dist/domains/skill/project-instructions.js +4 -2
  126. package/dist/domains/skill/project-instructions.js.map +1 -1
  127. package/dist/domains/workflow-contract/project-config.d.ts +1 -1
  128. package/dist/domains/workflow-contract/project-config.d.ts.map +1 -1
  129. package/dist/domains/workflow-contract/project-config.js +24 -2
  130. package/dist/domains/workflow-contract/project-config.js.map +1 -1
  131. package/dist/platform/fs/file-identity.d.ts +9 -0
  132. package/dist/platform/fs/file-identity.d.ts.map +1 -0
  133. package/dist/platform/fs/file-identity.js +21 -0
  134. package/dist/platform/fs/file-identity.js.map +1 -0
  135. package/dist/platform/fs/file-system.d.ts.map +1 -1
  136. package/dist/platform/fs/file-system.js +13 -9
  137. package/dist/platform/fs/file-system.js.map +1 -1
  138. package/dist/platform/fs/race-safe-read.d.ts +47 -0
  139. package/dist/platform/fs/race-safe-read.d.ts.map +1 -0
  140. package/dist/platform/fs/race-safe-read.js +132 -0
  141. package/dist/platform/fs/race-safe-read.js.map +1 -0
  142. package/eval/README.md +1 -1
  143. package/eval/local/tasks/comet-native-clarification-depth/environment/Dockerfile +27 -0
  144. package/eval/local/tasks/comet-native-clarification-depth/environment/test_wordcount.py +25 -0
  145. package/eval/local/tasks/comet-native-clarification-depth/environment/wordcount.py +36 -0
  146. package/eval/local/tasks/comet-native-clarification-depth/instruction.md +17 -0
  147. package/eval/local/tasks/comet-native-clarification-depth/task.toml +47 -0
  148. package/eval/local/tasks/comet-native-clarification-depth/validation/test_native_clarification_depth.py +618 -0
  149. package/eval/local/tasks/comet-native-clarification-modes/validation/test_native_clarification_modes.py +1 -1
  150. package/eval/local/tasks/index.yaml +6 -0
  151. package/eval/local/tests/conftest.py +146 -2
  152. package/eval/local/tests/scaffold/test_conftest_helpers.py +188 -1
  153. package/eval/local/tests/scaffold/test_tasks.py +440 -8
  154. package/eval/local/tests/scaffold/test_utils.py +114 -1
  155. package/eval/local/tests/tasks/test_tasks.py +2 -0
  156. package/eval/pyproject.toml +4 -4
  157. package/eval/scaffold/python/aligned_comparison.py +1 -0
  158. package/eval/scaffold/python/tasks.py +2 -0
  159. package/eval/scaffold/shell/docker.sh +1 -1
  160. package/eval/scaffold/shell/run-claude-loop.sh +25 -2
  161. package/package.json +8 -1
@@ -29,10 +29,10 @@ dev = [
29
29
  "matplotlib>=3.8",
30
30
  ]
31
31
 
32
- [tool.pytest.ini_options]
33
- testpaths = ["local/tests"]
34
- pythonpath = ["."]
35
- markers = [
32
+ [tool.pytest.ini_options]
33
+ testpaths = ["local/tests"]
34
+ pythonpath = ["."]
35
+ markers = [
36
36
  "langsmith: marks test as using LangSmith tracing",
37
37
  ]
38
38
 
@@ -269,6 +269,7 @@ def build_execution_identity(
269
269
  "simulator_prompt": getattr(interaction, "simulator_prompt", None),
270
270
  "decision_patterns": list(getattr(interaction, "decision_patterns", ()) or ()),
271
271
  "decision_reply": getattr(interaction, "decision_reply", None),
272
+ "decision_replies": list(getattr(interaction, "decision_replies", []) or []),
272
273
  "continue_prompt": getattr(interaction, "continue_prompt", None),
273
274
  "fresh_resume_marker": getattr(interaction, "fresh_resume_marker", None),
274
275
  }
@@ -100,6 +100,7 @@ class InteractionConfig:
100
100
  simulator_prompt: str | None = None
101
101
  decision_patterns: list[str] = field(default_factory=list)
102
102
  decision_reply: str | None = None
103
+ decision_replies: list[str] = field(default_factory=list)
103
104
  continue_prompt: str = "Please continue with the next phase of the workflow."
104
105
  fresh_resume_marker: str | None = None
105
106
 
@@ -287,6 +288,7 @@ def load_task(name: str, tasks_dir: Path | None = None) -> Task:
287
288
  simulator_prompt=interaction.get("simulator_prompt"),
288
289
  decision_patterns=interaction.get("decision_patterns", []),
289
290
  decision_reply=interaction.get("decision_reply"),
291
+ decision_replies=interaction.get("decision_replies", []),
290
292
  continue_prompt=interaction.get(
291
293
  "continue_prompt",
292
294
  "Please continue with the next phase of the workflow.",
@@ -456,7 +456,7 @@ docker_run_claude_loop() {
456
456
  expected_image_id="$2"
457
457
  shift 2
458
458
  ;;
459
- --max-turns|--model|--simulator-prompt-file|--decision-reply|--continue-prompt|--decision-pattern|--fresh-resume-marker)
459
+ --max-turns|--model|--simulator-prompt-file|--decision-reply|--decision-reply-step|--continue-prompt|--decision-pattern|--fresh-resume-marker)
460
460
  loop_args+=("$1" "$2")
461
461
  shift 2
462
462
  ;;
@@ -11,6 +11,7 @@
11
11
  # --model MODEL Model for both subject and simulator
12
12
  # --simulator-prompt-file File containing the simulator system prompt
13
13
  # --decision-reply TEXT Deterministic reply for each detected decision point
14
+ # --decision-reply-step TEXT Queue one deterministic reply for the next decision point
14
15
  # --continue-prompt TEXT Nudge used when the workflow should continue
15
16
  # --decision-pattern TEXT Extra case-insensitive substring to treat as a decision point
16
17
  # --fresh-resume-marker TEXT Start the following turn in a new subject session
@@ -37,6 +38,7 @@ MAX_TURNS=12
37
38
  MODEL="${ANTHROPIC_MODEL:-}"
38
39
  SIMULATOR_PROMPT=""
39
40
  DECISION_REPLY=""
41
+ DECISION_REPLY_STEPS=()
40
42
  CONTINUE_PROMPT="Please continue with the next phase of the comet workflow."
41
43
  FRESH_RESUME_MARKER=""
42
44
  DECISION_PATTERNS=()
@@ -50,10 +52,22 @@ while [[ $# -gt 0 ]]; do
50
52
  shift 2
51
53
  ;;
52
54
  --simulator-prompt-file)
53
- SIMULATOR_PROMPT="$(cat "$2")"
55
+ SIMULATOR_PROMPT_FILE="$2"
56
+ if ! SIMULATOR_PROMPT="$(cat -- "$SIMULATOR_PROMPT_FILE")"; then
57
+ echo "[loop] unable to read private simulator prompt" >&2
58
+ exit 2
59
+ fi
60
+ if ! rm -f -- "$SIMULATOR_PROMPT_FILE"; then
61
+ echo "[loop] unable to remove private simulator prompt" >&2
62
+ exit 2
63
+ fi
54
64
  shift 2
55
65
  ;;
56
66
  --decision-reply) DECISION_REPLY="$2"; shift 2 ;;
67
+ --decision-reply-step)
68
+ DECISION_REPLY_STEPS+=("$2")
69
+ shift 2
70
+ ;;
57
71
  --continue-prompt) CONTINUE_PROMPT="$2"; shift 2 ;;
58
72
  --fresh-resume-marker) FRESH_RESUME_MARKER="$2"; shift 2 ;;
59
73
  --decision-pattern)
@@ -107,6 +121,7 @@ SESSION_ID=""
107
121
  FRESH_PROMPT=""
108
122
  COMBINED_OUT=""
109
123
  TURN=0
124
+ DECISION_REPLY_STEP_INDEX=0
110
125
 
111
126
  while [[ $TURN -lt $MAX_TURNS ]]; do
112
127
  TURN=$((TURN + 1))
@@ -187,7 +202,15 @@ except: print('')
187
202
 
188
203
  if bash "$SCRIPT_DIR/decision-point.sh" "$RESULT_TEXT" "${DECISION_PATTERNS[@]}"; then
189
204
  echo "[loop] decision point detected; simulating user reply" >&2
190
- if [[ -n "$DECISION_REPLY" ]]; then
205
+ if [[ ${#DECISION_REPLY_STEPS[@]} -gt 0 ]]; then
206
+ if [[ $DECISION_REPLY_STEP_INDEX -ge ${#DECISION_REPLY_STEPS[@]} ]]; then
207
+ echo "[loop] deterministic decision reply queue exhausted" >&2
208
+ exit 3
209
+ fi
210
+ USER_REPLY="${DECISION_REPLY_STEPS[$DECISION_REPLY_STEP_INDEX]}"
211
+ DECISION_REPLY_STEP_INDEX=$((DECISION_REPLY_STEP_INDEX + 1))
212
+ echo "[loop] deterministic decision reply applied" >&2
213
+ elif [[ -n "$DECISION_REPLY" ]]; then
191
214
  USER_REPLY="$DECISION_REPLY"
192
215
  echo "[loop] deterministic decision reply applied" >&2
193
216
  else
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpamis/comet",
3
- "version": "0.4.0-beta.7",
3
+ "version": "0.4.0-beta.9",
4
4
  "description": "Agent Skill Harness For Turning Ideas Into Evaluated Workflows",
5
5
  "keywords": [
6
6
  "comet",
@@ -91,8 +91,15 @@
91
91
  },
92
92
  "packageManager": "pnpm@10.18.3",
93
93
  "overrides": {
94
+ "brace-expansion": "5.0.7",
94
95
  "esbuild": "0.28.1"
95
96
  },
97
+ "pnpm": {
98
+ "overrides": {
99
+ "brace-expansion": "5.0.7",
100
+ "esbuild": "0.28.1"
101
+ }
102
+ },
96
103
  "engines": {
97
104
  "node": ">=22"
98
105
  },