Keep upcoming-mission drafts at conversational fidelity. - #9405
Keep upcoming-mission drafts at conversational fidelity.#9405lunelson wants to merge 13 commits into
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Lu Nelson <ln@hash.ai>
Signed-off-by: Lu Nelson <ln@hash.ai>
… and evidence One ChatAgent, one runbook skill (defineSkill + on-disk Markdown), headless createFlueClient drive with artifact recovery from history(). Hermetic through line green (IR recovered, parseSDCPNFile ok); two real-model runs recorded with construct rejection documented (weight-0 exclusive arcs, malformed types/ parameters). MISSION.md stays live; acceptance is a human call. SIDE_QUEST.md opens the validated-construction follow-up (Petrinaut-owned contracts, minimal tool subset, reuse of run 2's IR). HANDOFF.md carries the full session state.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
3 Skipped Deployments
|
| export const PN_JSON_FENCE = "pn-json"; | ||
|
|
||
| const fencedBlockPattern = (language: string): RegExp => | ||
| new RegExp("```" + language + "\\s*\\n([\\s\\S]*?)```", "g"); |
There was a problem hiding this comment.
Semgrep identified an issue in your code:
RegExp() called with a language function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled input, consider performing input validation or use a regex checking/sanitization library such as https://www.npmjs.com/package/recheck to verify that the regex does not appear vulnerable to ReDoS.
Dataflow graph
flowchart LR
classDef invis fill:white, stroke: none
classDef default fill:#e7f5ff, color:#1c7fd6, stroke: none
subgraph File0["<b>apps/brunch-agent/src/runbook-artifacts.ts</b>"]
direction LR
%% Source
subgraph Source
direction LR
v0["<a href=https://github.com/hashintel/hash/blob/f27922ecdf06e025aa896cf0b3ef092b8c6e4635/apps/brunch-agent/src/runbook-artifacts.ts#L9 target=_blank style='text-decoration:none; color:#1c7fd6'>[Line: 9] language</a>"]
end
%% Intermediate
subgraph Traces0[Traces]
direction TB
v2["<a href=https://github.com/hashintel/hash/blob/f27922ecdf06e025aa896cf0b3ef092b8c6e4635/apps/brunch-agent/src/runbook-artifacts.ts#L9 target=_blank style='text-decoration:none; color:#1c7fd6'>[Line: 9] language</a>"]
end
%% Sink
subgraph Sink
direction LR
v1["<a href=https://github.com/hashintel/hash/blob/f27922ecdf06e025aa896cf0b3ef092b8c6e4635/apps/brunch-agent/src/runbook-artifacts.ts#L10 target=_blank style='text-decoration:none; color:#1c7fd6'>[Line: 10] new RegExp("```" + language + "\\s*\\n([\\s\\S]*?)```", "g")</a>"]
end
end
%% Class Assignment
Source:::invis
Sink:::invis
Traces0:::invis
File0:::invis
%% Connections
Source --> Traces0
Traces0 --> Sink
To resolve this comment:
🔧 No guidance has been designated for this issue. Fix according to your organization's approved methods.
💬 Ignore this finding
Reply with Semgrep commands to ignore this finding.
/fp <comment>for false positive/ar <comment>for acceptable risk/other <comment>for all other reasons
Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by detect-non-literal-regexp.
You can view more details about this finding in the Semgrep AppSec Platform.
| export const PN_JSON_FENCE = "pn-json"; | ||
|
|
||
| const fencedBlockPattern = (language: string): RegExp => | ||
| new RegExp("```" + language + "\\s*\\n([\\s\\S]*?)```", "g"); |
Package the modelling skill through Flue, prove bounded headless construction, and record the real-model schema bridge failure for Mission 5. Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Lu Nelson <ln@hash.ai>
Signed-off-by: Lu Nelson <ln@hash.ai>

🌟 What is the purpose of this PR?
🔗 Related links
🚫 Blocked by
🔍 What does this change?
Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
turbo.json's have been updated to reflect this🐾 Next steps
🛡 What tests cover this?
❓ How to test this?
📹 Demo