@nac3/forge-cli 0.2.0-alpha.59z.121 → 0.2.0-alpha.59z.158
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/agents/bridge.d.ts +69 -0
- package/dist/agents/bridge.d.ts.map +1 -0
- package/dist/agents/bridge.js +295 -0
- package/dist/agents/bridge.js.map +1 -0
- package/dist/agents/cli_real.d.ts +38 -0
- package/dist/agents/cli_real.d.ts.map +1 -0
- package/dist/agents/cli_real.js +46 -0
- package/dist/agents/cli_real.js.map +1 -0
- package/dist/agents/config_schema.d.ts +1 -1
- package/dist/agents/config_schema.d.ts.map +1 -1
- package/dist/agents/config_schema.js +16 -0
- package/dist/agents/config_schema.js.map +1 -1
- package/dist/agents/defaults.d.ts.map +1 -1
- package/dist/agents/defaults.js.map +1 -1
- package/dist/agents/delegate.d.ts +36 -0
- package/dist/agents/delegate.d.ts.map +1 -0
- package/dist/agents/delegate.js +68 -0
- package/dist/agents/delegate.js.map +1 -0
- package/dist/agents/iterative_step.d.ts +95 -0
- package/dist/agents/iterative_step.d.ts.map +1 -0
- package/dist/agents/iterative_step.js +249 -0
- package/dist/agents/iterative_step.js.map +1 -0
- package/dist/agents/llm_step.d.ts +50 -0
- package/dist/agents/llm_step.d.ts.map +1 -0
- package/dist/agents/llm_step.js +28 -0
- package/dist/agents/llm_step.js.map +1 -0
- package/dist/agents/real_step_factory.d.ts +95 -0
- package/dist/agents/real_step_factory.d.ts.map +1 -0
- package/dist/agents/real_step_factory.js +51 -0
- package/dist/agents/real_step_factory.js.map +1 -0
- package/dist/agents/runner.d.ts +14 -0
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +10 -1
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/runtime.d.ts +115 -0
- package/dist/agents/runtime.d.ts.map +1 -0
- package/dist/agents/runtime.js +429 -0
- package/dist/agents/runtime.js.map +1 -0
- package/dist/agents/system_prompt.d.ts +36 -0
- package/dist/agents/system_prompt.d.ts.map +1 -0
- package/dist/agents/system_prompt.js +101 -0
- package/dist/agents/system_prompt.js.map +1 -0
- package/dist/agents/types.d.ts +12 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/types.js.map +1 -1
- package/dist/bin/yf.d.ts.map +1 -1
- package/dist/bin/yf.js +9 -0
- package/dist/bin/yf.js.map +1 -1
- package/dist/chat/claude_cli.d.ts +42 -0
- package/dist/chat/claude_cli.d.ts.map +1 -0
- package/dist/chat/claude_cli.js +299 -0
- package/dist/chat/claude_cli.js.map +1 -0
- package/dist/chat/graph_snapshot.d.ts +38 -0
- package/dist/chat/graph_snapshot.d.ts.map +1 -0
- package/dist/chat/graph_snapshot.js +159 -0
- package/dist/chat/graph_snapshot.js.map +1 -0
- package/dist/chat/ingest_session.d.ts +24 -4
- package/dist/chat/ingest_session.d.ts.map +1 -1
- package/dist/chat/ingest_session.js +139 -4
- package/dist/chat/ingest_session.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +1358 -0
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts +21 -0
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +904 -4
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/nac3_invoke.d.ts +5 -0
- package/dist/chat/tools/nac3_invoke.d.ts.map +1 -1
- package/dist/chat/tools/nac3_invoke.js +1 -0
- package/dist/chat/tools/nac3_invoke.js.map +1 -1
- package/dist/chat/tools.d.ts.map +1 -1
- package/dist/chat/tools.js +12 -0
- package/dist/chat/tools.js.map +1 -1
- package/dist/commands/agent.d.ts +12 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +92 -1
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/chat.d.ts +10 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +12 -1
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/director.d.ts +37 -0
- package/dist/commands/director.d.ts.map +1 -0
- package/dist/commands/director.js +290 -0
- package/dist/commands/director.js.map +1 -0
- package/dist/commands/keys_setup.d.ts +1 -0
- package/dist/commands/keys_setup.d.ts.map +1 -1
- package/dist/commands/keys_setup.js +61 -11
- package/dist/commands/keys_setup.js.map +1 -1
- package/dist/core/pilot_setup.d.ts +14 -1
- package/dist/core/pilot_setup.d.ts.map +1 -1
- package/dist/core/pilot_setup.js +62 -1
- package/dist/core/pilot_setup.js.map +1 -1
- package/dist/core/provider_keys.d.ts.map +1 -1
- package/dist/core/provider_keys.js +12 -5
- package/dist/core/provider_keys.js.map +1 -1
- package/dist/design/yujin_design_resolver.d.ts +77 -0
- package/dist/design/yujin_design_resolver.d.ts.map +1 -0
- package/dist/design/yujin_design_resolver.js +113 -0
- package/dist/design/yujin_design_resolver.js.map +1 -0
- package/dist/docs/doctrine/default-design-system.md +120 -0
- package/dist/docs/doctrine/language-sovereignty.md +143 -0
- package/dist/docs/doctrine/testing-policy.md +211 -0
- package/dist/nac3/approval_queue.d.ts +8 -0
- package/dist/nac3/approval_queue.d.ts.map +1 -1
- package/dist/nac3/approval_queue.js.map +1 -1
- package/dist/nac3/internal_manifest.d.ts.map +1 -1
- package/dist/nac3/internal_manifest.js +178 -0
- package/dist/nac3/internal_manifest.js.map +1 -1
- package/dist/office/excel.d.ts +22 -0
- package/dist/office/excel.d.ts.map +1 -1
- package/dist/office/excel.js +82 -0
- package/dist/office/excel.js.map +1 -1
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_open.json +22 -0
- package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_unlabeled_button.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_agent_director_consults_workflow_before_dispatch.json +42 -0
- package/dist/qa/brain_matrix/fixtures/scenario_analyst_extracts_then_returns.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_coder_consults_nac_spec_before_writing.json +28 -0
- package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_override_shadcn.json +45 -0
- package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_use_card_template.json +44 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_delegates_to_analyst.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_no_self_delegation.json +20 -0
- package/dist/qa/brain_matrix/fixtures/scenario_director_terminal_done_marker.json +19 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_default_design_system.json +50 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_language_sovereignty.json +53 -0
- package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_testing_policy.json +55 -0
- package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_not_conducive_spa_python.json +61 -0
- package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_user_picks_python.json +48 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_destructive_pauses_for_r8.json +42 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_happy_path_writes_pizarron.json +76 -0
- package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_network_timeout_graceful.json +41 -0
- package/dist/qa/brain_matrix/fixtures/scenario_no_hardcoded_color_use_token.json +47 -0
- package/dist/qa/brain_matrix/fixtures/scenario_office_excel_update_cell_picks_right_verb.json +26 -0
- package/dist/qa/brain_matrix/fixtures/scenario_scaffolder_destructive_pauses_for_approval.json +23 -0
- package/dist/qa/brain_matrix/fixtures/scenario_sumie_icon_pick_from_catalog.json +56 -0
- package/dist/qa/brain_matrix/fixtures/scenario_tester_uses_shell_exec_only.json +27 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/workflow/graph.d.ts +59 -0
- package/dist/workflow/graph.d.ts.map +1 -0
- package/dist/workflow/graph.js +137 -0
- package/dist/workflow/graph.js.map +1 -0
- package/dist/workflow/state.d.ts +34 -0
- package/dist/workflow/state.d.ts.map +1 -1
- package/dist/workflow/state.js.map +1 -1
- package/docs/doctrine/default-design-system.md +120 -0
- package/docs/doctrine/language-sovereignty.md +143 -0
- package/docs/doctrine/testing-policy.md +211 -0
- package/package.json +102 -100
- package/src/i18n/catalogs/ar.json +20 -1
- package/src/i18n/catalogs/de.json +20 -1
- package/src/i18n/catalogs/en.json +20 -21
- package/src/i18n/catalogs/es.json +20 -21
- package/src/i18n/catalogs/fr.json +20 -1
- package/src/i18n/catalogs/hi.json +20 -1
- package/src/i18n/catalogs/it.json +20 -1
- package/src/i18n/catalogs/ja.json +20 -1
- package/src/i18n/catalogs/pt.json +20 -1
- package/src/i18n/catalogs/zh.json +20 -1
- package/templates/sumi-context.template.md +57 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "sumie_icon_pick_from_catalog",
|
|
3
|
+
"description": "User asks for an icon. Validates the brain pulls from the sumi-e catalog instead of generating arbitrary SVG or suggesting Material/FontAwesome.",
|
|
4
|
+
"setup": {},
|
|
5
|
+
"turns": [
|
|
6
|
+
{
|
|
7
|
+
"kind": "user_says",
|
|
8
|
+
"text": "Necesito un icono para el modulo de finanzas."
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"invariants": [
|
|
12
|
+
{
|
|
13
|
+
"name": "no_invent_verbs",
|
|
14
|
+
"kind": "no_invent_verb",
|
|
15
|
+
"params": {}
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "uses_sumie_catalog",
|
|
19
|
+
"kind": "verb_invoked",
|
|
20
|
+
"params": {
|
|
21
|
+
"verb_id": "yujin.design.list-sumie"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "mentions_sumie",
|
|
26
|
+
"kind": "text_contains_any",
|
|
27
|
+
"params": {
|
|
28
|
+
"substrs": [
|
|
29
|
+
"sumi-e",
|
|
30
|
+
"sumie",
|
|
31
|
+
"yujin.design.get-icon",
|
|
32
|
+
"catalog"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"fake_responses": [
|
|
38
|
+
{
|
|
39
|
+
"text": "Filtro el catalogo sumi-e por dominio finance.",
|
|
40
|
+
"tool_calls": [
|
|
41
|
+
{
|
|
42
|
+
"name": "nac3_invoke",
|
|
43
|
+
"args": {
|
|
44
|
+
"verb_id": "yujin.design.list-sumie",
|
|
45
|
+
"args": {
|
|
46
|
+
"tag": "finance"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"text": "Del catalogo sumi-e con tag finance: coin-stack, scale-balance, contract-seal, ledger-open. Cual preferis?"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "tester_uses_shell_exec_only",
|
|
3
|
+
"description": "Director live execution -- Tester sub-agent has allowed_verbs limited to yujin.shell.exec. When asked to run the test suite, it picks shell.exec (not a fs write, not a delegate). Validates per-role allowed_verbs constraint in the iterative_step.",
|
|
4
|
+
"setup": {
|
|
5
|
+
"extra_system_prompt": "TESTER ROLE active. Your single allowed verb is yujin.shell.exec. Run the test suite via the project's test command (e.g. pnpm vitest run). Do NOT call delegate, fs.write, pizarron, reader. If the test command fails, surface the failure text -- do NOT try to patch the code yourself (that is Scaffolder's job).\n\nVerbs:\n- yujin.shell.exec [u d] args:{cmd<required>}"
|
|
6
|
+
},
|
|
7
|
+
"turns": [
|
|
8
|
+
{ "kind": "user_says", "text": "Corre los tests E2E del slice X y dime si pasan." }
|
|
9
|
+
],
|
|
10
|
+
"invariants": [
|
|
11
|
+
{ "name": "uses_shell_exec", "kind": "verb_invoked", "params": { "verb_id": "yujin.shell.exec" } },
|
|
12
|
+
{ "name": "no_delegate", "kind": "verb_not_invoked", "params": { "verb_id": "yujin.agent.delegate" } },
|
|
13
|
+
{ "name": "no_fs_write", "kind": "verb_not_invoked", "params": { "verb_id": "yujin.fs.write-project-file" } },
|
|
14
|
+
{ "name": "no_invent_verbs", "kind": "no_invent_verb", "params": {} }
|
|
15
|
+
],
|
|
16
|
+
"fake_responses": [
|
|
17
|
+
{
|
|
18
|
+
"text": "Corro la suite.",
|
|
19
|
+
"tool_calls": [
|
|
20
|
+
{ "name": "nac3_invoke", "args": { "verb_id": "yujin.shell.exec", "args": { "cmd": "pnpm vitest run tests/slice-X.test.ts" } } }
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"text": "Suite verde: 12/12 pasaron."
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/workflow/graph.ts -- Director sprint slice 7.
|
|
3
|
+
*
|
|
4
|
+
* Pure transformer that takes the current `WorkflowState` and
|
|
5
|
+
* returns a {nodes, edges} shape the panel SVG (and any future
|
|
6
|
+
* consumer: CLI ASCII rendering, audit log, BPMN export) can
|
|
7
|
+
* render without re-implementing the 18-step model.
|
|
8
|
+
*
|
|
9
|
+
* The transformer mirrors the 6-phase taxonomy from
|
|
10
|
+
* `phase_inference.ts`:
|
|
11
|
+
*
|
|
12
|
+
* phase_i -- triage / intent / audits
|
|
13
|
+
* phase_ii -- clarification (functional + 4 NFR + blocks plan)
|
|
14
|
+
* phase_iii -- specs (RFP + Arch + Design + approvals)
|
|
15
|
+
* phase_iv -- bootstrap
|
|
16
|
+
* phase_v -- block implementation (per blocks_progress)
|
|
17
|
+
* phase_vi -- deploy + postlaunch
|
|
18
|
+
*
|
|
19
|
+
* Status derivation:
|
|
20
|
+
* - active phase = `inferActivePhase()`
|
|
21
|
+
* - phases before active = 'done'
|
|
22
|
+
* - active phase = 'active' UNLESS the project is fully closed,
|
|
23
|
+
* in which case phase_vi flips from 'active' to 'done'.
|
|
24
|
+
* - phases after active = 'pending'
|
|
25
|
+
*
|
|
26
|
+
* Step counts are granular per phase (4/6/6/1/N/2) so callers
|
|
27
|
+
* can render a progress chip. `step_done_count` never exceeds
|
|
28
|
+
* `step_count`. Phase V step count defaults to 1 when no blocks
|
|
29
|
+
* have been planned yet (placeholder slot for UI sizing).
|
|
30
|
+
*
|
|
31
|
+
* Labels are i18n keys (`workflow.phase.<phase>`) -- never raw
|
|
32
|
+
* text. The consumer resolves them at render time per locale.
|
|
33
|
+
*
|
|
34
|
+
* ASCII-only.
|
|
35
|
+
*/
|
|
36
|
+
import type { WorkflowState } from './state.js';
|
|
37
|
+
import { type WorkflowPhase } from './phase_inference.js';
|
|
38
|
+
export type WorkflowGraphNodeStatus = 'pending' | 'active' | 'done';
|
|
39
|
+
export interface WorkflowGraphNode {
|
|
40
|
+
id: WorkflowPhase;
|
|
41
|
+
/** i18n catalog key -- `workflow.phase.i`..`workflow.phase.vi`. */
|
|
42
|
+
label_i18n_key: string;
|
|
43
|
+
status: WorkflowGraphNodeStatus;
|
|
44
|
+
/** Total atomic steps inside the phase (constant per phase, or
|
|
45
|
+
* derived for phase_v from blocks_progress.length). */
|
|
46
|
+
step_count: number;
|
|
47
|
+
/** How many of those steps have a recorded closure milestone. */
|
|
48
|
+
step_done_count: number;
|
|
49
|
+
}
|
|
50
|
+
export interface WorkflowGraphEdge {
|
|
51
|
+
from: WorkflowPhase;
|
|
52
|
+
to: WorkflowPhase;
|
|
53
|
+
}
|
|
54
|
+
export interface WorkflowGraph {
|
|
55
|
+
nodes: WorkflowGraphNode[];
|
|
56
|
+
edges: WorkflowGraphEdge[];
|
|
57
|
+
}
|
|
58
|
+
export declare function buildWorkflowGraph(state: WorkflowState | undefined | null): WorkflowGraph;
|
|
59
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/workflow/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAiB,aAAa,CAAC;IACjC,mEAAmE;IACnE,cAAc,EAAK,MAAM,CAAC;IAC1B,MAAM,EAAa,uBAAuB,CAAC;IAC3C;4DACwD;IACxD,UAAU,EAAS,MAAM,CAAC;IAC1B,iEAAiE;IACjE,eAAe,EAAI,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAI,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAeD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,aAAa,CAiCzF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { inferActivePhase } from './phase_inference.js';
|
|
2
|
+
const PHASES = [
|
|
3
|
+
'phase_i', 'phase_ii', 'phase_iii', 'phase_iv', 'phase_v', 'phase_vi',
|
|
4
|
+
];
|
|
5
|
+
const PHASE_LABEL_KEYS = {
|
|
6
|
+
phase_i: 'workflow.phase.i',
|
|
7
|
+
phase_ii: 'workflow.phase.ii',
|
|
8
|
+
phase_iii: 'workflow.phase.iii',
|
|
9
|
+
phase_iv: 'workflow.phase.iv',
|
|
10
|
+
phase_v: 'workflow.phase.v',
|
|
11
|
+
phase_vi: 'workflow.phase.vi',
|
|
12
|
+
};
|
|
13
|
+
export function buildWorkflowGraph(state) {
|
|
14
|
+
const wf = state || {};
|
|
15
|
+
const active = inferActivePhase(wf);
|
|
16
|
+
const allDone = isFullyClosed(wf);
|
|
17
|
+
const nodes = PHASES.map((phase) => {
|
|
18
|
+
const idx = PHASES.indexOf(phase);
|
|
19
|
+
const activeIdx = PHASES.indexOf(active);
|
|
20
|
+
const counts = countSteps(phase, wf);
|
|
21
|
+
let status;
|
|
22
|
+
if (allDone) {
|
|
23
|
+
status = 'done';
|
|
24
|
+
}
|
|
25
|
+
else if (idx < activeIdx) {
|
|
26
|
+
status = 'done';
|
|
27
|
+
}
|
|
28
|
+
else if (idx === activeIdx) {
|
|
29
|
+
status = 'active';
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
status = 'pending';
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
id: phase,
|
|
36
|
+
label_i18n_key: PHASE_LABEL_KEYS[phase],
|
|
37
|
+
status,
|
|
38
|
+
step_count: counts.total,
|
|
39
|
+
step_done_count: counts.done,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
const edges = [];
|
|
43
|
+
for (let i = 0; i < PHASES.length - 1; i++) {
|
|
44
|
+
edges.push({ from: PHASES[i], to: PHASES[i + 1] });
|
|
45
|
+
}
|
|
46
|
+
return { nodes, edges };
|
|
47
|
+
}
|
|
48
|
+
function countSteps(phase, wf) {
|
|
49
|
+
switch (phase) {
|
|
50
|
+
case 'phase_i': {
|
|
51
|
+
const total = 4;
|
|
52
|
+
let done = 0;
|
|
53
|
+
if (wf.tier)
|
|
54
|
+
done += 1;
|
|
55
|
+
if (wf.intent?.decided_at)
|
|
56
|
+
done += 1;
|
|
57
|
+
if (wf.legacy_audit?.ran_at)
|
|
58
|
+
done += 1;
|
|
59
|
+
if (wf.vault_inventory?.ran_at)
|
|
60
|
+
done += 1;
|
|
61
|
+
return { total, done };
|
|
62
|
+
}
|
|
63
|
+
case 'phase_ii': {
|
|
64
|
+
const total = 6;
|
|
65
|
+
const c = wf.clarification || {};
|
|
66
|
+
let done = 0;
|
|
67
|
+
const rounds = [
|
|
68
|
+
c.functional, c.nfr_quantitative, c.nfr_structural,
|
|
69
|
+
c.nfr_governance, c.nfr_operational,
|
|
70
|
+
];
|
|
71
|
+
for (const r of rounds) {
|
|
72
|
+
if (r && r.done_at)
|
|
73
|
+
done += 1;
|
|
74
|
+
}
|
|
75
|
+
if (c.blocks?.done_at)
|
|
76
|
+
done += 1;
|
|
77
|
+
return { total, done };
|
|
78
|
+
}
|
|
79
|
+
case 'phase_iii': {
|
|
80
|
+
const total = 6;
|
|
81
|
+
const s = wf.specs || {};
|
|
82
|
+
const a = wf.approvals || {};
|
|
83
|
+
let done = 0;
|
|
84
|
+
if (s.rfp?.done_at)
|
|
85
|
+
done += 1;
|
|
86
|
+
if (s.arch?.done_at)
|
|
87
|
+
done += 1;
|
|
88
|
+
if (s.design?.done_at)
|
|
89
|
+
done += 1;
|
|
90
|
+
if (a.rfp?.approved_at)
|
|
91
|
+
done += 1;
|
|
92
|
+
if (a.arch?.approved_at)
|
|
93
|
+
done += 1;
|
|
94
|
+
if (a.design?.approved_at)
|
|
95
|
+
done += 1;
|
|
96
|
+
return { total, done };
|
|
97
|
+
}
|
|
98
|
+
case 'phase_iv': {
|
|
99
|
+
const total = 1;
|
|
100
|
+
const done = wf.bootstrap?.done_at ? 1 : 0;
|
|
101
|
+
return { total, done };
|
|
102
|
+
}
|
|
103
|
+
case 'phase_v': {
|
|
104
|
+
const blocks = wf.blocks_progress || [];
|
|
105
|
+
if (blocks.length === 0) {
|
|
106
|
+
/* Placeholder slot so the UI reserves a chip for the phase
|
|
107
|
+
* even before block planning materialises. */
|
|
108
|
+
return { total: 1, done: 0 };
|
|
109
|
+
}
|
|
110
|
+
const done = blocks.filter((b) => b.status === 'green').length;
|
|
111
|
+
return { total: blocks.length, done };
|
|
112
|
+
}
|
|
113
|
+
case 'phase_vi': {
|
|
114
|
+
const total = 2;
|
|
115
|
+
let done = 0;
|
|
116
|
+
if (wf.deploy?.done_at)
|
|
117
|
+
done += 1;
|
|
118
|
+
if (wf.postlaunch?.manual_at)
|
|
119
|
+
done += 1;
|
|
120
|
+
return { total, done };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function isFullyClosed(wf) {
|
|
125
|
+
/* Project is fully closed when phase_vi has its closure
|
|
126
|
+
* milestones (deploy.done_at + postlaunch.manual_at). Mirrors
|
|
127
|
+
* the inferActivePhase return-of-phase_vi terminal case. */
|
|
128
|
+
const deployed = !!wf.deploy?.done_at;
|
|
129
|
+
const postlaunchD = !!wf.postlaunch?.manual_at;
|
|
130
|
+
if (!deployed || !postlaunchD)
|
|
131
|
+
return false;
|
|
132
|
+
/* Also require everything upstream so a stray deploy on top of
|
|
133
|
+
* an unfinished phase_v does not falsely mark the project done. */
|
|
134
|
+
const upstreamActive = inferActivePhase(wf);
|
|
135
|
+
return upstreamActive === 'phase_vi';
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/workflow/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow/state.d.ts
CHANGED
|
@@ -59,6 +59,34 @@
|
|
|
59
59
|
* ASCII-only.
|
|
60
60
|
*/
|
|
61
61
|
export type WorkflowTier = 'simple' | 'medium' | 'full';
|
|
62
|
+
/** Director sprint slice 14 -- language sovereignty.
|
|
63
|
+
* Captures the language chosen per component slot. Slots are
|
|
64
|
+
* open-ended so a project can add (e.g.) "edge-worker" without
|
|
65
|
+
* a schema change. */
|
|
66
|
+
export interface LanguageChoice {
|
|
67
|
+
/** Lowercase token. Examples: "ts", "go", "python", "rust",
|
|
68
|
+
* "swift", "kotlin", "dart", "java", "c#", "php", "ruby",
|
|
69
|
+
* "elixir", "sql", "hcl", "wasm". */
|
|
70
|
+
lang: string;
|
|
71
|
+
decided_at: string;
|
|
72
|
+
/** Who made this decision. "user" = explicit choice by the
|
|
73
|
+
* user. "director_suggested" = default the Director
|
|
74
|
+
* proposed + the user did not override. */
|
|
75
|
+
decided_by: 'user' | 'director_suggested';
|
|
76
|
+
/** Optional free-text rationale (preserved for audit). */
|
|
77
|
+
reason?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface LanguageChoicesState {
|
|
80
|
+
frontend?: LanguageChoice;
|
|
81
|
+
mobile?: LanguageChoice;
|
|
82
|
+
backend?: LanguageChoice;
|
|
83
|
+
data_pipeline?: LanguageChoice;
|
|
84
|
+
infra?: LanguageChoice;
|
|
85
|
+
db?: LanguageChoice;
|
|
86
|
+
ml?: LanguageChoice;
|
|
87
|
+
/** Forward-compat catch-all for adopter-specific slots. */
|
|
88
|
+
[other: string]: LanguageChoice | undefined;
|
|
89
|
+
}
|
|
62
90
|
export interface IntentState {
|
|
63
91
|
operation: 'migrate' | 'new' | 'modify' | null;
|
|
64
92
|
target: 'desktop' | 'mobile' | 'responsive' | 'web-and-mobile' | null;
|
|
@@ -178,6 +206,12 @@ export interface WorkflowState {
|
|
|
178
206
|
intent?: IntentState;
|
|
179
207
|
legacy_audit?: LegacyAuditState;
|
|
180
208
|
vault_inventory?: VaultInventoryState;
|
|
209
|
+
/** Director sprint phase II slice 14 -- language sovereignty.
|
|
210
|
+
* The user picks the language per slot; the Director suggests
|
|
211
|
+
* + persists choices here. Read/written via yujin.workflow.set
|
|
212
|
+
* /state. See docs/doctrine/language-sovereignty.md for the
|
|
213
|
+
* algorithm + suitability table. */
|
|
214
|
+
language_choices?: LanguageChoicesState;
|
|
181
215
|
clarification?: ClarificationState;
|
|
182
216
|
specs?: {
|
|
183
217
|
rfp?: SpecDocState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,WAAW,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/workflow/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Default design system -- Yujin DS first
|
|
2
|
+
|
|
3
|
+
Fetch when the user discusses UI / component design / look-and-
|
|
4
|
+
feel (signals: "componente", "modal", "sidebar", "card", "view",
|
|
5
|
+
"icon", "color", "fuente", "diseno", "interfaz", "UI", "form",
|
|
6
|
+
"button", "table", "kanban", "tabs"). Auto-injected on every
|
|
7
|
+
turn whose intent matches the UI heuristic.
|
|
8
|
+
|
|
9
|
+
## Rule (single source of truth)
|
|
10
|
+
|
|
11
|
+
The default front-end design system for any Forge-generated
|
|
12
|
+
project is **Yujin Design System** (`yujin-design-system/`). The
|
|
13
|
+
package ships with 258 DTCG-compliant tokens, 30 NAC3-attributed
|
|
14
|
+
component templates, 170 sumi-e icons + a kanji wordmark
|
|
15
|
+
catalog, and font references (Google Fonts CDN, no bundled
|
|
16
|
+
binaries).
|
|
17
|
+
|
|
18
|
+
When the user asks for a UI element, agents MUST:
|
|
19
|
+
|
|
20
|
+
1. Consult `yujin.design.list-templates` to see which Yujin
|
|
21
|
+
components cover the kind of element being requested.
|
|
22
|
+
2. Use `yujin.design.get-template({slug})` to retrieve the HTML
|
|
23
|
+
+ CSS + `nac3_attrs` + variants for the picked component.
|
|
24
|
+
3. Splice the template into the project; do NOT hand-roll an
|
|
25
|
+
equivalent layout from scratch.
|
|
26
|
+
4. Iconography: only pick from `yujin.design.list-sumie` (170
|
|
27
|
+
canonical icons). Use `yujin.design.get-icon({slug})` to
|
|
28
|
+
inline the SVG. Do NOT generate or import third-party icons
|
|
29
|
+
(no Material, no Font Awesome) unless the user explicitly
|
|
30
|
+
asks (override flow below).
|
|
31
|
+
5. Colors / typography / spacing: only via tokens from
|
|
32
|
+
`yujin.design.tokens()`. Do NOT hardcode `#3A4DBC` or
|
|
33
|
+
`font-family: Inter`; use `var(--color-accent)` and
|
|
34
|
+
`var(--font-family-sans)`.
|
|
35
|
+
|
|
36
|
+
## Override flow
|
|
37
|
+
|
|
38
|
+
The user CAN override the default ("usa shadcn", "use Material",
|
|
39
|
+
"this app needs Tailwind only", "I want my own brand colors"):
|
|
40
|
+
|
|
41
|
+
- Agent invokes `yujin.design.override({system_id, reason})`.
|
|
42
|
+
- This is `policy: 'approval_required'` so R8 opens a modal.
|
|
43
|
+
- The user confirms (or rejects); the choice persists in
|
|
44
|
+
`tenant_config.design_override`.
|
|
45
|
+
- Subsequent turns honor the override + the doctrine becomes a
|
|
46
|
+
soft suggestion ("Yujin DS is the Forge default, but this
|
|
47
|
+
tenant has overridden to <system>").
|
|
48
|
+
|
|
49
|
+
## Why this is the default
|
|
50
|
+
|
|
51
|
+
- Coherent visual language across every Forge-generated product
|
|
52
|
+
-- the user does not need to re-learn the look-and-feel per
|
|
53
|
+
product.
|
|
54
|
+
- 30 components are enough to compose every standard SaaS UX
|
|
55
|
+
(CRM, admin panel, marketing site, e-commerce, dashboard,
|
|
56
|
+
task tracker, settings).
|
|
57
|
+
- NAC3 attributes pre-applied -- every Yujin component is
|
|
58
|
+
voice-controllable + accessibility-ready out of the box.
|
|
59
|
+
- 170 sumi-e icons cover virtually every business concept
|
|
60
|
+
(finance, sales, support, manufacturing, quality, HR, mobile,
|
|
61
|
+
AI, comms, document, geo, weather, animal). One coherent
|
|
62
|
+
illustration style.
|
|
63
|
+
|
|
64
|
+
## Files in the package
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
yujin-design-system/
|
|
68
|
+
manifest.json catalog + version + license
|
|
69
|
+
tokens/
|
|
70
|
+
yujin-tokens.json 258 DTCG W3C tokens
|
|
71
|
+
yujin-tokens.css generated CSS (same source-of-truth)
|
|
72
|
+
components/
|
|
73
|
+
_index.json list of 30 components by category
|
|
74
|
+
button.yujin.json one file per component
|
|
75
|
+
card.yujin.json
|
|
76
|
+
... (30 total)
|
|
77
|
+
icons/
|
|
78
|
+
sumie/
|
|
79
|
+
manifest.json 170 icons with tags
|
|
80
|
+
branch-sakura.svg one SVG file per icon
|
|
81
|
+
... (170 total)
|
|
82
|
+
fonts/
|
|
83
|
+
README.md reference-only policy (Google Fonts CDN)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Six NAC3 verbs
|
|
87
|
+
|
|
88
|
+
| Verb | Returns | Policy |
|
|
89
|
+
|---------------------------------|----------------------------------------------------|--------------------|
|
|
90
|
+
| `yujin.design.list-templates` | `[{slug, category, description, variants}]` | safe |
|
|
91
|
+
| `yujin.design.get-template` | full ComponentTemplate (html, css, nac3, props) | safe |
|
|
92
|
+
| `yujin.design.list-sumie` | `[{slug, tags, file}]` (filtered by tag if given) | safe |
|
|
93
|
+
| `yujin.design.get-icon` | inline SVG string | safe |
|
|
94
|
+
| `yujin.design.tokens` | full DTCG token tree | safe |
|
|
95
|
+
| `yujin.design.override` | persists tenant_config.design_override | approval-required |
|
|
96
|
+
|
|
97
|
+
## What this doctrine does NOT cover
|
|
98
|
+
|
|
99
|
+
- Framework choice within TypeScript (Vue vs React vs Svelte).
|
|
100
|
+
See `docs/doctrine/language-sovereignty.md` -- the user
|
|
101
|
+
decides per slot, and the doctrine table records the choice.
|
|
102
|
+
- Build tooling (Vite vs Webpack vs esbuild). Out of scope.
|
|
103
|
+
- Theme switching per tenant. The override flow above persists
|
|
104
|
+
one choice per tenant; multi-theme support is a separate
|
|
105
|
+
feature.
|
|
106
|
+
|
|
107
|
+
## What the WORKERS (Analyst, Coder, Director) do with this
|
|
108
|
+
|
|
109
|
+
- **Analyst**: when extracting a spec that mentions UI elements
|
|
110
|
+
(forms, dashboards, modals), tag each one with the matching
|
|
111
|
+
Yujin component slug in `plan.components[]`. The Coder then
|
|
112
|
+
knows which template to pull.
|
|
113
|
+
- **Coder**: before writing ANY UI file, invoke
|
|
114
|
+
`yujin.design.list-templates` + `yujin.design.get-template`
|
|
115
|
+
for the components in the plan. Splice the templates. Apply
|
|
116
|
+
variants from the spec. Do NOT hand-write `.css` from
|
|
117
|
+
scratch.
|
|
118
|
+
- **Director**: when the user explicitly requests an override
|
|
119
|
+
("use shadcn"), invokes `yujin.design.override` instead of
|
|
120
|
+
silently accepting. The R8 modal confirms.
|