@hassangameryt/freeflow 0.6.0 → 0.7.1
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +3 -2
- package/.codex-plugin/plugin.json +5 -6
- package/.cursor-plugin/plugin.json +25 -0
- package/README.md +66 -56
- package/capabilities/cognitive-routing/SKILL.md +288 -130
- package/com.github.copilot/hooks/hooks.json +11 -0
- package/command-surface.json +0 -24
- package/gemini-extension.json +5 -0
- package/hooks/adapters/claude-session-start.mjs +16 -0
- package/hooks/adapters/codex-session-start.mjs +16 -0
- package/hooks/adapters/copilot-session-start.mjs +13 -0
- package/hooks/adapters/cursor-session-start.mjs +13 -0
- package/hooks/adapters/gemini-session-start.mjs +15 -0
- package/hooks/claude/hooks.json +18 -0
- package/hooks/codex/hooks.json +18 -0
- package/hooks/cursor/hooks.json +9 -0
- package/hooks/freeflow-runtime-context.mjs +3 -650
- package/hooks/hooks.json +4 -30
- package/hooks/shared/runtime-context.mjs +210 -0
- package/hooks/tests/check-host-adapters.test.mjs +82 -0
- package/hooks/tests/check-runtime-context-hook.sh +140 -320
- package/package.json +20 -4
- package/pi-extension/dist/cognitive-routing/commands.js +3 -3
- package/pi-extension/dist/cognitive-routing/config.js +16 -20
- package/pi-extension/dist/cognitive-routing/controller.js +478 -48
- package/pi-extension/dist/cognitive-routing/history.js +12 -0
- package/pi-extension/dist/cognitive-routing/host.js +74 -12
- package/pi-extension/dist/cognitive-routing/pi-routing-session.js +414 -0
- package/pi-extension/dist/cognitive-routing/pi-session-control.js +320 -0
- package/pi-extension/dist/cognitive-routing/tool.js +1 -0
- package/pi-extension/dist/cognitive-routing/types.js +1 -1
- package/pi-extension/dist/index.js +236 -219
- package/pi-extension/dist/runtime/runtime-context.js +126 -286
- package/pi-extension/dist/settings/settings-ui.js +52 -336
- package/pi-extension/src/cognitive-routing/commands.ts +15 -5
- package/pi-extension/src/cognitive-routing/config.ts +16 -20
- package/pi-extension/src/cognitive-routing/controller.ts +561 -51
- package/pi-extension/src/cognitive-routing/history.ts +12 -0
- package/pi-extension/src/cognitive-routing/host.ts +110 -16
- package/pi-extension/src/cognitive-routing/pi-routing-session.ts +538 -0
- package/pi-extension/src/cognitive-routing/pi-session-control.ts +444 -0
- package/pi-extension/src/cognitive-routing/tool.ts +1 -0
- package/pi-extension/src/cognitive-routing/types.ts +1 -1
- package/pi-extension/src/index.ts +249 -239
- package/pi-extension/src/runtime/runtime-context.ts +129 -305
- package/pi-extension/src/settings/settings-ui.ts +53 -371
- package/pi-extension/tests/cognitive-routing/commands.test.js +1 -1
- package/pi-extension/tests/cognitive-routing/controller.test.js +69 -40
- package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +128 -57
- package/pi-extension/tests/cognitive-routing/pi-normal-lifecycle.test.js +434 -0
- package/pi-extension/tests/cognitive-routing/pi-session-control.test.js +174 -0
- package/pi-extension/tests/cognitive-routing/pi-session-history.test.js +91 -0
- package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +47 -4
- package/pi-extension/tests/integration/mode-free-core.test.js +218 -0
- package/pi-extension/tests/integration/pi-extension.test.js +430 -2478
- package/pi-extension/tests/integration/prompt-architecture.test.js +124 -79
- package/pi-extension/tests/integration/unaffected-regressions.test.js +411 -0
- package/plugin.json +33 -0
- package/runtime/prompts/cognitive-routing.md +5 -4
- package/runtime/prompts/conversation-history.md +1 -1
- package/runtime/prompts/core.md +77 -6
- package/runtime/prompts/interaction-contract.md +6 -2
- package/skills/action-selection/SKILL.md +93 -44
- package/skills/action-selection/references/trajectory-stalls.md +71 -0
- package/skills/bypass/SKILL.md +109 -39
- package/skills/commit-work/SKILL.md +94 -55
- package/skills/commit-work/references/git-state-edges.md +94 -0
- package/skills/commit-work/references/simple-push.md +92 -0
- package/skills/commit-work/references/staging-decisions.md +79 -46
- package/skills/decision-gate/SKILL.md +80 -22
- package/skills/design-for-depth/SKILL.md +208 -43
- package/skills/design-for-depth/references/design-pressure-signals.md +108 -240
- package/skills/design-for-depth/references/interface-design-loop.md +77 -97
- package/skills/design-for-depth/references/module-and-dependency-design.md +147 -0
- package/skills/design-for-depth/references/software-design-philosophy.md +127 -173
- package/skills/design-for-depth/references/state-and-failure-boundaries.md +136 -0
- package/skills/diagnose-failure/SKILL.md +198 -52
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +19 -5
- package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +13 -5
- package/skills/discuss/SKILL.md +118 -76
- package/skills/discuss/references/discussion-continuity.md +84 -32
- package/skills/evaluate-skill/SKILL.md +166 -52
- package/skills/evaluate-skill/references/evaluation-definition-schema.md +2 -2
- package/skills/evaluate-skill/references/evaluation-design.md +56 -30
- package/skills/evaluate-skill/references/execution-and-evidence.md +1 -1
- package/skills/evaluate-skill/references/review-and-revision.md +62 -21
- package/skills/execute-work/SKILL.md +98 -59
- package/skills/execute-work/references/code-practices.md +4 -4
- package/skills/execute-work/references/execute-work-edges.md +42 -22
- package/skills/review-artifact/SKILL.md +132 -71
- package/skills/review-artifact/references/adjudicate-artifact-review.md +101 -0
- package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +52 -41
- package/skills/review-work/SKILL.md +115 -72
- package/skills/review-work/references/adjudicate-work-review.md +97 -0
- package/skills/review-work/references/independent-work-reviewer-contract.md +40 -35
- package/skills/review-work/references/security-risk-lens.md +17 -15
- package/skills/setup-freeflow/SKILL.md +14 -17
- package/skills/setup-freeflow/references/activation-contract.md +24 -30
- package/skills/setup-freeflow/references/host-setup.md +6 -7
- package/skills/simplify-code/SKILL.md +97 -39
- package/skills/simplify-code/references/simplification-patterns.md +1 -1
- package/skills/tdd/SKILL.md +108 -41
- package/skills/tdd/references/test-design.md +1 -1
- package/skills/track-work/SKILL.md +133 -300
- package/skills/track-work/references/working-record-format.md +515 -0
- package/skills/track-work/scripts/lib/document.mjs +713 -0
- package/skills/track-work/scripts/lib/format.mjs +166 -0
- package/skills/track-work/scripts/lib/store.mjs +233 -0
- package/skills/track-work/scripts/lib/transitions.mjs +790 -0
- package/skills/track-work/scripts/lib/views.mjs +27 -430
- package/skills/track-work/scripts/working-record.mjs +292 -98
- package/skills/verify-work/SKILL.md +46 -20
- package/skills/verify-work/references/browser-runtime-evidence.md +1 -1
- package/skills/verify-work/references/integration-evidence.md +1 -7
- package/skills/verify-work/references/performance-evidence.md +1 -1
- package/skills/workflow/SKILL.md +110 -80
- package/skills/workflow/references/domain-skill-composition.md +24 -18
- package/skills/write-skill/SKILL.md +218 -62
- package/skills/write-skill/references/activation-boundaries.md +63 -21
- package/skills/write-skill/references/agent-first-instructions.md +61 -27
- package/skills/write-skill/references/progressive-disclosure.md +91 -41
- package/skills/write-skill/references/skill-dependency-graphs.md +190 -0
- package/runtime/prompts/skills.md +0 -65
- package/skills/mode-contract/SKILL.md +0 -104
- package/skills/track-work/scripts/lib/codec.mjs +0 -570
- package/skills/track-work/scripts/lib/commands.mjs +0 -568
- package/skills/track-work/scripts/lib/contract.mjs +0 -303
- package/skills/track-work/scripts/lib/model.mjs +0 -506
- package/skills/track-work/scripts/lib/operations.mjs +0 -965
- package/skills/track-work/scripts/lib/record-store.mjs +0 -264
- package/skills/track-work/scripts/lib/result.mjs +0 -37
- package/skills/track-work/scripts/lib/rewrites.mjs +0 -740
- package/skills/track-work/scripts/lib/schema.mjs +0 -277
- package/skills/track-work/scripts/lib/source-inventory.mjs +0 -162
- package/skills/track-work/scripts/lib/workspace.mjs +0 -134
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hassangameryt/freeflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Feedback-based control system for coding agents.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"build:pi-extension": "tsc -p pi-extension/tsconfig.json && npm run format:pi-extension-dist",
|
|
23
23
|
"build": "npm run build:pi-extension",
|
|
24
24
|
"typecheck": "tsc -p pi-extension/tsconfig.json --noEmit",
|
|
25
|
-
"check": "npm run typecheck && npm run check:source && npm run check:changelog && npm run check:release-workflow && npm run check:docs && npm run format:check && npm run check:release-version && npm run check:commands && npm run check:activation && npm run check:runtime && npm run check:package",
|
|
25
|
+
"check": "npm run typecheck && npm run check:source && npm run check:host-manifests && npm run check:changelog && npm run check:release-workflow && npm run check:docs && npm run format:check && npm run check:release-version && npm run check:commands && npm run check:activation && npm run check:runtime && npm run check:package",
|
|
26
26
|
"check:source": "node scripts/validation/check-source-files.mjs",
|
|
27
|
+
"check:host-manifests": "node scripts/validation/check-host-manifests.mjs",
|
|
27
28
|
"check:changelog": "node scripts/validation/check-changelog.mjs --structure",
|
|
28
29
|
"check:release-workflow": "node scripts/validation/check-release-workflow.mjs",
|
|
29
30
|
"check:docs": "node scripts/validation/check-docs.mjs",
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"check:package": "node scripts/validation/check-package.mjs",
|
|
35
36
|
"check:release-metadata": "scripts/validation/validate-release-metadata.sh --mode prepublish",
|
|
36
37
|
"test:pi-extension": "npm run build && node --test $(find pi-extension/tests -name '*.test.js' | sort)",
|
|
38
|
+
"test:host-manifests": "node --test scripts/validation/check-host-manifests.test.mjs hooks/tests/check-host-adapters.test.mjs",
|
|
37
39
|
"test:skill-author": "node --test $(find .skill-eval/write-skill/tests -name '*.test.mjs' | sort)",
|
|
38
40
|
"test:skill-eval": "node --test $(find .skill-eval/evaluate-skill/tests -name '*.test.mjs' | sort)",
|
|
39
41
|
"test:track-work": "node --test .skill-eval/track-work/tests/*.test.mjs",
|
|
@@ -59,7 +61,15 @@
|
|
|
59
61
|
"review",
|
|
60
62
|
"codex",
|
|
61
63
|
"claude",
|
|
62
|
-
"pi"
|
|
64
|
+
"pi",
|
|
65
|
+
"agent-plugins",
|
|
66
|
+
"gemini",
|
|
67
|
+
"cursor",
|
|
68
|
+
"copilot",
|
|
69
|
+
"vscode",
|
|
70
|
+
"kiro",
|
|
71
|
+
"opencode",
|
|
72
|
+
"hermes"
|
|
63
73
|
],
|
|
64
74
|
"pi": {
|
|
65
75
|
"skills": [],
|
|
@@ -69,9 +79,13 @@
|
|
|
69
79
|
"image": "https://raw.githubusercontent.com/hassan-mohiddin/freeflow/main/assets/freeflow-plugin-icon-transparent.png"
|
|
70
80
|
},
|
|
71
81
|
"files": [
|
|
82
|
+
"plugin.json",
|
|
83
|
+
"gemini-extension.json",
|
|
72
84
|
".agents/**",
|
|
73
85
|
".claude-plugin/**",
|
|
74
86
|
".codex-plugin/**",
|
|
87
|
+
".cursor-plugin/**",
|
|
88
|
+
"com.github.copilot/**",
|
|
75
89
|
"LICENSE",
|
|
76
90
|
"README.md",
|
|
77
91
|
"assets/**",
|
|
@@ -83,10 +97,12 @@
|
|
|
83
97
|
"skills/**"
|
|
84
98
|
],
|
|
85
99
|
"peerDependencies": {
|
|
100
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
86
101
|
"@earendil-works/pi-tui": "*"
|
|
87
102
|
},
|
|
88
103
|
"devDependencies": {
|
|
89
|
-
"@earendil-works/pi-
|
|
104
|
+
"@earendil-works/pi-coding-agent": "0.84.4",
|
|
105
|
+
"@earendil-works/pi-tui": "0.84.4",
|
|
90
106
|
"@types/node": "^22.15.30",
|
|
91
107
|
"prettier": "3.9.5",
|
|
92
108
|
"typescript": "^5.8.3"
|
|
@@ -9,7 +9,7 @@ export function cognitiveRoutingProfileCompletions(prefix) {
|
|
|
9
9
|
label: value,
|
|
10
10
|
description:
|
|
11
11
|
value === "auto"
|
|
12
|
-
? "Release the manual hold
|
|
12
|
+
? "Release the manual hold and use the Reasoning profile"
|
|
13
13
|
: value === "history"
|
|
14
14
|
? "Show Cognitive Routing transition history"
|
|
15
15
|
: value === "history active"
|
|
@@ -50,7 +50,7 @@ export async function handleCognitiveRoutingProfileCommand(args, ctx, controller
|
|
|
50
50
|
const result = ctx.history
|
|
51
51
|
? await ctx.history(historyView)
|
|
52
52
|
: controller?.history
|
|
53
|
-
? controller.history(historyView)
|
|
53
|
+
? await controller.history(historyView)
|
|
54
54
|
: undefined;
|
|
55
55
|
if (result) {
|
|
56
56
|
ctx.ui?.notify?.(formatHistory(result), "info");
|
|
@@ -80,7 +80,7 @@ export async function handleCognitiveRoutingProfileCommand(args, ctx, controller
|
|
|
80
80
|
if (value === "auto") {
|
|
81
81
|
const result = await controller.setAutomaticControl();
|
|
82
82
|
if (result.status === "automatic") {
|
|
83
|
-
ctx.ui?.notify?.("Cognitive Routing manual hold released; automatic control is active.", "info");
|
|
83
|
+
ctx.ui?.notify?.("Cognitive Routing manual hold released; automatic Reasoning control is active.", "info");
|
|
84
84
|
} else {
|
|
85
85
|
ctx.ui?.notify?.(`Cognitive Routing could not release the manual hold: ${result.reason}.`, "warning");
|
|
86
86
|
}
|
|
@@ -197,29 +197,25 @@ export function resolveCognitiveRoutingConfig(repositoryConfig, personalConfig)
|
|
|
197
197
|
let enabledSource = "default";
|
|
198
198
|
if (repository.enabled !== undefined) enabledSource = "repository";
|
|
199
199
|
if (personal.enabled !== undefined) enabledSource = "personal";
|
|
200
|
+
const sessionStartControl =
|
|
201
|
+
personal.sessionStart.control ?? repository.sessionStart.control ?? DEFAULT_COGNITIVE_ROUTING_SESSION_START.control;
|
|
202
|
+
const configuredSessionStartProfile =
|
|
203
|
+
personal.sessionStart.profile ?? repository.sessionStart.profile ?? DEFAULT_COGNITIVE_ROUTING_SESSION_START.profile;
|
|
200
204
|
const sessionStart = {
|
|
201
|
-
control:
|
|
202
|
-
|
|
203
|
-
repository.sessionStart.control ??
|
|
204
|
-
DEFAULT_COGNITIVE_ROUTING_SESSION_START.control,
|
|
205
|
-
profile:
|
|
206
|
-
personal.sessionStart.profile ??
|
|
207
|
-
repository.sessionStart.profile ??
|
|
208
|
-
DEFAULT_COGNITIVE_ROUTING_SESSION_START.profile,
|
|
205
|
+
control: sessionStartControl,
|
|
206
|
+
profile: sessionStartControl === "automatic" ? "reasoning" : configuredSessionStartProfile,
|
|
209
207
|
};
|
|
208
|
+
let sessionStartControlSource = "default";
|
|
209
|
+
if (repository.sessionStart.control !== undefined) sessionStartControlSource = "repository";
|
|
210
|
+
if (personal.sessionStart.control !== undefined) sessionStartControlSource = "personal";
|
|
211
|
+
let sessionStartProfileSource = "default";
|
|
212
|
+
if (sessionStartControl === "manual") {
|
|
213
|
+
if (repository.sessionStart.profile !== undefined) sessionStartProfileSource = "repository";
|
|
214
|
+
if (personal.sessionStart.profile !== undefined) sessionStartProfileSource = "personal";
|
|
215
|
+
}
|
|
210
216
|
const sessionStartSources = {
|
|
211
|
-
control:
|
|
212
|
-
|
|
213
|
-
? "personal"
|
|
214
|
-
: repository.sessionStart.control !== undefined
|
|
215
|
-
? "repository"
|
|
216
|
-
: "default",
|
|
217
|
-
profile:
|
|
218
|
-
personal.sessionStart.profile !== undefined
|
|
219
|
-
? "personal"
|
|
220
|
-
: repository.sessionStart.profile !== undefined
|
|
221
|
-
? "repository"
|
|
222
|
-
: "default",
|
|
217
|
+
control: sessionStartControlSource,
|
|
218
|
+
profile: sessionStartProfileSource,
|
|
223
219
|
};
|
|
224
220
|
const error = repository.error ?? personal.error;
|
|
225
221
|
return {
|