@a-company/paradigm 3.44.0 → 5.3.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/dist/{accept-orchestration-ZUWQUHSK.js → accept-orchestration-GX2YRWM4.js} +5 -5
- package/dist/{add-VSPZ6FM4.js → add-FZRKEGH4.js} +1 -1
- package/dist/agent-HYKC2LAK.js +387 -0
- package/dist/agent-loader-SJPJJS33.js +36 -0
- package/dist/{agents-suggest-65SER5IS.js → agents-suggest-DNSYJ6IA.js} +1 -1
- package/dist/{aggregate-SV3VGEIL.js → aggregate-H57K7PNV.js} +1 -1
- package/dist/{assess-UHBDYIK7.js → assess-4WVXZLZQ.js} +2 -2
- package/dist/{auto-24ICVUH4.js → auto-QFS5NHQU.js} +1 -1
- package/dist/{beacon-3SJV4DAP.js → beacon-KXZXYQHX.js} +1 -1
- package/dist/{calibration-WWHK73WU.js → calibration-V46G7JTY.js} +2 -2
- package/dist/{check-OLI6AUS6.js → check-OWAIWV23.js} +1 -1
- package/dist/{chunk-RP6TZYGE.js → chunk-2IO7JAG2.js} +1 -1
- package/dist/chunk-2T6BTYBN.js +712 -0
- package/dist/{chunk-CDMAMDSG.js → chunk-5VKJBNJL.js} +13 -5
- package/dist/{chunk-KB4XJWE3.js → chunk-6N3JTACN.js} +98 -437
- package/dist/chunk-7N7GSU6K.js +34 -0
- package/dist/chunk-A2L4TSLZ.js +526 -0
- package/dist/{chunk-P7XSBJE3.js → chunk-ABVQGRF7.js} +1 -1
- package/dist/{chunk-HIKKOCXY.js → chunk-EI32ZBE6.js} +1 -1
- package/dist/{chunk-QIOCFXDQ.js → chunk-EKGMAM62.js} +1 -1
- package/dist/chunk-EZ3GOCYC.js +132 -0
- package/dist/chunk-GGMI6C2L.js +1075 -0
- package/dist/{chunk-DS5QY37M.js → chunk-GTR2TBIJ.js} +247 -15
- package/dist/{chunk-QDXI2DHR.js → chunk-J2JEQRT3.js} +1 -1
- package/dist/{chunk-AKIMFN6I.js → chunk-JASGXLK3.js} +2 -2
- package/dist/chunk-KVDYJLTC.js +121 -0
- package/dist/{chunk-J4E6K5MG.js → chunk-LSRABQIY.js} +25 -1
- package/dist/chunk-MCMOGQMU.js +145 -0
- package/dist/{chunk-ZXMDA7VB.js → chunk-PDX44BCA.js} +1 -6
- package/dist/{chunk-SOBTKFSP.js → chunk-S2HO5MLR.js} +5 -0
- package/dist/{chunk-2SKXFXIT.js → chunk-S3ORKP3V.js} +10 -15
- package/dist/{chunk-ZMQA6SCO.js → chunk-S6MZ2IEX.js} +628 -228
- package/dist/chunk-TAIJOFOE.js +124 -0
- package/dist/{chunk-FS3WTUHY.js → chunk-TXESEO7Y.js} +6 -6
- package/dist/{chunk-7COU5S2Z.js → chunk-VL67H5IC.js} +1 -1
- package/dist/{chunk-QWA26UNO.js → chunk-WQITYKHM.js} +7 -7
- package/dist/{chunk-MW5DMGBB.js → chunk-YMDLDELF.js} +114 -55
- package/dist/{claude-63ISJAZK.js → claude-FRRWJSTJ.js} +1 -1
- package/dist/{claude-cli-ABML5RHX.js → claude-cli-XJLK2X4L.js} +1 -1
- package/dist/{claude-code-JRLMRPTO.js → claude-code-HTBA4XRB.js} +1 -1
- package/dist/{claude-code-teams-CAJBEFIZ.js → claude-code-teams-T4SP24MD.js} +1 -1
- package/dist/{conductor-HLWYWUVH.js → conductor-PGPDVIVE.js} +1 -1
- package/dist/{config-schema-3YNIFJCJ.js → config-schema-EA4XALGG.js} +4 -2
- package/dist/{constellation-FAGT45TU.js → constellation-A26CCGQS.js} +1 -1
- package/dist/{context-audit-557EO6PK.js → context-audit-RLO3ETRP.js} +8 -5
- package/dist/{cost-XEBADYFT.js → cost-BGM32XJU.js} +1 -1
- package/dist/{cost-UD3WPEKZ.js → cost-VI46A4XL.js} +1 -1
- package/dist/{cursor-cli-QUOOF2N4.js → cursor-cli-JVEZGHWQ.js} +1 -1
- package/dist/{cursorrules-3TKZ4E4R.js → cursorrules-HLIKJJZT.js} +1 -1
- package/dist/decision-loader-WWCLIQPJ.js +20 -0
- package/dist/{delete-RRK4RL6Y.js → delete-KBRPQLPC.js} +2 -2
- package/dist/{diff-IP5CIARP.js → diff-RQLLNAFI.js} +5 -5
- package/dist/{discipline-5F5OVTXB.js → discipline-FA4OZXIS.js} +1 -1
- package/dist/{dist-UXWV4OKX.js → dist-34NA5RS5.js} +1 -1
- package/dist/{dist-5QE2BB2B-X6DYVSUL.js → dist-5QE2BB2B-5S3T6Y3T.js} +1 -1
- package/dist/{dist-CM3MVWWW.js → dist-77JDTVAY.js} +1 -0
- package/dist/{dist-POMVY6WP.js → dist-QK4SQAK7.js} +1 -1
- package/dist/{dist-3RVKEJRT.js → dist-TA6LSC2Q.js} +1 -1
- package/dist/docs-LVLRPBAW.js +155 -0
- package/dist/docs-PBZB7LYP.js +89 -0
- package/dist/{doctor-GKZJU7QG.js → doctor-ULBOHEIC.js} +3 -3
- package/dist/{drift-YGT4LJ7Q.js → drift-R5NRKFHI.js} +1 -1
- package/dist/{echo-A6HD5UP7.js → echo-O2LY7CC2.js} +1 -1
- package/dist/{edit-4CLNN5JG.js → edit-R2HNLMOG.js} +2 -2
- package/dist/event-25OJKDCE.js +31 -0
- package/dist/{export-T7CMMJIB.js → export-IWVL7XLF.js} +1 -1
- package/dist/{flow-UFMPVOEM.js → flow-CRRVV3O3.js} +2 -2
- package/dist/{global-HHUJSBG5.js → global-3NG5JXUB.js} +1 -1
- package/dist/graduate-USAWGBJM.js +160 -0
- package/dist/{graph-YYUXI3F7.js → graph-VHUMAAS6.js} +2 -2
- package/dist/{graph-server-ZPXRSGCW.js → graph-server-YL22VBBN.js} +1 -1
- package/dist/{habits-RG5SVKXP.js → habits-OL5NGPXO.js} +3 -3
- package/dist/{history-CETCSUCP.js → history-WOWC573W.js} +1 -1
- package/dist/{hooks-TCUHQMPF.js → hooks-HFWSCGPV.js} +2 -2
- package/dist/index.js +307 -184
- package/dist/{integrity-MK2OP5TA.js → integrity-IHO4FZTS.js} +1 -1
- package/dist/{integrity-checker-J7YXRTBT.js → integrity-checker-PSKJA5SB.js} +1 -0
- package/dist/journal-loader-5EYSBFFY.js +18 -0
- package/dist/{lint-HYWGS3JJ.js → lint-K6CJGGPH.js} +1 -1
- package/dist/{list-IUCYPGMK.js → list-4YK7QKFF.js} +1 -1
- package/dist/{list-BTLFHSRC.js → list-ENR7Q4CR.js} +2 -2
- package/dist/{lore-loader-VTEEZDX3.js → lore-loader-7NO6N6FT.js} +4 -1
- package/dist/{lore-server-NOOAHKJX.js → lore-server-UNJY5KC3.js} +1 -1
- package/dist/{manual-AFJ2J2V3.js → manual-G6FISID5.js} +1 -1
- package/dist/mcp.js +3954 -479
- package/dist/{migrate-FQVGQNXZ.js → migrate-LS45DNEV.js} +2 -2
- package/dist/{migrate-assessments-JP6Q5KME.js → migrate-assessments-RGH4O6IX.js} +2 -2
- package/dist/nomination-engine-Q4XSXFKT.js +40 -0
- package/dist/notebook-YWIYGEHV.js +155 -0
- package/dist/{orchestrate-A226N6FC.js → orchestrate-XZA33TJC.js} +5 -5
- package/dist/peers-DEOUIZM6.js +82 -0
- package/dist/persona-UHAHIVST.js +390 -0
- package/dist/{pipeline-3G2FRAKM.js → pipeline-L4HCSBGN.js} +1 -1
- package/dist/{platform-server-KHL6ZPPN.js → platform-server-PMD57BEG.js} +264 -18
- package/dist/{plugin-update-checker-HMRPGY5Z.js → plugin-update-checker-ELOEEQYS.js} +1 -0
- package/dist/{portal-check-FF5EKZE5.js → portal-check-NPYGII2D.js} +2 -2
- package/dist/{portal-compliance-VU4NIFEN.js → portal-compliance-J7DGAPFX.js} +2 -2
- package/dist/{probe-7JK7IDNI.js → probe-MHL5HQZ2.js} +3 -3
- package/dist/{promote-XO63XMAN.js → promote-F6ZYZZAL.js} +2 -2
- package/dist/{providers-YNFSL6HK.js → providers-GK7PB2OL.js} +2 -2
- package/dist/{quiz-I75NU2QQ.js → quiz-M66SC7F7.js} +1 -1
- package/dist/{record-46CLR4OG.js → record-RA4WR2BO.js} +2 -2
- package/dist/{reindex-WIJMCJ4A.js → reindex-HRA2AUS6.js} +3 -2
- package/dist/{remember-4EUZKIIB.js → remember-HBWJ655S.js} +1 -1
- package/dist/{retag-KC4JVRLE.js → retag-3OLCVDEQ.js} +2 -2
- package/dist/{review-Q7M4CRB5.js → review-27ATYTD2.js} +2 -2
- package/dist/review-57QMURZV.js +334 -0
- package/dist/{ripple-RI3LOT6R.js → ripple-JPBXP5I3.js} +1 -1
- package/dist/{sentinel-UOIGJWHH.js → sentinel-4XIG4STA.js} +2 -2
- package/dist/{sentinel-bridge-APDXYAZS.js → sentinel-bridge-MDUXTQRL.js} +2 -2
- package/dist/{serve-JVXSRSUB.js → serve-FLTFTM3P.js} +2 -2
- package/dist/{serve-22A4XOIG.js → serve-INL7SNBK.js} +2 -2
- package/dist/{serve-2YJ6D2Y6.js → serve-KBSE36PL.js} +4 -4
- package/dist/{server-JV6UFGWZ.js → server-54SKYFFY.js} +2 -2
- package/dist/{server-RDLQ3DK7.js → server-XUOIO7E6.js} +1 -1
- package/dist/{setup-YNZJQLW7.js → setup-EDS27WUR.js} +1 -1
- package/dist/{setup-M2ZKLKNN.js → setup-KO5AFC4K.js} +2 -2
- package/dist/{shift-LNMKFYLR.js → shift-VFG23DLA.js} +16 -16
- package/dist/{show-P7GYO43X.js → show-5PV5KFJE.js} +2 -2
- package/dist/{show-PKZMYKRN.js → show-NQKYX6WQ.js} +1 -1
- package/dist/{snapshot-Y3COXK4T.js → snapshot-BK4RBPCG.js} +1 -1
- package/dist/{spawn-SSXZX45U.js → spawn-AW6GDECS.js} +3 -3
- package/dist/{status-KLHALGW4.js → status-WGIAQODY.js} +1 -1
- package/dist/{summary-5NQNOD3F.js → summary-NIRABMF5.js} +2 -2
- package/dist/{sweep-EZU3GU6S.js → sweep-QMHNSIY5.js} +2 -2
- package/dist/{switch-WYUMVNA5.js → switch-6EJPZDIA.js} +1 -1
- package/dist/{symphony-EYRGGVNE.js → symphony-4OCY36AI.js} +350 -29
- package/dist/{symphony-QWOEKZMC.js → symphony-B75X2MME.js} +20 -2
- package/dist/symphony-peers-2ZQYLRNI.js +34 -0
- package/dist/symphony-peers-OL7F6M5S.js +121 -0
- package/dist/symphony-relay-UJYUXN65.js +710 -0
- package/dist/{sync-ZM4Q3R4U.js → sync-VEHUH4OA.js} +3 -3
- package/dist/{sync-llms-JIPP3XX4.js → sync-llms-YHCFIE6X.js} +2 -2
- package/dist/{task-loader-7M2FCBX6.js → task-loader-LDYWQSLM.js} +1 -0
- package/dist/{team-HGLJXWQG.js → team-7HG7XK5C.js} +6 -6
- package/dist/{test-WTR5Q33E.js → test-566CP5KC.js} +1 -1
- package/dist/{thread-3WM7KKID.js → thread-N754I4D5.js} +1 -1
- package/dist/{timeline-ANC7LVDL.js → timeline-M3CICQFE.js} +2 -2
- package/dist/{triage-IZ4MDYNB.js → triage-HHYGT3HY.js} +1 -1
- package/dist/{tutorial-GC6QL4US.js → tutorial-KD22SUNO.js} +1 -1
- package/dist/university-content/courses/.purpose +66 -0
- package/dist/university-content/courses/para-401.json +146 -0
- package/dist/university-content/courses/para-501.json +151 -0
- package/dist/university-content/courses/para-601.json +608 -0
- package/dist/university-content/plsat/.purpose +6 -0
- package/dist/university-content/plsat/v2.0.json +2 -2
- package/dist/university-content/plsat/v3.0.json +563 -3
- package/dist/university-content/reference.json +91 -0
- package/dist/{upgrade-ANX3LVSA.js → upgrade-H5PF32BW.js} +2 -2
- package/dist/{validate-GD5XWILV.js → validate-CNKEKO6A.js} +1 -1
- package/dist/{validate-ITC5D6QG.js → validate-MB5ULIHS.js} +1 -1
- package/dist/{validate-ZVPNN4FL.js → validate-QH3LADM6.js} +1 -1
- package/dist/{watch-X64UK7K4.js → watch-2TKP5PVL.js} +3 -3
- package/dist/{watch-ERBEJUJW.js → watch-ZF4ML6CD.js} +2 -2
- package/dist/{wisdom-L2WC7J62.js → wisdom-AATMGNFA.js} +1 -1
- package/dist/work-log-loader-5L45XNYZ.js +14 -0
- package/dist/{workspace-UIUTHZTD.js → workspace-6E6OSRNU.js} +4 -4
- package/package.json +1 -1
- package/platform-ui/dist/assets/DocsSection-ByAgPzWV.js +1 -0
- package/platform-ui/dist/assets/DocsSection-CjdO6R-u.css +1 -0
- package/platform-ui/dist/assets/{GitSection-BD3Ze06e.js → GitSection-BLovj9yT.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-SglITfSs.js → GraphSection-C5PCPUFl.js} +1 -1
- package/platform-ui/dist/assets/{LoreSection-bR5Km4Fd.js → LoreSection-BftejTla.js} +1 -1
- package/platform-ui/dist/assets/{SentinelSection-QSpAZArG.js → SentinelSection-CnYcasN7.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-CobYJgvg.js → SymphonySection-BpmqCHeK.js} +1 -1
- package/platform-ui/dist/assets/{index-DbxeSMkV.js → index-G9JnWEs_.js} +10 -10
- package/platform-ui/dist/index.html +1 -1
- package/dist/dist-PSF5CP4I.js +0 -7294
|
@@ -294,6 +294,55 @@
|
|
|
294
294
|
"description": "Approve or deny a pending file request. Called by the owning agent after the human confirms via Conductor prompt or CLI. Supports approve, deny, and approve-redacted actions.",
|
|
295
295
|
"when": "When a human has reviewed a file request and made a decision. The agent calls this tool to execute the approval or denial.",
|
|
296
296
|
"example": "paradigm_symphony_approve_file({ requestId: 'req-abc123', action: 'approve' })"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "paradigm-ambient-nominations",
|
|
300
|
+
"name": "paradigm_ambient_nominations",
|
|
301
|
+
"description": "Get pending agent nominations — agents that self-nominated based on recent events. Marks returned nominations as surfaced.",
|
|
302
|
+
"when": "When you want to see what agents noticed and want to contribute.",
|
|
303
|
+
"example": "paradigm_ambient_nominations({ pending_only: true })"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"id": "paradigm-ambient-events",
|
|
307
|
+
"name": "paradigm_ambient_events",
|
|
308
|
+
"description": "Query the ambient event stream — recent tool calls, file edits, gate checks, and other project activity.",
|
|
309
|
+
"when": "When you need to understand recent project activity or debug event flow.",
|
|
310
|
+
"example": "paradigm_ambient_events({ since: '1h', limit: 20 })"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "paradigm-ambient-engage",
|
|
314
|
+
"name": "paradigm_ambient_engage",
|
|
315
|
+
"description": "Accept, dismiss, or defer a nomination. Optionally resolves a debate.",
|
|
316
|
+
"when": "When responding to an agent's self-nominated contribution.",
|
|
317
|
+
"example": "paradigm_ambient_engage({ nomination_id: 'nom-...', response: 'accepted' })"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"id": "paradigm-context-compose",
|
|
321
|
+
"name": "paradigm_context_compose",
|
|
322
|
+
"description": "Compose full agent session context: profile enrichment + decisions + journal insights + nominations.",
|
|
323
|
+
"when": "When building a rich context block for an agent session or orchestration.",
|
|
324
|
+
"example": "paradigm_context_compose({ agent: 'security', symbols: ['^authenticated'] })"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "paradigm-work-log-record",
|
|
328
|
+
"name": "paradigm_work_log_record",
|
|
329
|
+
"description": "Record a work log entry — what got done. Auto-attached to sprint boards.",
|
|
330
|
+
"when": "After completing a work task, to log the outcome and files modified.",
|
|
331
|
+
"example": "paradigm_work_log_record({ agent: 'builder', summary: 'Added auth', outcome: 'pass' })"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"id": "paradigm-journal-record",
|
|
335
|
+
"name": "paradigm_journal_record",
|
|
336
|
+
"description": "Record a learning journal entry — what an agent learned. Agent-private, travels across projects.",
|
|
337
|
+
"when": "When an agent has a learning moment (correction, pattern discovery, failure analysis).",
|
|
338
|
+
"example": "paradigm_journal_record({ agent: 'security', trigger: 'pattern_discovered', insight: '...', project: 'my-app', transferable: true })"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"id": "paradigm-decision-record",
|
|
342
|
+
"name": "paradigm_decision_record",
|
|
343
|
+
"description": "Record a team decision — what we decided and why. Institutional memory with rationale.",
|
|
344
|
+
"when": "When a significant architectural or design decision is made.",
|
|
345
|
+
"example": "paradigm_decision_record({ title: 'Use Redis', decision: 'Redis over Memcached', rationale: 'Need persistence', participants: [...] })"
|
|
297
346
|
}
|
|
298
347
|
]
|
|
299
348
|
},
|
|
@@ -710,6 +759,48 @@
|
|
|
710
759
|
"when": "Automatic — happens on every paradigm_aspect_confirm call."
|
|
711
760
|
}
|
|
712
761
|
]
|
|
762
|
+
},
|
|
763
|
+
{
|
|
764
|
+
"id": "ambient",
|
|
765
|
+
"title": "Ambient Coordination",
|
|
766
|
+
"cards": [
|
|
767
|
+
{
|
|
768
|
+
"id": "event-stream",
|
|
769
|
+
"name": "Event Stream",
|
|
770
|
+
"description": "Append-only JSONL log of project activity — tool calls, file edits, gate checks, decisions. Foundation for ambient coordination.",
|
|
771
|
+
"when": "Events are emitted automatically by MCP tool calls and hooks. Query with paradigm_ambient_events."
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
"id": "attention-scoring",
|
|
775
|
+
"name": "Attention Scoring",
|
|
776
|
+
"description": "Four-dimension relevance scoring (symbol, path, concept, signal) that determines which agents notice which events. Max-based scoring with configurable threshold.",
|
|
777
|
+
"when": "Happens automatically when events are processed. Configure via agent attention patterns in .agent files."
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"id": "nominations",
|
|
781
|
+
"name": "Nominations",
|
|
782
|
+
"description": "Self-nominated agent contributions triggered by high attention scores. Include brief, urgency, type, and evidence. Surfaced to humans via paradigm_ambient_nominations.",
|
|
783
|
+
"when": "Agents above their attention threshold automatically generate nominations. Engage with paradigm_ambient_engage."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"id": "knowledge-streams",
|
|
787
|
+
"name": "Knowledge Streams",
|
|
788
|
+
"description": "Three distinct data streams: Work Log (what got done), Learning Journal (what I learned), Team Decisions (what we decided). Different audiences, lifecycles, and storage.",
|
|
789
|
+
"when": "Record with paradigm_work_log_record, paradigm_journal_record, paradigm_decision_record."
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"id": "trust-rings",
|
|
793
|
+
"name": "Trust Rings",
|
|
794
|
+
"description": "Four concentric data sovereignty levels: project-locked → user-scoped → creator-upstream → network-public. Configured in .paradigm/data-policy.yaml.",
|
|
795
|
+
"when": "Applied automatically at enforcement boundaries. All data is project-locked by default."
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"id": "data-policy",
|
|
799
|
+
"name": "Data Policy",
|
|
800
|
+
"description": "YAML-configured rules controlling what agents can observe, what content reaches each stream, and what flows upstream. Per-agent overrides supported.",
|
|
801
|
+
"when": "Create .paradigm/data-policy.yaml to customize. DEFAULT_DATA_POLICY applies when no file exists."
|
|
802
|
+
}
|
|
803
|
+
]
|
|
713
804
|
}
|
|
714
805
|
]
|
|
715
806
|
}
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
detectIDE,
|
|
4
4
|
loadParadigmFiles,
|
|
5
5
|
syncToIDE
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6N3JTACN.js";
|
|
7
7
|
import {
|
|
8
8
|
parseParadigmConfig,
|
|
9
9
|
serializeParadigmConfig
|
|
10
10
|
} from "./chunk-YO6DVTL7.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-PDX44BCA.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/upgrade.ts
|
|
14
14
|
import * as fs from "fs";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-PDX44BCA.js";
|
|
3
3
|
|
|
4
4
|
// src/commands/portal/watch.ts
|
|
5
5
|
import * as path from "path";
|
|
6
6
|
import * as fs from "fs";
|
|
7
|
+
import * as yaml from "js-yaml";
|
|
7
8
|
import chalk from "chalk";
|
|
8
9
|
import ora from "ora";
|
|
9
10
|
import open from "open";
|
|
@@ -125,9 +126,8 @@ async function portalExportCommand(targetPath, options = {}) {
|
|
|
125
126
|
console.error(chalk.red(`portal.yaml not found at ${configPath}`));
|
|
126
127
|
process.exit(1);
|
|
127
128
|
}
|
|
128
|
-
const { parse } = await import("./dist-PSF5CP4I.js");
|
|
129
129
|
const raw = fs.readFileSync(configPath, "utf8");
|
|
130
|
-
const config =
|
|
130
|
+
const config = yaml.load(raw);
|
|
131
131
|
const gates = config.gates || {};
|
|
132
132
|
const routes = config.routes || {};
|
|
133
133
|
let output;
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
detectIDE,
|
|
4
4
|
loadParadigmFiles,
|
|
5
5
|
syncToIDE
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6N3JTACN.js";
|
|
7
7
|
import "./chunk-YO6DVTL7.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-PDX44BCA.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/watch.ts
|
|
11
11
|
import * as fs from "fs";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
getWorkLogSummary,
|
|
4
|
+
loadWorkLogEntries,
|
|
5
|
+
loadWorkLogEntry,
|
|
6
|
+
recordWorkLog
|
|
7
|
+
} from "./chunk-TAIJOFOE.js";
|
|
8
|
+
import "./chunk-7N7GSU6K.js";
|
|
9
|
+
export {
|
|
10
|
+
getWorkLogSummary,
|
|
11
|
+
loadWorkLogEntries,
|
|
12
|
+
loadWorkLogEntry,
|
|
13
|
+
recordWorkLog
|
|
14
|
+
};
|
|
@@ -4,15 +4,15 @@ import {
|
|
|
4
4
|
workspaceInitCommand,
|
|
5
5
|
workspaceReindexCommand,
|
|
6
6
|
workspaceStatusCommand
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-ABVQGRF7.js";
|
|
8
|
+
import "./chunk-VL67H5IC.js";
|
|
9
9
|
import "./chunk-36TKPM5Z.js";
|
|
10
10
|
import "./chunk-ZGUAAVMA.js";
|
|
11
11
|
import "./chunk-EDOAWN7J.js";
|
|
12
12
|
import "./chunk-IRKUEJVW.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-J2JEQRT3.js";
|
|
14
14
|
import "./chunk-4NCFWYGG.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-PDX44BCA.js";
|
|
16
16
|
export {
|
|
17
17
|
detectProjectRole,
|
|
18
18
|
workspaceInitCommand,
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as u,r as x,j as s,R as b}from"./index-G9JnWEs_.js";const d=u((a,e)=>({manifest:null,activePage:null,pageData:null,searchQuery:"",searchResults:[],loading:!1,searchLoading:!1,sidebarCollapsed:{},fetchManifest:async()=>{try{const n=await fetch("/api/docs/manifest");if(n.ok){const r=await n.json();a({manifest:r});const o={};for(const l of r.groups||[])if(o[l.id]=l.collapsed,l.subgroups)for(const i of l.subgroups)o[`${l.id}/${i.id}`]=i.collapsed;a({sidebarCollapsed:o})}}catch{}},selectPage:async(n,r)=>{a({loading:!0,activePage:{kind:n,id:r}});try{let o="";switch(n){case"symbol":o=`/api/docs/symbol/${encodeURIComponent(r)}`;break;case"flow":o=`/api/docs/flow/${encodeURIComponent(r)}`;break;case"portal":o="/api/docs/portal";break;case"custom":o=`/api/docs/page/${encodeURIComponent(r)}`;break}const l=await fetch(o);if(l.ok){const i=await l.json();a({pageData:i,loading:!1})}else a({pageData:null,loading:!1})}catch{a({pageData:null,loading:!1})}},search:async n=>{if(a({searchQuery:n,searchLoading:!0}),!n.trim()){a({searchResults:[],searchLoading:!1});return}try{const r=await fetch(`/api/docs/search?q=${encodeURIComponent(n)}&limit=20`);if(r.ok){const o=await r.json();a({searchResults:o.results||[],searchLoading:!1})}else a({searchResults:[],searchLoading:!1})}catch{a({searchResults:[],searchLoading:!1})}},clearSearch:()=>a({searchQuery:"",searchResults:[]}),toggleGroup:n=>{const r=e().sidebarCollapsed;a({sidebarCollapsed:{...r,[n]:!r[n]}})}})),y={component:"var(--p-symbol-component)",flow:"var(--p-symbol-flow)",gate:"var(--p-symbol-gate)",signal:"var(--p-symbol-signal)",aspect:"var(--p-symbol-aspect)",custom:"var(--p-accent-blue)",portal:"var(--p-accent-orange)",guide:"var(--p-accent-green)"},N={component:"#",flow:"$",gate:"^",signal:"!",aspect:"~"};function f(){const a=d(c=>c.manifest),e=d(c=>c.activePage),n=d(c=>c.searchQuery),r=d(c=>c.sidebarCollapsed),o=d(c=>c.selectPage),l=d(c=>c.search),i=d(c=>c.clearSearch),t=d(c=>c.toggleGroup),h=x.useCallback(c=>{const g=c.target.value;g?l(g):i()},[l,i]),m=x.useCallback(c=>{i(),o({component:"symbol",signal:"symbol",aspect:"symbol",gate:"symbol",flow:"flow",portal:"portal",custom:"custom",guide:"custom"}[c.kind]||"symbol",c.id)},[o,i]);return a?s.jsxs("div",{className:"docs-sidebar",children:[s.jsx("div",{className:"docs-sidebar__search",children:s.jsx("input",{type:"text",placeholder:"Search docs...",value:n,onChange:h,className:"docs-sidebar__search-input"})}),s.jsx("div",{className:"docs-sidebar__groups",children:a.groups.map(c=>s.jsx(_,{group:c,collapsed:r[c.id]??c.collapsed,activePage:e,sidebarCollapsed:r,onToggle:t,onItemClick:m},c.id))})]}):s.jsx("div",{className:"docs-sidebar docs-sidebar--loading",children:"Loading..."})}function _({group:a,collapsed:e,activePage:n,sidebarCollapsed:r,onToggle:o,onItemClick:l}){var i;return s.jsxs("div",{className:"docs-sidebar__group",children:[s.jsxs("button",{className:"docs-sidebar__group-header",onClick:()=>o(a.id),children:[s.jsx("span",{className:"docs-sidebar__group-arrow",children:e?"▸":"▾"}),s.jsx("span",{className:"docs-sidebar__group-label",children:a.label}),s.jsx("span",{className:"docs-sidebar__group-count",children:a.items.length})]}),!e&&s.jsxs(s.Fragment,{children:[(i=a.subgroups)==null?void 0:i.map(t=>s.jsx(_,{group:t,collapsed:r[`${a.id}/${t.id}`]??t.collapsed,activePage:n,sidebarCollapsed:r,onToggle:h=>o(`${a.id}/${h}`),onItemClick:l},t.id)),a.items.map(t=>s.jsxs("button",{className:`docs-sidebar__item ${(n==null?void 0:n.id)===t.id?"docs-sidebar__item--active":""}`,onClick:()=>l(t),title:t.description,children:[s.jsx("span",{className:"docs-sidebar__item-prefix",style:{color:y[t.kind]},children:N[t.kind]||""}),s.jsx("span",{className:"docs-sidebar__item-label",children:t.label}),t.badge&&s.jsx("span",{className:"docs-sidebar__item-badge",children:t.badge})]},t.id))]})]})}const v={"#":"var(--p-symbol-component)",$:"var(--p-symbol-flow)","^":"var(--p-symbol-gate)","!":"var(--p-symbol-signal)","~":"var(--p-symbol-aspect)"};function p({symbol:a,label:e}){const n=d(m=>m.selectPage),r=d(m=>m.clearSearch),o=a.charAt(0),l=v[o]||"var(--p-text-primary)",i=a.replace(/^[#$^!~]/,""),h={"#":"symbol",$:"flow","^":"symbol","!":"symbol","~":"symbol"}[o]||"symbol";return s.jsx("button",{className:"symbol-link",style:{color:l},onClick:()=>{r(),n(h,i)},title:e||a,children:e||a})}function k({entries:a}){return a.length===0?null:s.jsx("table",{className:"docs-table docs-table--properties",children:s.jsx("tbody",{children:a.map(e=>s.jsxs("tr",{children:[s.jsx("td",{className:"docs-table__key",children:e.key}),s.jsx("td",{className:"docs-table__value",children:s.jsx("code",{children:e.value})})]},e.key))})})}function w({data:a}){var n,r,o,l,i,t,h,m;const e=a;return s.jsxs("div",{className:"docs-page docs-page--symbol",children:[s.jsxs("header",{className:"docs-page__header",children:[s.jsx("span",{className:"docs-page__symbol","data-kind":e.category,children:e.symbol}),s.jsx("h1",{className:"docs-page__title",children:e.name}),e.componentType&&s.jsx("span",{className:"docs-page__type",children:e.componentType})]}),e.description&&s.jsx("p",{className:"docs-page__description",children:e.description}),((n=e.tags)==null?void 0:n.length)>0&&s.jsx("div",{className:"docs-page__tags",children:e.tags.map(c=>s.jsx("span",{className:"docs-page__tag",children:c},c))}),s.jsx(k,{entries:[{key:"Path",value:e.path},...e.parent?[{key:"Parent",value:e.parent}]:[],...(r=e.children)!=null&&r.length?[{key:"Children",value:e.children.join(", ")}]:[]]}),((o=e.related)==null?void 0:o.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Related Symbols"}),s.jsx("div",{className:"docs-page__symbol-list",children:e.related.map(c=>s.jsx(p,{symbol:c},c))})]}),((l=e.referencedBy)==null?void 0:l.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Referenced By"}),s.jsx("div",{className:"docs-page__symbol-list",children:e.referencedBy.map(c=>s.jsx(p,{symbol:c},c))})]}),((i=e.references)==null?void 0:i.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"References"}),s.jsx("div",{className:"docs-page__symbol-list",children:e.references.map(c=>s.jsx(p,{symbol:c},c))})]}),((t=e.flows)==null?void 0:t.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Flows"}),s.jsx("div",{className:"docs-page__symbol-list",children:e.flows.map(c=>s.jsx(p,{symbol:`$${c.id}`,label:c.name},c.id))})]}),((h=e.gates)==null?void 0:h.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Gates"}),s.jsx("div",{className:"docs-page__symbol-list",children:e.gates.map(c=>s.jsx(p,{symbol:`^${c.id}`,label:c.description},c.id))})]}),((m=e.guides)==null?void 0:m.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Related Guides"}),e.guides.map(c=>s.jsx("div",{className:"docs-page__guide",children:c.title},c.id))]})]})}const j={gate:"var(--p-symbol-gate)",action:"var(--p-symbol-component)",signal:"var(--p-symbol-signal)"};function S({steps:a}){return s.jsx("div",{className:"flow-steps",children:a.map((e,n)=>s.jsxs("div",{className:"flow-steps__step",children:[s.jsxs("div",{className:"flow-steps__connector",children:[s.jsx("span",{className:"flow-steps__dot",style:{background:j[e.type]||"var(--p-text-muted)"}}),n<a.length-1&&s.jsx("span",{className:"flow-steps__line"})]}),s.jsxs("div",{className:"flow-steps__content",children:[s.jsx("span",{className:"flow-steps__type",style:{color:j[e.type]},children:e.type}),s.jsx(p,{symbol:e.symbol}),e.description&&s.jsx("span",{className:"flow-steps__desc",children:e.description})]})]},n))})}function R({data:a}){var n,r;const e=a;return s.jsxs("div",{className:"docs-page docs-page--flow",children:[s.jsxs("header",{className:"docs-page__header",children:[s.jsx("span",{className:"docs-page__symbol","data-kind":"flows",children:e.symbol}),s.jsx("h1",{className:"docs-page__title",children:e.name})]}),e.description&&s.jsx("p",{className:"docs-page__description",children:e.description}),e.trigger&&s.jsxs("div",{className:"docs-page__trigger",children:[s.jsx("strong",{children:"Trigger:"})," ",s.jsx("code",{children:e.trigger})]}),((n=e.steps)==null?void 0:n.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Steps"}),s.jsx(S,{steps:e.steps})]}),e.successSignal&&s.jsxs("div",{className:"docs-page__signal",children:[s.jsx("strong",{children:"Success:"})," ",s.jsx(p,{symbol:e.successSignal})]}),e.errorSignal&&s.jsxs("div",{className:"docs-page__signal docs-page__signal--error",children:[s.jsx("strong",{children:"Error:"})," ",s.jsx(p,{symbol:e.errorSignal})]}),((r=e.tags)==null?void 0:r.length)>0&&s.jsx("div",{className:"docs-page__tags",children:e.tags.map(o=>s.jsx("span",{className:"docs-page__tag",children:o},o))})]})}function $({gates:a}){return a.length===0?s.jsx("span",{className:"gate-chain--empty",children:"none"}):s.jsx("span",{className:"gate-chain",children:a.map((e,n)=>s.jsxs(b.Fragment,{children:[n>0&&s.jsx("span",{className:"gate-chain__separator",children:" → "}),s.jsx(p,{symbol:e.symbol,label:e.description||e.symbol})]},e.symbol))})}function C({data:a}){var n,r;const e=a;return s.jsxs("div",{className:"docs-page docs-page--portal",children:[s.jsx("header",{className:"docs-page__header",children:s.jsx("h1",{className:"docs-page__title",children:"Portal — Gates & Routes"})}),((n=e.gates)==null?void 0:n.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Gates"}),s.jsxs("table",{className:"docs-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Gate"}),s.jsx("th",{children:"Description"}),s.jsx("th",{children:"Routes"})]})}),s.jsx("tbody",{children:e.gates.map(o=>{var l;return s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx(p,{symbol:o.symbol})}),s.jsx("td",{children:o.description}),s.jsx("td",{children:((l=o.routes)==null?void 0:l.length)||0})]},o.symbol)})})]})]}),((r=e.routes)==null?void 0:r.length)>0&&s.jsxs("section",{className:"docs-page__section",children:[s.jsx("h2",{children:"Routes"}),s.jsxs("table",{className:"docs-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Method"}),s.jsx("th",{children:"Route"}),s.jsx("th",{children:"Gate Chain"})]})}),s.jsx("tbody",{children:e.routes.map((o,l)=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{className:"docs-method",children:o.method})}),s.jsx("td",{children:s.jsx("code",{children:o.route})}),s.jsx("td",{children:s.jsx($,{gates:o.gates||[]})})]},l))})]})]}),(!e.gates||e.gates.length===0)&&(!e.routes||e.routes.length===0)&&s.jsx("p",{className:"docs-page__empty",children:"No portal.yaml found. Add one to document your API authorization."})]})}function P({data:a}){const e=a;return s.jsxs("div",{className:"docs-page docs-page--custom",children:[s.jsx("header",{className:"docs-page__header",children:s.jsx("h1",{className:"docs-page__title",children:e.title||e.slug})}),e.description&&s.jsx("p",{className:"docs-page__description",children:e.description}),s.jsx("div",{className:"docs-page__body",dangerouslySetInnerHTML:{__html:D(e.body||"")}})]})}function D(a){return a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/^### (.+)$/gm,"<h3>$1</h3>").replace(/^## (.+)$/gm,"<h2>$1</h2>").replace(/^# (.+)$/gm,"<h1>$1</h1>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/`([^`]+)`/g,"<code>$1</code>").replace(/\n\n/g,"</p><p>").replace(/^/,"<p>").replace(/$/,"</p>")}function L(){const a=d(l=>l.searchResults),e=d(l=>l.searchQuery),n=d(l=>l.searchLoading),r=d(l=>l.selectPage),o=d(l=>l.clearSearch);return n?s.jsx("div",{className:"docs__loading",children:"Searching..."}):s.jsxs("div",{className:"docs-search",children:[s.jsxs("h2",{className:"docs-search__title",children:[a.length," result",a.length!==1?"s":"",' for "',e,'"']}),a.length===0&&s.jsx("p",{className:"docs-search__empty",children:"No matching documentation found."}),s.jsx("div",{className:"docs-search__results",children:a.map(l=>s.jsxs("button",{className:"docs-search__result",onClick:()=>{o(),r({component:"symbol",signal:"symbol",aspect:"symbol",gate:"symbol",flow:"flow",portal:"portal",custom:"custom"}[l.kind]||"symbol",l.id)},children:[s.jsxs("div",{className:"docs-search__result-header",children:[s.jsx("span",{className:"docs-search__result-kind","data-kind":l.kind,children:l.kind}),s.jsx("span",{className:"docs-search__result-label",children:l.label})]}),s.jsx("p",{className:"docs-search__result-desc",children:l.description})]},l.id))})]})}function G(){const a=d(t=>t.manifest),e=d(t=>t.activePage),n=d(t=>t.pageData),r=d(t=>t.loading),o=d(t=>t.searchQuery),l=d(t=>t.fetchManifest);x.useEffect(()=>{l()},[]);const i=()=>{if(o)return s.jsx(L,{});if(r)return s.jsx("div",{className:"docs__loading",children:"Loading..."});if(!e||!n)return s.jsxs("div",{className:"docs__welcome",children:[s.jsx("h2",{children:(a==null?void 0:a.title)||"Documentation"}),s.jsx("p",{children:"Select a symbol from the sidebar to view its documentation."}),a&&s.jsxs("div",{className:"docs__stats",children:[s.jsxs("span",{children:[a.totalSymbols," symbols documented"]}),Object.entries(a.symbolCounts).map(([t,h])=>s.jsxs("span",{className:"docs__stat-item",children:[t,": ",h]},t))]})]});switch(e.kind){case"symbol":return s.jsx(w,{data:n});case"flow":return s.jsx(R,{data:n});case"portal":return s.jsx(C,{data:n});case"custom":return s.jsx(P,{data:n});default:return null}};return s.jsxs("div",{className:"docs",children:[s.jsx(f,{}),s.jsx("div",{className:"docs__content",children:i()})]})}export{G as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.docs{display:flex;height:100%;overflow:hidden}.docs__content{flex:1;overflow-y:auto;padding:24px 32px}.docs__loading{padding:24px;color:var(--p-text-muted)}.docs__welcome{max-width:600px;margin:48px auto;text-align:center}.docs__welcome h2{color:var(--p-text-primary);font-size:24px;margin:0 0 8px}.docs__welcome p{color:var(--p-text-secondary);margin:0 0 24px}.docs__stats{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;color:var(--p-text-muted);font-size:13px}.docs__stat-item{background:var(--p-bg-tertiary);padding:4px 8px;border-radius:var(--p-radius)}.docs-sidebar{width:260px;min-width:260px;border-right:1px solid var(--p-border);display:flex;flex-direction:column;overflow:hidden;background:var(--p-bg-secondary)}.docs-sidebar--loading{padding:16px;color:var(--p-text-muted)}.docs-sidebar__search{padding:8px;border-bottom:1px solid var(--p-border)}.docs-sidebar__search-input{width:100%;padding:6px 10px;background:var(--p-bg-tertiary);border:1px solid var(--p-border);border-radius:var(--p-radius);color:var(--p-text-primary);font-size:13px;outline:none;box-sizing:border-box}.docs-sidebar__search-input:focus{border-color:var(--p-border-active)}.docs-sidebar__groups{flex:1;overflow-y:auto;padding:4px 0}.docs-sidebar__group{margin:0}.docs-sidebar__group-header{display:flex;align-items:center;width:100%;padding:6px 12px;background:none;border:none;color:var(--p-text-secondary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;gap:4px}.docs-sidebar__group-header:hover{color:var(--p-text-primary)}.docs-sidebar__group-arrow{font-size:10px;width:12px}.docs-sidebar__group-label{flex:1;text-align:left}.docs-sidebar__group-count{font-size:11px;color:var(--p-text-muted);font-weight:400}.docs-sidebar__item{display:flex;align-items:center;width:100%;padding:4px 12px 4px 28px;background:none;border:none;color:var(--p-text-secondary);font-size:13px;cursor:pointer;gap:4px;text-align:left;transition:background var(--p-transition),color var(--p-transition)}.docs-sidebar__item:hover{background:var(--p-bg-hover);color:var(--p-text-primary)}.docs-sidebar__item--active{background:var(--p-bg-hover);color:var(--p-text-primary);border-left:2px solid var(--p-border-active);padding-left:26px}.docs-sidebar__item-prefix{font-weight:700;font-size:12px;min-width:10px}.docs-sidebar__item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-sidebar__item-badge{font-size:11px;color:var(--p-text-muted);background:var(--p-bg-tertiary);padding:1px 6px;border-radius:10px}.docs-page{max-width:800px}.docs-page__header{margin-bottom:16px}.docs-page__symbol{font-size:13px;font-family:monospace;padding:2px 8px;border-radius:var(--p-radius);background:var(--p-bg-tertiary)}.docs-page__symbol[data-kind=components]{color:var(--p-symbol-component)}.docs-page__symbol[data-kind=flows]{color:var(--p-symbol-flow)}.docs-page__symbol[data-kind=gates]{color:var(--p-symbol-gate)}.docs-page__symbol[data-kind=signals]{color:var(--p-symbol-signal)}.docs-page__symbol[data-kind=aspects]{color:var(--p-symbol-aspect)}.docs-page__title{font-size:28px;color:var(--p-text-primary);margin:8px 0 0}.docs-page__type{display:inline-block;font-size:12px;color:var(--p-text-muted);background:var(--p-bg-tertiary);padding:2px 8px;border-radius:var(--p-radius);margin-top:4px}.docs-page__description{color:var(--p-text-secondary);font-size:15px;line-height:1.6;margin:0 0 16px}.docs-page__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.docs-page__tag{font-size:12px;padding:2px 8px;border-radius:10px;background:var(--p-bg-tertiary);color:var(--p-text-secondary)}.docs-page__section{margin-top:24px}.docs-page__section h2{font-size:18px;color:var(--p-text-primary);margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--p-border)}.docs-page__symbol-list{display:flex;flex-wrap:wrap;gap:8px}.docs-page__trigger{margin-bottom:16px;color:var(--p-text-secondary)}.docs-page__trigger code,.docs-page__body code{background:var(--p-bg-tertiary);padding:2px 6px;border-radius:4px;font-size:13px}.docs-page__signal{margin-top:16px;color:var(--p-text-secondary)}.docs-page__guide{padding:8px 12px;background:var(--p-bg-tertiary);border-radius:var(--p-radius);margin-bottom:6px;color:var(--p-text-primary);font-size:14px}.docs-page__empty{color:var(--p-text-muted);font-style:italic}.docs-page__body{color:var(--p-text-secondary);line-height:1.7}.docs-page__body h1,.docs-page__body h2,.docs-page__body h3{color:var(--p-text-primary);margin-top:24px}.symbol-link{background:none;border:none;cursor:pointer;font-family:monospace;font-size:13px;padding:2px 6px;border-radius:4px;transition:background var(--p-transition)}.symbol-link:hover{background:var(--p-bg-hover)}.docs-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px}.docs-table th{text-align:left;padding:8px 12px;border-bottom:2px solid var(--p-border);color:var(--p-text-primary);font-weight:600;font-size:13px}.docs-table td{padding:6px 12px;border-bottom:1px solid var(--p-border);color:var(--p-text-secondary)}.docs-table--properties td:first-child{color:var(--p-text-muted);font-weight:600;width:120px}.docs-method{font-weight:700;font-size:12px;padding:2px 6px;border-radius:4px;background:var(--p-bg-tertiary)}.gate-chain{display:inline-flex;align-items:center;gap:2px}.gate-chain__separator{color:var(--p-text-muted);font-size:12px}.gate-chain--empty{color:var(--p-text-muted);font-style:italic;font-size:13px}.flow-steps{display:flex;flex-direction:column}.flow-steps__step{display:flex;gap:12px}.flow-steps__connector{display:flex;flex-direction:column;align-items:center;width:20px}.flow-steps__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.flow-steps__line{width:2px;flex:1;background:var(--p-border);margin:2px 0}.flow-steps__content{display:flex;align-items:center;gap:8px;padding:4px 0 12px}.flow-steps__type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.flow-steps__desc{color:var(--p-text-muted);font-size:13px}.docs-search{max-width:700px}.docs-search__title{font-size:18px;color:var(--p-text-primary);margin:0 0 16px}.docs-search__empty{color:var(--p-text-muted)}.docs-search__results{display:flex;flex-direction:column;gap:8px}.docs-search__result{display:block;width:100%;padding:12px 16px;background:var(--p-bg-secondary);border:1px solid var(--p-border);border-radius:var(--p-radius);cursor:pointer;text-align:left;transition:border-color var(--p-transition)}.docs-search__result:hover{border-color:var(--p-border-active)}.docs-search__result-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.docs-search__result-kind{font-size:11px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:4px;background:var(--p-bg-tertiary);color:var(--p-text-muted)}.docs-search__result-kind[data-kind=component]{color:var(--p-symbol-component)}.docs-search__result-kind[data-kind=flow]{color:var(--p-symbol-flow)}.docs-search__result-kind[data-kind=gate]{color:var(--p-symbol-gate)}.docs-search__result-kind[data-kind=signal]{color:var(--p-symbol-signal)}.docs-search__result-kind[data-kind=aspect]{color:var(--p-symbol-aspect)}.docs-search__result-label{font-size:15px;color:var(--p-text-primary);font-weight:500}.docs-search__result-desc{font-size:13px;color:var(--p-text-secondary);margin:0;line-height:1.4}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as F,j as t,r as f}from"./index-
|
|
1
|
+
import{c as F,j as t,r as f}from"./index-G9JnWEs_.js";const l=F((a,o)=>({branch:"",ahead:0,behind:0,staged:[],unstaged:[],untracked:[],commits:[],commitTotal:0,commitOffset:0,branches:[],selectedFile:null,selectedFileStaged:!1,diffContent:"",commitMessage:"",activeTab:"files",loading:!1,pushing:!1,committing:!1,symbols:[],fetchStatus:async()=>{try{const s=await fetch("/api/git/status");if(!s.ok)return;const i=await s.json();a({branch:i.branch,ahead:i.ahead,behind:i.behind,staged:i.staged,unstaged:i.unstaged,untracked:i.untracked})}catch{}},fetchBranches:async()=>{try{const s=await fetch("/api/git/branches");if(!s.ok)return;const i=await s.json();a({branches:i.branches||[]})}catch{}},fetchLog:async(s=!0)=>{try{const i=s?0:o().commitOffset,e=await fetch(`/api/git/log?limit=20&offset=${i}`);if(!e.ok)return;const n=await e.json();a(s?{commits:n.commits,commitTotal:n.total,commitOffset:20}:r=>({commits:[...r.commits,...n.commits],commitTotal:n.total,commitOffset:r.commitOffset+20}))}catch{}},loadMoreCommits:async()=>{await o().fetchLog(!1)},selectFile:async(s,i)=>{a({selectedFile:s,selectedFileStaged:i,diffContent:""});try{const e=new URLSearchParams({path:s});i&&e.set("staged","true");const n=await fetch(`/api/git/diff?${e}`);if(!n.ok)return;const r=await n.json();a({diffContent:r.diff||"(no diff available)"})}catch{a({diffContent:"(error loading diff)"})}},clearSelection:()=>a({selectedFile:null,diffContent:""}),stageFiles:async s=>{try{(await fetch("/api/git/stage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:s})})).ok&&await o().fetchStatus()}catch{}},unstageFiles:async s=>{try{(await fetch("/api/git/unstage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:s})})).ok&&await o().fetchStatus()}catch{}},commit:async()=>{const s=o().commitMessage.trim();if(!s)return!1;a({committing:!0});try{return(await fetch("/api/git/commit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:s})})).ok?(a({commitMessage:""}),await Promise.all([o().fetchStatus(),o().fetchLog()]),!0):!1}catch{return!1}finally{a({committing:!1})}},push:async()=>{a({pushing:!0});try{return(await fetch("/api/git/push",{method:"POST",headers:{"Content-Type":"application/json"}})).ok?(await o().fetchStatus(),!0):!1}catch{return!1}finally{a({pushing:!1})}},setCommitMessage:s=>a({commitMessage:s}),setActiveTab:s=>a({activeTab:s}),fetchSymbols:async()=>{try{const s=await fetch("/api/symbols");if(!s.ok)return;const n=((await s.json()).symbols||[]).map(r=>`${{component:"#",flow:"$",gate:"^",signal:"!",aspect:"~"}[r.category||""]||"#"}${r.name||r.id}`);a({symbols:n})}catch{}},refresh:async()=>{a({loading:!0}),await Promise.all([o().fetchStatus(),o().fetchLog(),o().fetchBranches()]),a({loading:!1})}}));function M(){const a=l(n=>n.branch),o=l(n=>n.ahead),s=l(n=>n.behind),i=l(n=>n.refresh),e=l(n=>n.loading);return t.jsxs("div",{className:"git-branch-bar",children:[t.jsxs("div",{className:"git-branch-bar__left",children:[t.jsx("span",{className:"git-branch-bar__icon",children:"⎇"}),t.jsx("span",{className:"git-branch-bar__name",children:a||"..."}),o>0&&t.jsxs("span",{className:"git-branch-bar__badge git-branch-bar__badge--ahead",title:`${o} ahead`,children:["↑",o]}),s>0&&t.jsxs("span",{className:"git-branch-bar__badge git-branch-bar__badge--behind",title:`${s} behind`,children:["↓",s]})]}),t.jsx("button",{className:"git-branch-bar__refresh",onClick:i,disabled:e,title:"Refresh",children:e?"⏳":"↻"})]})}function C({title:a,files:o,type:s,selectedFile:i,onSelect:e,onAction:n,actionLabel:r}){return o.length===0?null:t.jsxs("div",{className:"git-file-group",children:[t.jsxs("div",{className:"git-file-group__header",children:[t.jsx("span",{className:"git-file-group__title",children:a}),t.jsx("span",{className:"git-file-group__count",children:o.length})]}),o.map(g=>t.jsxs("div",{className:`git-file-item ${i===g?"git-file-item--selected":""}`,onClick:()=>e(g,s==="staged"),children:[t.jsx("span",{className:`git-file-item__indicator git-file-item__indicator--${s}`}),t.jsx("span",{className:"git-file-item__name",title:g,children:g}),t.jsx("button",{className:"git-file-item__action",onClick:m=>{m.stopPropagation(),n([g])},title:r,children:s==="staged"?"−":"+"})]},g))]})}function $(){const a=l(m=>m.staged),o=l(m=>m.unstaged),s=l(m=>m.untracked),i=l(m=>m.selectedFile),e=l(m=>m.selectFile),n=l(m=>m.stageFiles),r=l(m=>m.unstageFiles),g=a.length===0&&o.length===0&&s.length===0;return t.jsxs("div",{className:"git-file-list",children:[g&&t.jsx("div",{className:"git-file-list__empty",children:"Working tree clean"}),t.jsx(C,{title:"Staged",files:a,type:"staged",selectedFile:i,onSelect:e,onAction:r,actionLabel:"Unstage"}),t.jsx(C,{title:"Modified",files:o,type:"unstaged",selectedFile:i,onSelect:e,onAction:n,actionLabel:"Stage"}),t.jsx(C,{title:"Untracked",files:s,type:"untracked",selectedFile:i,onSelect:e,onAction:n,actionLabel:"Stage"})]})}function O(a){const o=a.split(`
|
|
2
2
|
`).slice(0,2e3),s=[];let i=0,e=0;for(const n of o)if(n.startsWith("@@")){const r=n.match(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);r&&(i=parseInt(r[1]),e=parseInt(r[2])),s.push({type:"hunk",content:n})}else n.startsWith("+")?(s.push({type:"add",content:n,lineNum:String(e)}),e++):n.startsWith("-")?(s.push({type:"remove",content:n,lineNum:String(i)}),i++):n.startsWith("diff ")||n.startsWith("index ")||n.startsWith("---")||n.startsWith("+++")?s.push({type:"context",content:n}):(s.push({type:"context",content:n,lineNum:String(e)}),i++,e++);return s}function D(){const a=l(i=>i.selectedFile),o=l(i=>i.diffContent);if(!a)return t.jsx("div",{className:"git-diff-empty",children:"Select a file to view its diff"});const s=O(o);return t.jsxs("div",{className:"git-diff",children:[t.jsx("div",{className:"git-diff__header",children:a}),t.jsx("pre",{className:"git-diff__content",children:s.map((i,e)=>t.jsxs("div",{className:`git-diff__line git-diff__line--${i.type}`,children:[t.jsx("span",{className:"git-diff__gutter",children:i.lineNum||""}),t.jsx("span",{className:"git-diff__text",children:i.content})]},e))})]})}const E="#$^!~";function P(){const a=l(c=>c.commitMessage),o=l(c=>c.setCommitMessage),s=l(c=>c.commit),i=l(c=>c.push),e=l(c=>c.committing),n=l(c=>c.pushing),r=l(c=>c.staged),g=l(c=>c.symbols),m=l(c=>c.ahead),j=f.useRef(null),[p,_]=f.useState([]),[N,v]=f.useState(0),[x,S]=f.useState(-1),k=f.useCallback(()=>{const c=j.current;if(!c)return;const d=c.selectionStart,y=c.value.substring(0,d);let b=-1;for(let h=y.length-1;h>=0;h--){const u=y[h];if(u===" "||u===`
|
|
3
3
|
`)break;if(E.includes(u)){b=h;break}}if(b>=0){const h=y.substring(b).toLowerCase(),u=g.filter(L=>L.toLowerCase().startsWith(h)).slice(0,8);_(u),v(0),S(b)}else _([]),S(-1)},[g]),w=f.useCallback(c=>{const d=j.current;if(!d||x<0)return;const y=a.substring(0,x),b=a.substring(d.selectionStart),h=y+c+" "+b;o(h),_([]),S(-1),setTimeout(()=>{if(d){const u=x+c.length+1;d.selectionStart=u,d.selectionEnd=u,d.focus()}},0)},[a,x,o]),T=f.useCallback(c=>{p.length>0&&(c.key==="ArrowDown"?(c.preventDefault(),v(d=>Math.min(d+1,p.length-1))):c.key==="ArrowUp"?(c.preventDefault(),v(d=>Math.max(d-1,0))):c.key==="Enter"||c.key==="Tab"?(c.preventDefault(),w(p[N])):c.key==="Escape"&&_([]))},[p,N,w]);return f.useEffect(()=>{const c=()=>_([]);return document.addEventListener("click",c),()=>document.removeEventListener("click",c)},[]),t.jsxs("div",{className:"git-commit-composer",children:[t.jsxs("div",{className:"git-commit-composer__input-wrap",children:[t.jsx("textarea",{ref:j,className:"git-commit-composer__textarea",placeholder:r.length>0?"Commit message...":"No staged files to commit",value:a,onChange:c=>{o(c.target.value),k()},onKeyUp:k,onKeyDown:T,disabled:r.length===0,rows:3}),p.length>0&&t.jsx("div",{className:"git-commit-composer__suggestions",onClick:c=>c.stopPropagation(),children:p.map((c,d)=>t.jsx("div",{className:`git-commit-composer__suggestion ${d===N?"git-commit-composer__suggestion--active":""}`,onClick:()=>w(c),children:c},c))})]}),t.jsxs("div",{className:"git-commit-composer__actions",children:[t.jsx("button",{className:"git-commit-composer__btn git-commit-composer__btn--commit",onClick:s,disabled:e||r.length===0||!a.trim(),children:e?"Committing...":`Commit (${r.length})`}),t.jsx("button",{className:"git-commit-composer__btn git-commit-composer__btn--push",onClick:i,disabled:n||m===0,children:n?"Pushing...":`Push${m>0?` (${m})`:""}`})]})]})}const A={"#":"var(--p-symbol-component)",$:"var(--p-symbol-flow)","^":"var(--p-symbol-gate)","!":"var(--p-symbol-signal)","~":"var(--p-symbol-aspect)"};function R(a){try{const o=new Date(a),i=Date.now()-o.getTime();return i<36e5?`${Math.floor(i/6e4)}m ago`:i<864e5?`${Math.floor(i/36e5)}h ago`:i<6048e5?`${Math.floor(i/864e5)}d ago`:o.toLocaleDateString()}catch{return a}}function W(){const a=l(e=>e.commits),o=l(e=>e.commitOffset),s=l(e=>e.commitTotal),i=l(e=>e.loadMoreCommits);return t.jsxs("div",{className:"git-commit-log",children:[a.length===0&&t.jsx("div",{className:"git-commit-log__empty",children:"No commits found"}),a.map(e=>t.jsxs("div",{className:"git-commit-log__item",children:[t.jsxs("div",{className:"git-commit-log__header",children:[t.jsx("span",{className:"git-commit-log__hash",children:e.shortHash}),t.jsx("span",{className:"git-commit-log__message",children:e.message.split(`
|
|
4
4
|
`)[0]})]}),t.jsxs("div",{className:"git-commit-log__meta",children:[t.jsx("span",{className:"git-commit-log__author",children:e.author}),t.jsx("span",{className:"git-commit-log__date",children:R(e.date)}),e.symbols.length>0&&t.jsx("span",{className:"git-commit-log__symbols",children:e.symbols.map(n=>t.jsx("span",{className:"git-commit-log__symbol-badge",style:{color:A[n[0]]||"var(--p-text-muted)"},children:n},n))})]})]},e.hash)),o<s&&t.jsx("button",{className:"git-commit-log__load-more",onClick:i,children:"Load more"})]})}const B=[{id:"files",label:"Changes"},{id:"log",label:"History"}];function I(){const a=l(e=>e.activeTab),o=l(e=>e.setActiveTab),s=l(e=>e.refresh),i=l(e=>e.fetchSymbols);return f.useEffect(()=>{s(),i()},[]),t.jsxs("div",{className:"git-section",children:[t.jsx(M,{}),t.jsx("div",{className:"git-tabs",children:B.map(e=>t.jsx("button",{className:`git-tabs__btn ${a===e.id?"git-tabs__btn--active":""}`,onClick:()=>o(e.id),children:e.label},e.id))}),a==="files"&&t.jsxs("div",{className:"git-files-layout",children:[t.jsxs("div",{className:"git-files-layout__sidebar",children:[t.jsx($,{}),t.jsx(P,{})]}),t.jsx("div",{className:"git-files-layout__main",children:t.jsx(D,{})})]}),a==="log"&&t.jsx("div",{className:"git-log-layout",children:t.jsx(W,{})})]})}export{I as default};
|