jfl 0.9.2 → 0.9.4
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/dist/commands/context-hub.d.ts.map +1 -1
- package/dist/commands/context-hub.js +23 -1
- package/dist/commands/context-hub.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/peter.d.ts.map +1 -1
- package/dist/commands/peter.js +11 -15
- package/dist/commands/peter.js.map +1 -1
- package/dist/commands/pivot.d.ts.map +1 -1
- package/dist/commands/pivot.js +22 -25
- package/dist/commands/pivot.js.map +1 -1
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +26 -0
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +39 -0
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +60 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +3 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/agent-session.d.ts.map +1 -1
- package/dist/lib/agent-session.js +6 -3
- package/dist/lib/agent-session.js.map +1 -1
- package/dist/lib/gtm-generator.js +7 -0
- package/dist/lib/gtm-generator.js.map +1 -1
- package/dist/lib/memory-db.d.ts +8 -0
- package/dist/lib/memory-db.d.ts.map +1 -1
- package/dist/lib/memory-db.js +24 -0
- package/dist/lib/memory-db.js.map +1 -1
- package/dist/lib/memory-indexer.d.ts +8 -0
- package/dist/lib/memory-indexer.d.ts.map +1 -1
- package/dist/lib/memory-indexer.js +30 -1
- package/dist/lib/memory-indexer.js.map +1 -1
- package/dist/lib/memory-search.d.ts.map +1 -1
- package/dist/lib/memory-search.js +2 -7
- package/dist/lib/memory-search.js.map +1 -1
- package/dist/lib/service-detector.js +2 -2
- package/dist/lib/service-detector.js.map +1 -1
- package/dist/lib/telemetry/physical-world-collector.js +1 -1
- package/dist/lib/telemetry/physical-world-collector.js.map +1 -1
- package/dist/utils/git.d.ts +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +9 -6
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/provenance.d.ts +65 -0
- package/dist/utils/provenance.d.ts.map +1 -0
- package/dist/utils/provenance.js +213 -0
- package/dist/utils/provenance.js.map +1 -0
- package/package.json +1 -1
- package/packages/pi/extensions/context.ts +11 -0
- package/packages/pi/extensions/header.ts +171 -0
- package/packages/pi/extensions/hud-tool.ts +1 -1
- package/packages/pi/extensions/index.ts +43 -3
- package/packages/pi/extensions/memory-tool.ts +3 -3
- package/packages/pi/extensions/onboarding-v2.ts +70 -185
- package/packages/pi/extensions/onboarding-v3.ts +32 -21
- package/packages/pi/extensions/service-skills.ts +6 -1
- package/packages/pi/extensions/session.ts +7 -1
- package/packages/pi/extensions/startup-briefing.ts +313 -0
- package/packages/pi/extensions/subway-mesh.ts +893 -0
- package/packages/pi/extensions/types.ts +1 -0
- package/packages/pi/package.json +1 -0
- package/scripts/pp-branch-pr.sh +24 -6
- package/scripts/pp-branch-pr.sh.bak +115 -0
- package/template/.pi/settings.json +2 -0
- package/template/CLAUDE.md +82 -1738
- package/template/CLAUDE.md.bak +0 -1187
|
@@ -74,6 +74,7 @@ export interface PiContext {
|
|
|
74
74
|
setWidget(id: string, content: string[] | WidgetFactory | undefined, opts?: { placement?: "aboveEditor" | "belowEditor" }): void
|
|
75
75
|
setStatus(key: string, text: string | undefined): void
|
|
76
76
|
setFooter(factory: ((tui: any, theme: PiTheme, footerData: any) => any) | undefined): void
|
|
77
|
+
setHeader?(factory: ((tui: any, theme: PiTheme) => { render: (width: number) => string[]; invalidate: () => void }) | undefined): void
|
|
77
78
|
setEditorText(text: string): void
|
|
78
79
|
theme: PiTheme
|
|
79
80
|
hasUI: boolean
|
package/packages/pi/package.json
CHANGED
package/scripts/pp-branch-pr.sh
CHANGED
|
@@ -43,15 +43,33 @@ if git diff --quiet HEAD && [ -z "$(git ls-files --others --exclude-standard)" ]
|
|
|
43
43
|
exit 0
|
|
44
44
|
fi
|
|
45
45
|
|
|
46
|
-
# 4. Commit
|
|
46
|
+
# 4. Commit with provenance signing
|
|
47
47
|
git add -A
|
|
48
|
-
COMMIT_MSG="fix(pp): ${TASK}
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
AGENT_ID="peter-parker"
|
|
50
|
+
AGENT_SESSION="${BRANCH_NAME}"
|
|
51
|
+
AGENT_TIMESTAMP="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
|
52
|
+
|
|
53
|
+
# Compute provenance hash from staged diff + agent identity
|
|
54
|
+
PROVENANCE_KEY_PATH=".jfl/provenance-key"
|
|
55
|
+
if [ ! -f "${PROVENANCE_KEY_PATH}" ]; then
|
|
56
|
+
mkdir -p .jfl
|
|
57
|
+
openssl rand -hex 32 > "${PROVENANCE_KEY_PATH}"
|
|
58
|
+
chmod 600 "${PROVENANCE_KEY_PATH}"
|
|
59
|
+
fi
|
|
60
|
+
PROVENANCE_KEY=$(cat "${PROVENANCE_KEY_PATH}")
|
|
61
|
+
STAGED_DIFF=$(git diff --cached)
|
|
62
|
+
PROVENANCE_PAYLOAD="${AGENT_ID}
|
|
63
|
+
${AGENT_TIMESTAMP}
|
|
64
|
+
${STAGED_DIFF}"
|
|
65
|
+
PROVENANCE_HASH="sha256:$(printf '%s' "${PROVENANCE_PAYLOAD}" | openssl dgst -sha256 -hmac "${PROVENANCE_KEY}" | awk '{print $NF}')"
|
|
66
|
+
|
|
67
|
+
COMMIT_MSG="fix(pp): ${TASK}
|
|
53
68
|
|
|
54
|
-
|
|
69
|
+
Agent-Id: ${AGENT_ID}
|
|
70
|
+
Agent-Session: ${AGENT_SESSION}
|
|
71
|
+
Provenance-Hash: ${PROVENANCE_HASH}
|
|
72
|
+
Agent-Timestamp: ${AGENT_TIMESTAMP}"
|
|
55
73
|
|
|
56
74
|
git commit -m "${COMMIT_MSG}"
|
|
57
75
|
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# scripts/pp-branch-pr.sh
|
|
3
|
+
#
|
|
4
|
+
# Wraps Peter Parker agent execution in git branch + PR workflow.
|
|
5
|
+
# Creates a branch, runs the agent, commits changes, opens a PR,
|
|
6
|
+
# and posts a pr:created event to the hub.
|
|
7
|
+
#
|
|
8
|
+
# Called by flow engine spawn action or directly.
|
|
9
|
+
#
|
|
10
|
+
# Usage: pp-branch-pr.sh <task-description> [hub-url] [hub-token]
|
|
11
|
+
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
TASK="${1:?Usage: pp-branch-pr.sh <task-description> [hub-url] [hub-token]}"
|
|
15
|
+
HUB_URL="${2:-}"
|
|
16
|
+
HUB_TOKEN="${3:-}"
|
|
17
|
+
BRANCH_NAME="pp/fix-$(date +%s)"
|
|
18
|
+
BASE_BRANCH="main"
|
|
19
|
+
|
|
20
|
+
if [ -z "$HUB_URL" ] && [ -f ".jfl/context-hub.port" ]; then
|
|
21
|
+
PORT=$(cat .jfl/context-hub.port)
|
|
22
|
+
HUB_URL="http://localhost:${PORT}"
|
|
23
|
+
fi
|
|
24
|
+
if [ -z "$HUB_TOKEN" ] && [ -f ".jfl/context-hub.token" ]; then
|
|
25
|
+
HUB_TOKEN=$(cat .jfl/context-hub.token)
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
echo "PP: Creating branch ${BRANCH_NAME}"
|
|
29
|
+
|
|
30
|
+
# 1. Create branch from clean main
|
|
31
|
+
git fetch origin "${BASE_BRANCH}" 2>/dev/null || true
|
|
32
|
+
git checkout -b "${BRANCH_NAME}" "origin/${BASE_BRANCH}" 2>/dev/null || git checkout -b "${BRANCH_NAME}" "${BASE_BRANCH}"
|
|
33
|
+
|
|
34
|
+
# 2. Run Peter Parker
|
|
35
|
+
echo "PP: Running agent on task: ${TASK}"
|
|
36
|
+
jfl peter run --task "${TASK}"
|
|
37
|
+
|
|
38
|
+
# 3. Check if anything changed
|
|
39
|
+
if git diff --quiet HEAD && [ -z "$(git ls-files --others --exclude-standard)" ]; then
|
|
40
|
+
echo "PP: No changes made, cleaning up"
|
|
41
|
+
git checkout "${BASE_BRANCH}" 2>/dev/null || true
|
|
42
|
+
git branch -D "${BRANCH_NAME}" 2>/dev/null || true
|
|
43
|
+
exit 0
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# 4. Commit
|
|
47
|
+
git add -A
|
|
48
|
+
COMMIT_MSG="fix(pp): ${TASK}
|
|
49
|
+
|
|
50
|
+
Agent: peter-parker
|
|
51
|
+
Branch: ${BRANCH_NAME}
|
|
52
|
+
Auto-generated by JFL self-driving loop
|
|
53
|
+
|
|
54
|
+
Co-authored-by: Peter Parker <pp@jfl.dev>"
|
|
55
|
+
|
|
56
|
+
git commit -m "${COMMIT_MSG}"
|
|
57
|
+
|
|
58
|
+
# 5. Push
|
|
59
|
+
git push -u origin "${BRANCH_NAME}"
|
|
60
|
+
|
|
61
|
+
# 6. Create PR
|
|
62
|
+
PR_TITLE="PP: $(echo "${TASK}" | head -c 60)"
|
|
63
|
+
PR_BODY="## Auto-generated by Peter Parker
|
|
64
|
+
|
|
65
|
+
**Task:** ${TASK}
|
|
66
|
+
**Branch:** \`${BRANCH_NAME}\`
|
|
67
|
+
|
|
68
|
+
### Eval Suite
|
|
69
|
+
This PR will be evaluated by the CI eval suite.
|
|
70
|
+
Auto-merge will trigger if eval score improves over baseline.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
*Generated by JFL self-driving loop*"
|
|
74
|
+
|
|
75
|
+
PR_URL=$(gh pr create \
|
|
76
|
+
--title "${PR_TITLE}" \
|
|
77
|
+
--body "${PR_BODY}" \
|
|
78
|
+
--base "${BASE_BRANCH}" \
|
|
79
|
+
--head "${BRANCH_NAME}" \
|
|
80
|
+
--label "pp-generated" 2>&1) || {
|
|
81
|
+
echo "PP: Label may not exist, retrying without label"
|
|
82
|
+
PR_URL=$(gh pr create \
|
|
83
|
+
--title "${PR_TITLE}" \
|
|
84
|
+
--body "${PR_BODY}" \
|
|
85
|
+
--base "${BASE_BRANCH}" \
|
|
86
|
+
--head "${BRANCH_NAME}" 2>&1)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
echo "PP: PR created at ${PR_URL}"
|
|
90
|
+
|
|
91
|
+
# 7. Post event to hub
|
|
92
|
+
if [ -n "${HUB_URL}" ]; then
|
|
93
|
+
TASK_JSON=$(printf '%s' "${TASK}" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read().strip()))')
|
|
94
|
+
|
|
95
|
+
CURL_ARGS=(-s -X POST "${HUB_URL}/api/events" -H "Content-Type: application/json")
|
|
96
|
+
if [ -n "${HUB_TOKEN}" ]; then
|
|
97
|
+
CURL_ARGS+=(-H "Authorization: Bearer ${HUB_TOKEN}")
|
|
98
|
+
fi
|
|
99
|
+
CURL_ARGS+=(-d "{
|
|
100
|
+
\"type\": \"pr:created\",
|
|
101
|
+
\"source\": \"peter-parker\",
|
|
102
|
+
\"data\": {
|
|
103
|
+
\"task\": ${TASK_JSON},
|
|
104
|
+
\"pr_url\": \"${PR_URL}\",
|
|
105
|
+
\"branch\": \"${BRANCH_NAME}\"
|
|
106
|
+
}
|
|
107
|
+
}")
|
|
108
|
+
|
|
109
|
+
curl "${CURL_ARGS[@]}" 2>/dev/null || echo "PP: Warning - could not post event to hub"
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
# 8. Return to base branch
|
|
113
|
+
git checkout "${BASE_BRANCH}" 2>/dev/null || true
|
|
114
|
+
|
|
115
|
+
echo "PP: Done"
|