persona-harness 0.8.2 → 0.8.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/CHANGELOG.md +14 -3
- package/dist/cli/workflow-safe-rendering.d.ts +8 -8
- package/dist/runtime/hooks.js +3 -4
- package/dist/runtime/hooks.js.map +1 -1
- package/dist/runtime/intent-workflow.d.ts +2 -2
- package/dist/runtime/intent-workflow.js +9 -2
- package/dist/runtime/intent-workflow.js.map +1 -1
- package/dist/runtime/opencode-skill-adapter.d.ts +5 -2
- package/dist/runtime/opencode-skill-adapter.js +10 -2
- package/dist/runtime/opencode-skill-adapter.js.map +1 -1
- package/dist/runtime/persona-shared-skill-activation.d.ts +26 -0
- package/dist/runtime/persona-shared-skill-activation.js +74 -0
- package/dist/runtime/persona-shared-skill-activation.js.map +1 -0
- package/dist/runtime/product-deep-interview.js +12 -2
- package/dist/runtime/product-deep-interview.js.map +1 -1
- package/dist/runtime/top-level-intent-router.d.ts +8 -2
- package/dist/runtime/top-level-intent-router.js +53 -16
- package/dist/runtime/top-level-intent-router.js.map +1 -1
- package/dist/runtime/workflow-skill-loader.d.ts +11 -1
- package/dist/runtime/workflow-skill-loader.js +33 -2
- package/dist/runtime/workflow-skill-loader.js.map +1 -1
- package/docs/current/persona-harness-detailed-usage.md +2 -2
- package/docs/current/persona-shared-skills-core.md +24 -4
- package/docs/current/release/README.md +2 -2
- package/docs/current/release/consumer-authority-v082-acceptance.json +27 -27
- package/docs/current/release/consumer-authority-v083-acceptance.json +1026 -0
- package/docs/current/release/v0.8.2-release-notes.md +9 -3
- package/docs/current/release/v0.8.3-release-notes.md +41 -0
- package/docs/releases/package-index.md +3 -1
- package/package.json +5 -1
- package/packages/shared-skills/README.md +4 -1
- package/packages/shared-skills/package.json +1 -1
- package/scripts/clean-package-exercise-phase.mjs +2 -0
- package/scripts/consumer-authority-beta33-acceptance-schema.mjs +50 -3
- package/scripts/consumer-authority-v082-acceptance-schema.mjs +6 -6
- package/scripts/consumer-authority-v083-acceptance-schema.d.mts +65 -0
- package/scripts/consumer-authority-v083-acceptance-schema.mjs +117 -0
- package/scripts/opencode-interview-observation-contract.d.mts +29 -0
- package/scripts/opencode-interview-observation-contract.mjs +318 -0
- package/scripts/preflight-consumer-authority-external-artifact-transport.mjs +2 -2
- package/scripts/preflight-consumer-authority-external-attestation.mjs +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,13 +8,24 @@ preparation alone does not establish stable support or channel state.
|
|
|
8
8
|
|
|
9
9
|
## Unreleased
|
|
10
10
|
|
|
11
|
-
- Add the portable Persona-owned shared-skill catalog and one-question product
|
|
12
|
-
interview route. Hosts route advisory references only; legacy OMO workflow
|
|
13
|
-
payloads are excluded from the package surface.
|
|
14
11
|
- Keep process-only evaluation cleanup in the normal CI lane while reserving
|
|
15
12
|
the single-worker resource-sensitive lane for fixtures that own mutable
|
|
16
13
|
package, Gradle, staged-consumer, workflow-loop, or producer runtime state.
|
|
17
14
|
|
|
15
|
+
## [0.8.3] - 2026-08-10
|
|
16
|
+
|
|
17
|
+
- Prepare portable automatic skill activation: ambiguous new-product requests
|
|
18
|
+
begin a one-question deep interview, ambiguous brownfield requests begin
|
|
19
|
+
code-first discovery, explicit commands take precedence, and direct work
|
|
20
|
+
bypasses discovery. Frontend remains an explicit optional overlay.
|
|
21
|
+
- Keep hosts advisory-only, prevent pre-approval workflow or project mutation,
|
|
22
|
+
and retain the package's installed-only/no-source-fallback boundary.
|
|
23
|
+
- Preserve an existing source-bound draft or revision plan during strict
|
|
24
|
+
bootstrap, then require the current V4 readiness route to use explicit
|
|
25
|
+
`ph plan --accept` before its Gradle, report, and evidence prerequisites.
|
|
26
|
+
- `0.8.3` is an unpublished source candidate. The immutable published `0.8.2`
|
|
27
|
+
package cannot be repacked or reused for this release.
|
|
28
|
+
|
|
18
29
|
## [0.8.0-beta.19] - 2026-08-02
|
|
19
30
|
|
|
20
31
|
- Replaces the unsupported postpublish registry `gitHead` predicate with a
|
|
@@ -48,7 +48,7 @@ export declare function safeWorkflowClosureNextPayload(payload: ClosureNextPaylo
|
|
|
48
48
|
} | null;
|
|
49
49
|
evidence: "missing" | "present";
|
|
50
50
|
finish: "blocked" | "passed";
|
|
51
|
-
implementationReport: "
|
|
51
|
+
implementationReport: "malformed" | "missing" | "conflicting" | "filled" | "template" | "unknown";
|
|
52
52
|
lifecycle: {
|
|
53
53
|
blockers: {
|
|
54
54
|
source?: string | undefined;
|
|
@@ -67,9 +67,9 @@ export declare function safeWorkflowClosureNextPayload(payload: ClosureNextPaylo
|
|
|
67
67
|
readonly workflow: "absent" | "current" | "malformed" | "stale" | "unassessed" | "unsafe";
|
|
68
68
|
};
|
|
69
69
|
paths: {
|
|
70
|
-
readonly evidence: "unsafe" | "
|
|
70
|
+
readonly evidence: "unsafe" | "unavailable" | "safe";
|
|
71
71
|
readonly harness: "invalid" | "safe";
|
|
72
|
-
readonly rules: "unsafe" | "
|
|
72
|
+
readonly rules: "unsafe" | "unavailable" | "safe";
|
|
73
73
|
};
|
|
74
74
|
readiness: "blocked" | "ready-for-closure";
|
|
75
75
|
reports: {
|
|
@@ -84,7 +84,7 @@ export declare function safeWorkflowClosureNextPayload(payload: ClosureNextPaylo
|
|
|
84
84
|
pendingTickets: string[];
|
|
85
85
|
plan: string;
|
|
86
86
|
reportCoverage: "missing" | "not-checked" | "sufficient";
|
|
87
|
-
reviewReport: "
|
|
87
|
+
reviewReport: "malformed" | "missing" | "conflicting" | "filled" | "template" | "unknown";
|
|
88
88
|
tdd: {
|
|
89
89
|
source?: string | undefined;
|
|
90
90
|
kind: "passed" | "unavailable" | "disabled" | "no-ticket" | "red-missing" | "red-without-green";
|
|
@@ -128,7 +128,7 @@ export declare function safeWorkflowClosureStatusPayload(payload: ClosureStatusP
|
|
|
128
128
|
archive: "pending" | "complete" | "history-only-repair";
|
|
129
129
|
evidence: "missing" | "present";
|
|
130
130
|
finish: "blocked" | "passed";
|
|
131
|
-
implementationReport: "
|
|
131
|
+
implementationReport: "malformed" | "missing" | "conflicting" | "filled" | "template" | "unknown";
|
|
132
132
|
lifecycle: {
|
|
133
133
|
blockers: {
|
|
134
134
|
source?: string | undefined;
|
|
@@ -147,9 +147,9 @@ export declare function safeWorkflowClosureStatusPayload(payload: ClosureStatusP
|
|
|
147
147
|
readonly workflow: "absent" | "current" | "malformed" | "stale" | "unassessed" | "unsafe";
|
|
148
148
|
};
|
|
149
149
|
paths: {
|
|
150
|
-
readonly evidence: "unsafe" | "
|
|
150
|
+
readonly evidence: "unsafe" | "unavailable" | "safe";
|
|
151
151
|
readonly harness: "invalid" | "safe";
|
|
152
|
-
readonly rules: "unsafe" | "
|
|
152
|
+
readonly rules: "unsafe" | "unavailable" | "safe";
|
|
153
153
|
};
|
|
154
154
|
readiness: "blocked" | "ready-for-closure";
|
|
155
155
|
reports: {
|
|
@@ -164,7 +164,7 @@ export declare function safeWorkflowClosureStatusPayload(payload: ClosureStatusP
|
|
|
164
164
|
pendingTickets: string[];
|
|
165
165
|
plan: string;
|
|
166
166
|
reportCoverage: "missing" | "not-checked" | "sufficient";
|
|
167
|
-
reviewReport: "
|
|
167
|
+
reviewReport: "malformed" | "missing" | "conflicting" | "filled" | "template" | "unknown";
|
|
168
168
|
verification: import("./workflow-closure-verification.js").ClosureVerification;
|
|
169
169
|
};
|
|
170
170
|
steps: {
|
package/dist/runtime/hooks.js
CHANGED
|
@@ -100,9 +100,8 @@ export function createPhase0Hooks(options = {}) {
|
|
|
100
100
|
}
|
|
101
101
|
const evidenceDir = evidencePath.path;
|
|
102
102
|
const compliance = new RailComplianceTracker({ evidenceDir });
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
});
|
|
103
|
+
const productInterviewMode = existsSync(join(projectDir, "src")) ? "brownfield-change-discovery" : "new-product";
|
|
104
|
+
const productInterview = new ProductDeepInterviewTracker({ mode: productInterviewMode });
|
|
106
105
|
const continuation = new ContinuationTracker({ evidenceDir });
|
|
107
106
|
const entrySteering = new EntrySteeringTracker(projectDir, config);
|
|
108
107
|
const runtimeInjectionEnabled = isRuntimeInjectionEnabled(config);
|
|
@@ -335,7 +334,7 @@ export function createPhase0Hooks(options = {}) {
|
|
|
335
334
|
}
|
|
336
335
|
if (runtimeInjectionEnabled && allowsRuntimeInjection(sessionId, "intent-workflow")) {
|
|
337
336
|
const productInterviewInjected = config.enabledDomains.includes("product")
|
|
338
|
-
&& maybeInjectProductDeepInterview(output, sessionId, productInterview);
|
|
337
|
+
&& maybeInjectProductDeepInterview(output, sessionId, productInterview, productInterviewMode);
|
|
339
338
|
if (productInterviewInjected) {
|
|
340
339
|
store.take(sessionId);
|
|
341
340
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/runtime/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/runtime/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,sCAAsC,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AACpH,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAA;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAoBjE,SAAS,2BAA2B,CAAC,MAAuB,EAAE,KAAa;IACzE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAC/F,OAAM;IACR,CAAC;IAED,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,cAAc,KAAK,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAuB,EAAE,KAAa;IACjF,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;QACzG,OAAM;IACR,CAAC;IAED,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,cAAc,KAAK,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAuB,EAAE,KAAa;IACjF,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACjG,OAAM;IACR,CAAC;IAED,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,cAAc,KAAK,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,2BAA2B,CAAC,cAAiC,EAAE,UAAkB;IACxF,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;AACvG,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAqB;IAC1D,IAAI,CAAC;QACH,SAAS,EAAE,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,QAAQ,QAAQ,EAAE,CAAA;QAChC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAA8B;IAC9E,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,QAAQ,QAAQ,EAAE,CAAA;QAChC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QACD,kBAAkB,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAA6B,EAAE;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,qBAAqB,EAAE,CAAA;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAA;IACxD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACrB,qBAAqB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACrC,oBAAoB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpC,sCAAsC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACtD,oCAAoC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpD,4BAA4B,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC7C,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;IAClC,MAAM,YAAY,GAAG,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IAClF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACrB,qBAAqB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACrC,oBAAoB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpC,sCAAsC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACtD,oCAAoC,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpD,4BAA4B,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC7C,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAA;IACrC,MAAM,UAAU,GAAG,IAAI,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7D,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,aAAa,CAAA;IAChH,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAA;IACxF,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAClE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IACjE,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAC5F,MAAM,SAAS,GAAG,IAAI,4BAA4B,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QAChC,UAAU;KACX,CAAC,CAAA;IACF,MAAM,mBAAmB,GAAG,IAAI,sCAAsC,CAAC;QACrE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;QAChC,UAAU;KACX,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;IAC9E,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;QACjC,WAAW;QACX,UAAU;KACX,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC;QACjD,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;QAC5C,UAAU;QACV,uBAAuB;KACxB,CAAC,CAAA;IAEF,SAAS,sBAAsB,CAAC,SAA6B,EAAE,OAAgC;QAC7F,OAAO,eAAe,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACnE,CAAC;IAED,SAAS,iBAAiB,CAAC,SAA6B,EAAE,OAAgC;QACxF,OAAO,eAAe,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,SAAS,eAAe,CAAC,SAA6B,EAAE,OAAgC;QACtF,OAAO,eAAe,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED,SAAS,iBAAiB,CACxB,IAAkD,EAClD,IAAY,EACZ,SAAiB,EACjB,MAA0B,EAC1B,IAA6B;QAE7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YACtD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,oCAAoC,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,gBAAgB,GACpB,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC3C,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;QAC3F,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QAChF,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC/B,mBAAmB,CAAC,UAAU,EAAE;YAC9B,IAAI;YACJ,SAAS;YACT,MAAM;YACN,YAAY,EAAE,eAAe;YAC7B,SAAS;SACV,EAAE;YACD,WAAW;SACZ,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS,wBAAwB,CAAC,KAAqB,EAAE,MAAuB;QAC9E,IAAI,CAAC,uBAAuB,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChH,OAAM;QACR,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACpE,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;QAClG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QAED,mCAAmC,CAAC,MAAM,EAAE,4BAA4B,CAAC,UAAU,CAAC,CAAC,CAAA;QACrF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YACpC,mBAAmB,CAAC,UAAU,EAAE;gBAC9B,IAAI,EAAE,oBAAoB;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,YAAY,EAAE,eAAe;gBAC7B,SAAS,EAAE,QAAQ;aACpB,EAAE;gBACD,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,mBAAmB,CAAC,UAAU,EAAE;gBAC9B,IAAI,EAAE,oBAAoB;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,YAAY,EAAE,gBAAgB;gBAC9B,SAAS;aACV,EAAE;gBACD,WAAW;aACZ,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAiB,EAAiB,EAAE;YAChD,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAM;gBACR,CAAC;gBACD,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACzC,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC1E,MAAM,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;oBACjF,MAAM,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;gBACpF,CAAC;gBACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACxC,OAAM;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;wBAC/C,OAAM;oBACR,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;wBACrE,OAAM;oBACR,CAAC;oBACD,MAAM,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;oBACnE,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBACrC,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;oBAC5E,OAAM;gBACR,CAAC;gBACD,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAC5E,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,qBAAqB,EAAE,KAAK,EAAE,KAAsB,EAAE,MAAwB,EAAiB,EAAE;YAC/F,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE;gBACtC,iBAAiB,CACf,qBAAqB,EACrB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,MAAM,CAAC,IAA+B,CACvC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,oBAAoB,EAAE,KAAK,EAAE,KAAqB,EAAE,MAAuB,EAAiB,EAAE;YAC5F,WAAW,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBACrC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE;oBACjC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAA+B;iBAC5C,CAAC,CAAA;gBACF,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBACvC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAA+B,CAAC,CAAA;gBAC/F,wBAAwB,CAAC;oBACvB,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;oBAC5C,UAAU;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,kBAAkB;iBAC/B,CAAC,CAAA;gBAEF,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,eAAe,GAAG;wBACtB,IAAI,EAAE,KAAK,CAAC,IAA+B;wBAC3C,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAA;oBACD,IAAI,8BAA8B,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;wBACtG,MAAM,MAAM,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;wBACpE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,wEAAwE;gBACxE,6CAA6C;gBAC7C,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,0BAA0B,CAAC;wBACzB,WAAW;wBACX,UAAU;wBACV,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,UAAU,EAAE,kBAAkB;wBAC9B,MAAM;qBACP,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAG,iBAAiB,CACjC,oBAAoB,EACpB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAA+B,CACtC,CAAA;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAM;gBACR,CAAC;gBAED,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;gBACpD,MAAM,OAAO,GAAG,uBAAuB,CAAC;oBACtC,UAAU;oBACV,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAA;gBACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,mCAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACtD,CAAC;gBACD,mBAAmB,CAAC,UAAU,EAAE;oBAC9B,IAAI,EAAE,oBAAoB;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,YAAY,EAAE,aAAa;oBAC3B,SAAS;iBACV,EAAE;oBACD,WAAW;iBACZ,CAAC,CAAA;gBACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,0BAA0B,CAAC;wBACzB,WAAW;wBACX,UAAU;wBACV,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,UAAU,EAAE,SAAS,CAAC,UAAU;qBACjC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,sCAAsC,EAAE,KAAK,EAC3C,MAAe,EACf,MAA+B,EAChB,EAAE;YACjB,WAAW,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBACvD,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;gBACxG,MAAM,SAAS,GAAG,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAA;gBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAM;gBACR,CAAC;gBAED,IAAI,uBAAuB,IAAI,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,CAAC;oBACpF,MAAM,wBAAwB,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;2BACrE,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;oBAC/F,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACrB,OAAM;oBACR,CAAC;oBACD,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC/F,CAAC;gBAED,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAEtC,MAAM,SAAS,GACb,uBAAuB,IAAI,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACjH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAM;gBACR,CAAC;gBAED,IAAI,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBACnD,mBAAmB,CAAC,UAAU,EAAE;wBAC9B,IAAI,EAAE,sCAAsC;wBAC5C,SAAS,EAAE,SAAS;wBACpB,YAAY,EAAE,aAAa;wBAC3B,SAAS;qBACV,EAAE;wBACD,WAAW;qBACZ,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,oCAAoC,EAAE,KAAK,EACzC,KAA2B,EAC3B,MAA6B,EACd,EAAE;YACjB,WAAW,CAAC,oCAAoC,EAAE,GAAG,EAAE;gBACrD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;oBAClD,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;gBACjE,CAAC;gBACD,IAAI,uBAAuB,IAAI,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,CAAC;oBAC9F,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,4BAA4B,EAAE,KAAK,EACjC,KAAwB,EACxB,MAA0B,EACX,EAAE;YACjB,WAAW,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;oBAClE,OAAM;gBACR,CAAC;gBACD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;gBACjF,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;oBAClF,OAAM;gBACR,CAAC;gBAED,MAAM,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,cAAc,KAAK,EAAE,CAAA;YACnD,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { loadHarnessConfig } from "../config/harness-config.js";
|
|
2
|
-
import { ProductDeepInterviewTracker } from "./product-deep-interview.js";
|
|
2
|
+
import { ProductDeepInterviewTracker, type ProductDeepInterviewMode } from "./product-deep-interview.js";
|
|
3
3
|
import { RailComplianceTracker } from "./rail-compliance.js";
|
|
4
4
|
import type { TransformMessagesOutput } from "./types.js";
|
|
5
5
|
type IntentWorkflowOptions = {
|
|
6
6
|
readonly evidenceDir?: string;
|
|
7
7
|
};
|
|
8
|
-
export declare function maybeInjectProductDeepInterview(output: TransformMessagesOutput, sessionID: string, tracker: ProductDeepInterviewTracker): boolean;
|
|
8
|
+
export declare function maybeInjectProductDeepInterview(output: TransformMessagesOutput, sessionID: string, tracker: ProductDeepInterviewTracker, productMode: ProductDeepInterviewMode): boolean;
|
|
9
9
|
export declare function maybeInjectIntentWorkflow(output: TransformMessagesOutput, projectDir: string, sessionID: string, config: ReturnType<typeof loadHarnessConfig>, compliance: RailComplianceTracker, options?: IntentWorkflowOptions): boolean;
|
|
10
10
|
export {};
|
|
@@ -7,6 +7,7 @@ import { formatRefactorWorkflowBlock } from "./refactor-workflow-skill.js";
|
|
|
7
7
|
import { formatRequirementsWorkflowBlock, hasPersonaWorkflowOptIn, hasRequirementsDraft, } from "./requirements-workflow-skill.js";
|
|
8
8
|
import { formatReviewWorkflowBlock } from "./review-workflow-skill.js";
|
|
9
9
|
import { detectTopLevelIntent } from "./top-level-intent-router.js";
|
|
10
|
+
import { formatExplicitPersonaSkillActivationBlock, formatUnavailablePersonaSkillActivationBlock, } from "./workflow-skill-loader.js";
|
|
10
11
|
const IMPLEMENTATION_PROFILE_GUARD_LINES = [
|
|
11
12
|
"- Before implementation, if `.persona/project-profile.jsonc` exists, read it and do not create a stack that conflicts with its language/framework/build tool/profile constraints.",
|
|
12
13
|
"- If the profile exists but has not been read yet, do not implement; read the profile plus README/requirements/current task card first.",
|
|
@@ -17,12 +18,12 @@ function latestUserText(output) {
|
|
|
17
18
|
const textPart = latestUserMessage?.parts.find((part) => part.type === "text" && typeof part.text === "string");
|
|
18
19
|
return textPart?.type === "text" ? textPart.text : undefined;
|
|
19
20
|
}
|
|
20
|
-
export function maybeInjectProductDeepInterview(output, sessionID, tracker) {
|
|
21
|
+
export function maybeInjectProductDeepInterview(output, sessionID, tracker, productMode) {
|
|
21
22
|
const text = latestUserText(output);
|
|
22
23
|
if (text === undefined) {
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
|
-
if (!tracker.hasActiveSession(sessionID) && detectTopLevelIntent(text)?.primary !== "product-interview") {
|
|
26
|
+
if (!tracker.hasActiveSession(sessionID) && detectTopLevelIntent(text, { productMode })?.primary !== "product-interview") {
|
|
26
27
|
return false;
|
|
27
28
|
}
|
|
28
29
|
const result = tracker.route(sessionID, text);
|
|
@@ -111,6 +112,12 @@ export function maybeInjectIntentWorkflow(output, projectDir, sessionID, config,
|
|
|
111
112
|
return false;
|
|
112
113
|
}
|
|
113
114
|
const intent = detectTopLevelIntent(text);
|
|
115
|
+
if (intent?.primary === "unavailable") {
|
|
116
|
+
return injectIntentWorkflowRail(output, projectDir, sessionID, text, intent, formatUnavailablePersonaSkillActivationBlock(intent), "[Persona Harness Skill Activation]", compliance, options);
|
|
117
|
+
}
|
|
118
|
+
if (intent?.activation?.decision === "explicit") {
|
|
119
|
+
return injectIntentWorkflowRail(output, projectDir, sessionID, text, intent, formatExplicitPersonaSkillActivationBlock(intent), "[Persona Harness Skill Activation]", compliance, options);
|
|
120
|
+
}
|
|
114
121
|
if (intent?.primary === "debug") {
|
|
115
122
|
return injectIntentWorkflowRail(output, projectDir, sessionID, text, intent, formatDebugWorkflowBlock(intent), "[Persona Harness Debug Workflow]", compliance, options);
|
|
116
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-workflow.js","sourceRoot":"","sources":["../../src/runtime/intent-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AAEhF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAC1E,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"intent-workflow.js","sourceRoot":"","sources":["../../src/runtime/intent-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type PersonaSharedSkillId } from "./persona-shared-skill-catalog.js";
|
|
2
|
-
|
|
2
|
+
import type { PersonaSharedSkillActivation } from "./persona-shared-skill-activation.js";
|
|
3
|
+
export type OpenCodeSkillRouteDecision = "activate" | "explicit";
|
|
3
4
|
export type OpenCodeSkillRouteInput = {
|
|
4
|
-
readonly decision:
|
|
5
|
+
readonly decision: OpenCodeSkillRouteDecision;
|
|
6
|
+
readonly firstAction: PersonaSharedSkillActivation["firstAction"];
|
|
5
7
|
readonly skillId: PersonaSharedSkillId;
|
|
6
8
|
readonly reason: string;
|
|
7
9
|
};
|
|
8
10
|
export declare function createOpenCodeSkillRoute(input: OpenCodeSkillRouteInput): string;
|
|
11
|
+
export declare function createOpenCodeUnavailableSkillRoute(reasonCode: "malformed-explicit-skill-command" | "unavailable-explicit-skill"): string;
|
|
@@ -17,9 +17,17 @@ export function createOpenCodeSkillRoute(input) {
|
|
|
17
17
|
`Skill: ${skill.id}`,
|
|
18
18
|
`Reference: ${personaSharedSkillPath(skill.id)}`,
|
|
19
19
|
`Reason: ${boundedReason(input.reason)}`,
|
|
20
|
+
`First safe action: ${input.firstAction}`,
|
|
20
21
|
`Handoff: ${handoff}`,
|
|
21
|
-
"OpenCode advises and routes only. It does not create plans, tickets, branches, files, agents, or workflow state,
|
|
22
|
-
|
|
22
|
+
"OpenCode activates this catalog reference for the current turn only. OpenCode advises and routes only: it does not load a full skill body. It does not create plans, tickets, branches, files, agents, or workflow state, or advance a workflow automatically.",
|
|
23
|
+
].join("\n");
|
|
24
|
+
}
|
|
25
|
+
export function createOpenCodeUnavailableSkillRoute(reasonCode) {
|
|
26
|
+
return [
|
|
27
|
+
"[Persona Harness Skill Route]",
|
|
28
|
+
"Decision: unavailable",
|
|
29
|
+
`Reason code: ${reasonCode}`,
|
|
30
|
+
"OpenCode does not load a skill body, create state, or fall back to a different procedure.",
|
|
23
31
|
].join("\n");
|
|
24
32
|
}
|
|
25
33
|
//# sourceMappingURL=opencode-skill-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-skill-adapter.js","sourceRoot":"","sources":["../../src/runtime/opencode-skill-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"opencode-skill-adapter.js","sourceRoot":"","sources":["../../src/runtime/opencode-skill-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,mCAAmC,CAAA;AAY1C,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,qDAAqD,CAAA;AACvH,CAAC;AAED,SAAS,aAAa,CAAC,KAAmD;IACxE,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,4BAA4B,CAAA;IACrC,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA8B;IACrE,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO;QACL,+BAA+B;QAC/B,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,UAAU,KAAK,CAAC,EAAE,EAAE;QACpB,cAAc,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;QAChD,WAAW,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QACxC,sBAAsB,KAAK,CAAC,WAAW,EAAE;QACzC,YAAY,OAAO,EAAE;QACrB,gQAAgQ;KACjQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,UAA6E;IAC/H,OAAO;QACL,+BAA+B;QAC/B,uBAAuB;QACvB,gBAAgB,UAAU,EAAE;QAC5B,2FAA2F;KAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type PersonaSharedSkillId } from "./persona-shared-skill-catalog.js";
|
|
2
|
+
export type PersonaProductDiscoveryMode = "new-product" | "brownfield-change-discovery";
|
|
3
|
+
export type PersonaSharedSkillActivation = {
|
|
4
|
+
readonly decision: "automatic" | "explicit";
|
|
5
|
+
readonly firstAction: "one-question-product-interview" | "code-first-change-discovery" | "advisory-reference";
|
|
6
|
+
readonly handoff: PersonaSharedSkillId | null;
|
|
7
|
+
readonly reason: string;
|
|
8
|
+
readonly skillId: PersonaSharedSkillId;
|
|
9
|
+
};
|
|
10
|
+
export type ExplicitPersonaSkillCommand = {
|
|
11
|
+
readonly kind: "none";
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: "valid";
|
|
14
|
+
readonly skillId: PersonaSharedSkillId;
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: "malformed";
|
|
17
|
+
} | {
|
|
18
|
+
readonly kind: "unavailable";
|
|
19
|
+
};
|
|
20
|
+
export type AutomaticPersonaSkillIntent = "product-interview" | "requirements" | "debug" | "review" | "refactor" | "git" | "programming";
|
|
21
|
+
export declare function parseExplicitPersonaSkillCommand(message: string): ExplicitPersonaSkillCommand;
|
|
22
|
+
export declare function isProductDiscoverySuppressed(message: string): boolean;
|
|
23
|
+
export declare function isClearDirectImplementationRequest(message: string): boolean;
|
|
24
|
+
export declare function activateExplicitPersonaSkill(skillId: PersonaSharedSkillId, reason: string, productMode?: PersonaProductDiscoveryMode): PersonaSharedSkillActivation;
|
|
25
|
+
export declare function activateAutomaticPersonaSkill(intent: AutomaticPersonaSkillIntent, reason: string, productMode?: PersonaProductDiscoveryMode): PersonaSharedSkillActivation;
|
|
26
|
+
export declare function primaryIntentForPersonaSkill(skillId: PersonaSharedSkillId): AutomaticPersonaSkillIntent;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { PERSONA_CORE_SKILL_IDS, PERSONA_OPTIONAL_SKILL_IDS, resolvePersonaSharedSkill, } from "./persona-shared-skill-catalog.js";
|
|
2
|
+
const EXPLICIT_COMMAND = "/persona";
|
|
3
|
+
const SKILL_ID_PATTERN = /^[a-z][a-z-]*$/u;
|
|
4
|
+
const KNOWN_SKILL_IDS = new Set([...PERSONA_CORE_SKILL_IDS, ...PERSONA_OPTIONAL_SKILL_IDS]);
|
|
5
|
+
const DISCOVERY_SUPPRESSION_PATTERN = /(?:\b(?:skip|defer|stop|pause)\b.*\b(?:product\s+)?(?:discovery|interview)\b|(?:제품|프로덕트)?(?:\s*(?:탐색|인터뷰)).*(?:건너뛰|보류|중단|그만))/iu;
|
|
6
|
+
const CLEAR_DIRECT_IMPLEMENTATION_PATTERN = /(?:\b(?:implement|fix|repair|edit|resolve)\b|구현|수정|고쳐|고치|해결)/iu;
|
|
7
|
+
const AUTOMATIC_SKILL_IDS = {
|
|
8
|
+
"product-interview": "deep-interview",
|
|
9
|
+
requirements: "plan",
|
|
10
|
+
debug: "debug",
|
|
11
|
+
review: "review",
|
|
12
|
+
refactor: "refactor",
|
|
13
|
+
git: "git",
|
|
14
|
+
programming: "programming",
|
|
15
|
+
};
|
|
16
|
+
function isKnownPersonaSharedSkillId(value) {
|
|
17
|
+
return KNOWN_SKILL_IDS.has(value);
|
|
18
|
+
}
|
|
19
|
+
function firstActionFor(skillId, productMode) {
|
|
20
|
+
if (skillId !== "deep-interview") {
|
|
21
|
+
return "advisory-reference";
|
|
22
|
+
}
|
|
23
|
+
return productMode === "brownfield-change-discovery"
|
|
24
|
+
? "code-first-change-discovery"
|
|
25
|
+
: "one-question-product-interview";
|
|
26
|
+
}
|
|
27
|
+
function buildActivation(skillId, decision, reason, productMode) {
|
|
28
|
+
const skill = resolvePersonaSharedSkill(skillId);
|
|
29
|
+
return {
|
|
30
|
+
decision,
|
|
31
|
+
firstAction: firstActionFor(skill.id, productMode),
|
|
32
|
+
handoff: skill.handoff,
|
|
33
|
+
reason,
|
|
34
|
+
skillId: skill.id,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function parseExplicitPersonaSkillCommand(message) {
|
|
38
|
+
const tokens = message.trim().split(/\s+/u);
|
|
39
|
+
if (tokens[0] !== EXPLICIT_COMMAND) {
|
|
40
|
+
return { kind: "none" };
|
|
41
|
+
}
|
|
42
|
+
const skillId = tokens[1];
|
|
43
|
+
if (skillId === undefined || !SKILL_ID_PATTERN.test(skillId)) {
|
|
44
|
+
return { kind: "malformed" };
|
|
45
|
+
}
|
|
46
|
+
if (!isKnownPersonaSharedSkillId(skillId)) {
|
|
47
|
+
return { kind: "unavailable" };
|
|
48
|
+
}
|
|
49
|
+
return { kind: "valid", skillId };
|
|
50
|
+
}
|
|
51
|
+
export function isProductDiscoverySuppressed(message) {
|
|
52
|
+
return DISCOVERY_SUPPRESSION_PATTERN.test(message.trim());
|
|
53
|
+
}
|
|
54
|
+
export function isClearDirectImplementationRequest(message) {
|
|
55
|
+
return CLEAR_DIRECT_IMPLEMENTATION_PATTERN.test(message);
|
|
56
|
+
}
|
|
57
|
+
export function activateExplicitPersonaSkill(skillId, reason, productMode = "new-product") {
|
|
58
|
+
return buildActivation(skillId, "explicit", reason, productMode);
|
|
59
|
+
}
|
|
60
|
+
export function activateAutomaticPersonaSkill(intent, reason, productMode = "new-product") {
|
|
61
|
+
return buildActivation(AUTOMATIC_SKILL_IDS[intent], "automatic", reason, productMode);
|
|
62
|
+
}
|
|
63
|
+
export function primaryIntentForPersonaSkill(skillId) {
|
|
64
|
+
if (skillId === "deep-interview")
|
|
65
|
+
return "product-interview";
|
|
66
|
+
if (skillId === "technical-intake" || skillId === "plan" || skillId === "ralplan" || skillId === "tdd" || skillId === "implementation") {
|
|
67
|
+
return "requirements";
|
|
68
|
+
}
|
|
69
|
+
if (skillId === "debug" || skillId === "review" || skillId === "refactor" || skillId === "git" || skillId === "programming") {
|
|
70
|
+
return skillId;
|
|
71
|
+
}
|
|
72
|
+
return "programming";
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=persona-shared-skill-activation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-shared-skill-activation.js","sourceRoot":"","sources":["../../src/runtime/persona-shared-skill-activation.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ const TOPICS = [
|
|
|
49
49
|
tradeoff: "Naming real constraints early avoids surprise rework; speculative technical choices can wait for technical intake.",
|
|
50
50
|
},
|
|
51
51
|
];
|
|
52
|
-
const START_PATTERN = /(만들래|만들고\s*싶|기획해|구상해|서비스\s*만들|웹\s*서비스|기존\s*(?:서비스|제품|앱|흐름).*(?:개선|변경)|product\s+idea|want\s+to\s+(?:build|explore)|build\s+(?:an?|the)\s+(?:app|service|product)|new\s+(?:app|service|product)|(?:app|service|product)\s+idea|(?:improve|change)\s+(?:an?\s+)?existing(?:\s+\w+){0,2}\s+(?:app|service|product|flow))/iu;
|
|
52
|
+
const START_PATTERN = /(만들래|만들고\s*싶|기획해|구상해|서비스\s*만들|웹\s*서비스|기존\s*(?:서비스|제품|앱|흐름).*(?:개선|변경)|product\s+idea|want\s+to\s+(?:build|create|make|explore)|(?:build|create|make)\s+(?:an?|the)\s+(?:app|service|product)|new\s+(?:app|service|product)|(?:app|service|product)\s+idea|(?:improve|change)\s+(?:an?\s+)?existing(?:\s+\w+){0,2}\s+(?:app|service|product|flow))/iu;
|
|
53
53
|
const APPROVAL_PATTERN = /^(?:승인|진행하자|시작하자|approve|proceed|go\s+ahead)$/iu;
|
|
54
54
|
const STOP_PATTERN = /^(?:stop|pause|그만|중단)$/iu;
|
|
55
55
|
const DEFER_PATTERN = /^(?:defer|skip|later|보류|넘겨)$/iu;
|
|
@@ -71,12 +71,22 @@ function renderQuestion(session, approvalBlocked = false) {
|
|
|
71
71
|
block: [
|
|
72
72
|
"[Persona Harness Product Interview]",
|
|
73
73
|
createOpenCodeSkillRoute({
|
|
74
|
-
decision: "
|
|
74
|
+
decision: "activate",
|
|
75
|
+
firstAction: session.mode === "brownfield-change-discovery" ? "code-first-change-discovery" : "one-question-product-interview",
|
|
75
76
|
skillId: "deep-interview",
|
|
76
77
|
reason: "Product facts are still unresolved, so technical intake and planning remain deferred.",
|
|
77
78
|
}),
|
|
78
79
|
"",
|
|
79
80
|
"Current understanding: product discovery is in progress in this conversation.",
|
|
81
|
+
...(session.mode === "brownfield-change-discovery"
|
|
82
|
+
? [
|
|
83
|
+
"First-action contract: inspect relevant existing code before asking for facts it already answers.",
|
|
84
|
+
"Do not implement or create project state in this turn.",
|
|
85
|
+
]
|
|
86
|
+
: [
|
|
87
|
+
"Required first response: ask exactly one product question now, then wait for the user's answer.",
|
|
88
|
+
"Do not propose a solution, implementation, technical plan, command, or file change in this turn.",
|
|
89
|
+
]),
|
|
80
90
|
...(session.mode === "brownfield-change-discovery"
|
|
81
91
|
? [
|
|
82
92
|
"Mode: brownfield-change-discovery.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-deep-interview.js","sourceRoot":"","sources":["../../src/runtime/product-deep-interview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAEtE,MAAM,MAAM,GAAG;IACb;QACE,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,0DAA0D;QACpE,cAAc,EAAE,yDAAyD;QACzE,QAAQ,EAAE,gGAAgG;KAC3G;IACD;QACE,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,mDAAmD;QAC7D,cAAc,EAAE,sEAAsE;QACtF,QAAQ,EAAE,kFAAkF;KAC7F;IACD;QACE,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,uDAAuD;QACjE,cAAc,EAAE,kEAAkE;QAClF,QAAQ,EAAE,4FAA4F;KACvG;IACD;QACE,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,8DAA8D;QACxE,cAAc,EAAE,yEAAyE;QACzF,QAAQ,EAAE,+EAA+E;KAC1F;IACD;QACE,EAAE,EAAE,KAAK;QACT,QAAQ,EAAE,kEAAkE;QAC5E,cAAc,EAAE,yDAAyD;QACzE,QAAQ,EAAE,gGAAgG;KAC3G;IACD;QACE,EAAE,EAAE,WAAW;QACf,QAAQ,EAAE,sEAAsE;QAChF,cAAc,EAAE,yCAAyC;QACzD,QAAQ,EAAE,mFAAmF;KAC9F;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,QAAQ,EAAE,sDAAsD;QAChE,cAAc,EAAE,qEAAqE;QACrF,QAAQ,EAAE,mFAAmF;KAC9F;IACD;QACE,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,kEAAkE;QAC5E,cAAc,EAAE,oHAAoH;QACpI,QAAQ,EAAE,oHAAoH;KAC/H;CACO,CAAA;AAuBV,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"product-deep-interview.js","sourceRoot":"","sources":["../../src/runtime/product-deep-interview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { type RequirementsIntent } from "./requirements-intent-router.js";
|
|
2
|
-
|
|
2
|
+
import { type PersonaProductDiscoveryMode, type PersonaSharedSkillActivation } from "./persona-shared-skill-activation.js";
|
|
3
|
+
export type TopLevelIntentKind = "product-interview" | "requirements" | "debug" | "review" | "refactor" | "git" | "programming" | "unavailable";
|
|
3
4
|
export type TopLevelIntent = {
|
|
5
|
+
readonly activation?: PersonaSharedSkillActivation;
|
|
4
6
|
readonly primary: TopLevelIntentKind;
|
|
7
|
+
readonly reasonCode?: "malformed-explicit-skill-command" | "unavailable-explicit-skill";
|
|
5
8
|
readonly secondary: readonly TopLevelIntentKind[];
|
|
6
9
|
readonly reason: string;
|
|
7
10
|
readonly requirementsIntent?: RequirementsIntent;
|
|
8
11
|
};
|
|
9
|
-
export
|
|
12
|
+
export type TopLevelIntentOptions = {
|
|
13
|
+
readonly productMode?: PersonaProductDiscoveryMode;
|
|
14
|
+
};
|
|
15
|
+
export declare function detectTopLevelIntent(message: string, options?: TopLevelIntentOptions): TopLevelIntent | undefined;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { detectRequirementsIntent } from "./requirements-intent-router.js";
|
|
2
|
+
import { activateAutomaticPersonaSkill, activateExplicitPersonaSkill, isClearDirectImplementationRequest, isProductDiscoverySuppressed, parseExplicitPersonaSkillCommand, primaryIntentForPersonaSkill, } from "./persona-shared-skill-activation.js";
|
|
2
3
|
import { isProductDeepInterviewStart } from "./product-deep-interview.js";
|
|
3
4
|
const REQUIREMENT_CONTEXT_PATTERN = /(?:\bREADME(?:\.md)?\b|\brequirements(?:\.md)?\b|리드미|요구사항|backlog|task\s*card|step|단계)/iu;
|
|
4
|
-
const DEBUG_PATTERN = /(왜\s*안|안\s*돼|안됨|에러|오류|실패|버그|고장|멈춤|깨졌|문제|원인|debug|bug|error|fail(?:ed|ing|s)?|failure|crash|
|
|
5
|
+
const DEBUG_PATTERN = /(왜\s*안|안\s*돼|안됨|에러|오류|실패|버그|고장|멈춤|깨졌|문제|원인|debug|bug|error|fail(?:ed|ing|s)?|failure|crash|\bhang(?:s|ing)?\b|broken|not\s+working|why)/iu;
|
|
5
6
|
const REVIEW_PATTERN = /(리뷰|검토|분석|냉정하게|살펴봐|봐봐|review|audit|qa|verify|validate|check\s+(?:this|my|the))/iu;
|
|
6
7
|
const REFACTOR_PATTERN = /(리팩터|리팩토|구조\s*개선|구조\s*정리|정리하고|cleanup|clean\s+up|refactor|restructure|simplif)/iu;
|
|
7
8
|
const GIT_PATTERN = /(커밋|푸쉬|푸시|태그|릴리즈|\bgit\s+(?:log|show|blame|rebase|status)\b|\bcommit\b|\bpush\b|\btag\b|\brelease\b|\brebase\b|\bblame\b)/iu;
|
|
8
|
-
const PROGRAMMING_PATTERN = /(
|
|
9
|
+
const PROGRAMMING_PATTERN = /(구현|만들|작성|개발|완성|수정|고치|고쳐|해결|\b(?:build|implement(?:ing)?|create|make|edit|fix|repair|resolve)\b)/iu;
|
|
9
10
|
function includesIntent(intents, intent) {
|
|
10
11
|
return intents.includes(intent);
|
|
11
12
|
}
|
|
@@ -15,9 +16,14 @@ function appendSecondary(intents, primary, candidate) {
|
|
|
15
16
|
}
|
|
16
17
|
return [...intents, candidate];
|
|
17
18
|
}
|
|
18
|
-
function buildIntent(primary, message, reason, requirementsIntent) {
|
|
19
|
+
function buildIntent(primary, message, reason, requirementsIntent, activation) {
|
|
19
20
|
if (primary === "product-interview") {
|
|
20
|
-
return {
|
|
21
|
+
return {
|
|
22
|
+
...(activation === undefined ? {} : { activation }),
|
|
23
|
+
primary,
|
|
24
|
+
reason,
|
|
25
|
+
secondary: [],
|
|
26
|
+
};
|
|
21
27
|
}
|
|
22
28
|
const hasRequirementsContext = requirementsIntent !== undefined || REQUIREMENT_CONTEXT_PATTERN.test(message);
|
|
23
29
|
const hasProgrammingIntent = requirementsIntent?.kind === "requirement-drafting" ? false : PROGRAMMING_PATTERN.test(message);
|
|
@@ -33,17 +39,43 @@ function buildIntent(primary, message, reason, requirementsIntent) {
|
|
|
33
39
|
secondary = appendSecondary(secondary, primary, "git");
|
|
34
40
|
}
|
|
35
41
|
return {
|
|
42
|
+
...(activation === undefined ? {} : { activation }),
|
|
36
43
|
primary,
|
|
37
44
|
secondary,
|
|
38
45
|
reason,
|
|
39
46
|
...(requirementsIntent !== undefined ? { requirementsIntent } : {}),
|
|
40
47
|
};
|
|
41
48
|
}
|
|
42
|
-
|
|
49
|
+
function unavailableIntent(reasonCode) {
|
|
50
|
+
return {
|
|
51
|
+
primary: "unavailable",
|
|
52
|
+
reason: "The explicit Persona skill command is unavailable and was not routed.",
|
|
53
|
+
reasonCode,
|
|
54
|
+
secondary: [],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export function detectTopLevelIntent(message, options = {}) {
|
|
43
58
|
const normalized = message.trim();
|
|
44
59
|
if (normalized.length === 0) {
|
|
45
60
|
return undefined;
|
|
46
61
|
}
|
|
62
|
+
const productMode = options.productMode ?? "new-product";
|
|
63
|
+
const explicitCommand = parseExplicitPersonaSkillCommand(normalized);
|
|
64
|
+
if (explicitCommand.kind === "malformed") {
|
|
65
|
+
return unavailableIntent("malformed-explicit-skill-command");
|
|
66
|
+
}
|
|
67
|
+
if (explicitCommand.kind === "unavailable") {
|
|
68
|
+
return unavailableIntent("unavailable-explicit-skill");
|
|
69
|
+
}
|
|
70
|
+
if (explicitCommand.kind === "valid") {
|
|
71
|
+
const primary = primaryIntentForPersonaSkill(explicitCommand.skillId);
|
|
72
|
+
return {
|
|
73
|
+
activation: activateExplicitPersonaSkill(explicitCommand.skillId, "The user explicitly selected this Persona skill command.", productMode),
|
|
74
|
+
primary,
|
|
75
|
+
reason: "The explicit Persona skill command takes precedence over automatic intent routing.",
|
|
76
|
+
secondary: [],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
47
79
|
const requirementsIntent = detectRequirementsIntent(normalized);
|
|
48
80
|
const hasDebugIntent = DEBUG_PATTERN.test(normalized);
|
|
49
81
|
const hasReviewIntent = REVIEW_PATTERN.test(normalized);
|
|
@@ -51,26 +83,31 @@ export function detectTopLevelIntent(message) {
|
|
|
51
83
|
const hasGitIntent = GIT_PATTERN.test(normalized);
|
|
52
84
|
const hasProgrammingIntent = PROGRAMMING_PATTERN.test(normalized);
|
|
53
85
|
const hasWorkIntent = requirementsIntent !== undefined || hasDebugIntent || hasReviewIntent || hasRefactorIntent || hasProgrammingIntent;
|
|
54
|
-
if (isProductDeepInterviewStart(normalized) && !hasDebugIntent && !hasReviewIntent && !hasRefactorIntent) {
|
|
55
|
-
return buildIntent("product-interview", normalized, "Product facts require a one-question interview before technical intake.", undefined);
|
|
56
|
-
}
|
|
57
86
|
if (hasGitIntent && !hasWorkIntent) {
|
|
58
|
-
return buildIntent("git", normalized, "Git-only operation requested.", requirementsIntent);
|
|
87
|
+
return buildIntent("git", normalized, "Git-only operation requested.", requirementsIntent, activateAutomaticPersonaSkill("git", "Git-only operation requested."));
|
|
59
88
|
}
|
|
60
89
|
if (hasDebugIntent) {
|
|
61
|
-
return buildIntent("debug", normalized, "Failure or broken-behavior signal detected.", requirementsIntent);
|
|
90
|
+
return buildIntent("debug", normalized, "Failure or broken-behavior signal detected.", requirementsIntent, activateAutomaticPersonaSkill("debug", "Failure or broken-behavior signal detected."));
|
|
62
91
|
}
|
|
63
92
|
if (hasReviewIntent && !hasProgrammingIntent) {
|
|
64
|
-
return buildIntent("review", normalized, "Review or analysis request detected without a fix request.", requirementsIntent);
|
|
65
|
-
}
|
|
66
|
-
if (requirementsIntent !== undefined) {
|
|
67
|
-
return buildIntent("requirements", normalized, requirementsIntent.reason, requirementsIntent);
|
|
93
|
+
return buildIntent("review", normalized, "Review or analysis request detected without a fix request.", requirementsIntent, activateAutomaticPersonaSkill("review", "Review or analysis request detected without a fix request."));
|
|
68
94
|
}
|
|
69
95
|
if (hasRefactorIntent) {
|
|
70
|
-
return buildIntent("refactor", normalized, "Behavior-preserving structure improvement requested.", requirementsIntent);
|
|
96
|
+
return buildIntent("refactor", normalized, "Behavior-preserving structure improvement requested.", requirementsIntent, activateAutomaticPersonaSkill("refactor", "Behavior-preserving structure improvement requested."));
|
|
97
|
+
}
|
|
98
|
+
const productInterviewStart = isProductDeepInterviewStart(normalized);
|
|
99
|
+
if (productInterviewStart && isProductDiscoverySuppressed(normalized)) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
if (productInterviewStart && !isClearDirectImplementationRequest(normalized)) {
|
|
103
|
+
const reason = "Product facts require a one-question interview before technical intake.";
|
|
104
|
+
return buildIntent("product-interview", normalized, reason, undefined, activateAutomaticPersonaSkill("product-interview", reason, productMode));
|
|
105
|
+
}
|
|
106
|
+
if (requirementsIntent !== undefined) {
|
|
107
|
+
return buildIntent("requirements", normalized, requirementsIntent.reason, requirementsIntent, activateAutomaticPersonaSkill("requirements", requirementsIntent.reason));
|
|
71
108
|
}
|
|
72
109
|
if (hasProgrammingIntent) {
|
|
73
|
-
return buildIntent("programming", normalized, "Direct code creation or edit request detected.", requirementsIntent);
|
|
110
|
+
return buildIntent("programming", normalized, "Direct code creation or edit request detected.", requirementsIntent, activateAutomaticPersonaSkill("programming", "Direct code creation or edit request detected."));
|
|
74
111
|
}
|
|
75
112
|
return undefined;
|
|
76
113
|
}
|