@oxagen/cli 0.4.0 → 0.6.0
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/README.md +68 -5
- package/dist/agent/__tests__/code-graph.test.d.ts +2 -0
- package/dist/agent/__tests__/code-graph.test.d.ts.map +1 -0
- package/dist/agent/__tests__/code-graph.test.js +83 -0
- package/dist/agent/__tests__/code-graph.test.js.map +1 -0
- package/dist/agent/__tests__/evaluator.test.d.ts +2 -0
- package/dist/agent/__tests__/evaluator.test.d.ts.map +1 -0
- package/dist/agent/__tests__/evaluator.test.js +96 -0
- package/dist/agent/__tests__/evaluator.test.js.map +1 -0
- package/dist/agent/__tests__/fleet-memory.test.d.ts +2 -0
- package/dist/agent/__tests__/fleet-memory.test.d.ts.map +1 -0
- package/dist/agent/__tests__/fleet-memory.test.js +107 -0
- package/dist/agent/__tests__/fleet-memory.test.js.map +1 -0
- package/dist/agent/__tests__/fleet-store.test.d.ts +2 -0
- package/dist/agent/__tests__/fleet-store.test.d.ts.map +1 -0
- package/dist/agent/__tests__/fleet-store.test.js +93 -0
- package/dist/agent/__tests__/fleet-store.test.js.map +1 -0
- package/dist/agent/__tests__/git-isolation.test.d.ts +2 -0
- package/dist/agent/__tests__/git-isolation.test.d.ts.map +1 -0
- package/dist/agent/__tests__/git-isolation.test.js +119 -0
- package/dist/agent/__tests__/git-isolation.test.js.map +1 -0
- package/dist/agent/__tests__/judge.test.d.ts +2 -0
- package/dist/agent/__tests__/judge.test.d.ts.map +1 -0
- package/dist/agent/__tests__/judge.test.js +135 -0
- package/dist/agent/__tests__/judge.test.js.map +1 -0
- package/dist/agent/__tests__/loop-errors.test.d.ts +2 -0
- package/dist/agent/__tests__/loop-errors.test.d.ts.map +1 -0
- package/dist/agent/__tests__/loop-errors.test.js +44 -0
- package/dist/agent/__tests__/loop-errors.test.js.map +1 -0
- package/dist/agent/__tests__/model-router.test.d.ts +2 -0
- package/dist/agent/__tests__/model-router.test.d.ts.map +1 -0
- package/dist/agent/__tests__/model-router.test.js +122 -0
- package/dist/agent/__tests__/model-router.test.js.map +1 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.d.ts +2 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.d.ts.map +1 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.js +134 -0
- package/dist/agent/__tests__/orchestrator-isolation.test.js.map +1 -0
- package/dist/agent/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/agent/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/agent/__tests__/orchestrator.test.js +201 -0
- package/dist/agent/__tests__/orchestrator.test.js.map +1 -0
- package/dist/agent/__tests__/pipeline.test.d.ts +2 -0
- package/dist/agent/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/agent/__tests__/pipeline.test.js +226 -0
- package/dist/agent/__tests__/pipeline.test.js.map +1 -0
- package/dist/agent/__tests__/planner.test.d.ts +2 -0
- package/dist/agent/__tests__/planner.test.d.ts.map +1 -0
- package/dist/agent/__tests__/planner.test.js +98 -0
- package/dist/agent/__tests__/planner.test.js.map +1 -0
- package/dist/agent/__tests__/prompt-enhancer.test.d.ts +2 -0
- package/dist/agent/__tests__/prompt-enhancer.test.d.ts.map +1 -0
- package/dist/agent/__tests__/prompt-enhancer.test.js +107 -0
- package/dist/agent/__tests__/prompt-enhancer.test.js.map +1 -0
- package/dist/agent/__tests__/trace-format.test.d.ts +2 -0
- package/dist/agent/__tests__/trace-format.test.d.ts.map +1 -0
- package/dist/agent/__tests__/trace-format.test.js +104 -0
- package/dist/agent/__tests__/trace-format.test.js.map +1 -0
- package/dist/agent/__tests__/trace-store.test.d.ts +2 -0
- package/dist/agent/__tests__/trace-store.test.d.ts.map +1 -0
- package/dist/agent/__tests__/trace-store.test.js +113 -0
- package/dist/agent/__tests__/trace-store.test.js.map +1 -0
- package/dist/agent/code-graph.d.ts +18 -0
- package/dist/agent/code-graph.d.ts.map +1 -0
- package/dist/agent/code-graph.js +119 -0
- package/dist/agent/code-graph.js.map +1 -0
- package/dist/agent/env.d.ts +11 -0
- package/dist/agent/env.d.ts.map +1 -0
- package/dist/agent/env.js +82 -0
- package/dist/agent/env.js.map +1 -0
- package/dist/agent/evaluator.d.ts +13 -0
- package/dist/agent/evaluator.d.ts.map +1 -0
- package/dist/agent/evaluator.js +146 -0
- package/dist/agent/evaluator.js.map +1 -0
- package/dist/agent/fleet/git-isolation.d.ts +142 -0
- package/dist/agent/fleet/git-isolation.d.ts.map +1 -0
- package/dist/agent/fleet/git-isolation.js +290 -0
- package/dist/agent/fleet/git-isolation.js.map +1 -0
- package/dist/agent/fleet/memory.d.ts +21 -0
- package/dist/agent/fleet/memory.d.ts.map +1 -0
- package/dist/agent/fleet/memory.js +129 -0
- package/dist/agent/fleet/memory.js.map +1 -0
- package/dist/agent/fleet/orchestrator.d.ts +103 -0
- package/dist/agent/fleet/orchestrator.d.ts.map +1 -0
- package/dist/agent/fleet/orchestrator.js +355 -0
- package/dist/agent/fleet/orchestrator.js.map +1 -0
- package/dist/agent/fleet/store.d.ts +13 -0
- package/dist/agent/fleet/store.d.ts.map +1 -0
- package/dist/agent/fleet/store.js +79 -0
- package/dist/agent/fleet/store.js.map +1 -0
- package/dist/agent/fleet/types.d.ts +105 -0
- package/dist/agent/fleet/types.d.ts.map +1 -0
- package/dist/agent/fleet/types.js +17 -0
- package/dist/agent/fleet/types.js.map +1 -0
- package/dist/agent/judge.d.ts +38 -0
- package/dist/agent/judge.d.ts.map +1 -0
- package/dist/agent/judge.js +170 -0
- package/dist/agent/judge.js.map +1 -0
- package/dist/agent/loop.d.ts +61 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +134 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/memory.d.ts +14 -0
- package/dist/agent/memory.d.ts.map +1 -0
- package/dist/agent/memory.js +118 -0
- package/dist/agent/memory.js.map +1 -0
- package/dist/agent/model-router.d.ts +79 -0
- package/dist/agent/model-router.d.ts.map +1 -0
- package/dist/agent/model-router.js +141 -0
- package/dist/agent/model-router.js.map +1 -0
- package/dist/agent/model.d.ts +9 -0
- package/dist/agent/model.d.ts.map +1 -0
- package/dist/agent/model.js +24 -0
- package/dist/agent/model.js.map +1 -0
- package/dist/agent/pipeline.d.ts +82 -0
- package/dist/agent/pipeline.d.ts.map +1 -0
- package/dist/agent/pipeline.js +320 -0
- package/dist/agent/pipeline.js.map +1 -0
- package/dist/agent/planner.d.ts +16 -0
- package/dist/agent/planner.d.ts.map +1 -0
- package/dist/agent/planner.js +126 -0
- package/dist/agent/planner.js.map +1 -0
- package/dist/agent/project-context.d.ts +13 -0
- package/dist/agent/project-context.d.ts.map +1 -0
- package/dist/agent/project-context.js +66 -0
- package/dist/agent/project-context.js.map +1 -0
- package/dist/agent/prompt-enhancer.d.ts +37 -0
- package/dist/agent/prompt-enhancer.d.ts.map +1 -0
- package/dist/agent/prompt-enhancer.js +115 -0
- package/dist/agent/prompt-enhancer.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +9 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +38 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/agent/tools.d.ts +19 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +323 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/agent/trace-format.d.ts +6 -0
- package/dist/agent/trace-format.d.ts.map +1 -0
- package/dist/agent/trace-format.js +74 -0
- package/dist/agent/trace-format.js.map +1 -0
- package/dist/agent/trace-store.d.ts +19 -0
- package/dist/agent/trace-store.d.ts.map +1 -0
- package/dist/agent/trace-store.js +82 -0
- package/dist/agent/trace-store.js.map +1 -0
- package/dist/agent/trace.d.ts +121 -0
- package/dist/agent/trace.d.ts.map +1 -0
- package/dist/agent/trace.js +2 -0
- package/dist/agent/trace.js.map +1 -0
- package/dist/commands/__tests__/replay.test.d.ts +2 -0
- package/dist/commands/__tests__/replay.test.d.ts.map +1 -0
- package/dist/commands/__tests__/replay.test.js +76 -0
- package/dist/commands/__tests__/replay.test.js.map +1 -0
- package/dist/commands/agent.mcp.consent.list.d.ts +3 -0
- package/dist/commands/agent.mcp.consent.list.d.ts.map +1 -0
- package/dist/commands/agent.mcp.consent.list.js +30 -0
- package/dist/commands/agent.mcp.consent.list.js.map +1 -0
- package/dist/commands/agent.mcp.consent.resolve.d.ts +3 -0
- package/dist/commands/agent.mcp.consent.resolve.d.ts.map +1 -0
- package/dist/commands/agent.mcp.consent.resolve.js +34 -0
- package/dist/commands/agent.mcp.consent.resolve.js.map +1 -0
- package/dist/commands/agent.mcp.delete.d.ts +3 -0
- package/dist/commands/agent.mcp.delete.d.ts.map +1 -0
- package/dist/commands/agent.mcp.delete.js +27 -0
- package/dist/commands/agent.mcp.delete.js.map +1 -0
- package/dist/commands/agent.mcp.set_enabled.d.ts +3 -0
- package/dist/commands/agent.mcp.set_enabled.d.ts.map +1 -0
- package/dist/commands/agent.mcp.set_enabled.js +33 -0
- package/dist/commands/agent.mcp.set_enabled.js.map +1 -0
- package/dist/commands/agent.skill.load.d.ts +3 -0
- package/dist/commands/agent.skill.load.d.ts.map +1 -0
- package/dist/commands/agent.skill.load.js +57 -0
- package/dist/commands/agent.skill.load.js.map +1 -0
- package/dist/commands/audit.log.query.d.ts +3 -0
- package/dist/commands/audit.log.query.d.ts.map +1 -0
- package/dist/commands/audit.log.query.js +42 -0
- package/dist/commands/audit.log.query.js.map +1 -0
- package/dist/commands/automation.create.d.ts.map +1 -1
- package/dist/commands/automation.create.js +43 -4
- package/dist/commands/automation.create.js.map +1 -1
- package/dist/commands/automation.disable.d.ts +3 -0
- package/dist/commands/automation.disable.d.ts.map +1 -0
- package/dist/commands/automation.disable.js +24 -0
- package/dist/commands/automation.disable.js.map +1 -0
- package/dist/commands/automation.enable.d.ts +3 -0
- package/dist/commands/automation.enable.d.ts.map +1 -0
- package/dist/commands/automation.enable.js +24 -0
- package/dist/commands/automation.enable.js.map +1 -0
- package/dist/commands/automation.update.d.ts +3 -0
- package/dist/commands/automation.update.d.ts.map +1 -0
- package/dist/commands/automation.update.js +42 -0
- package/dist/commands/automation.update.js.map +1 -0
- package/dist/commands/code.d.ts +14 -0
- package/dist/commands/code.d.ts.map +1 -0
- package/dist/commands/code.js +100 -0
- package/dist/commands/code.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +66 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/conversation.files.list.d.ts +3 -0
- package/dist/commands/conversation.files.list.d.ts.map +1 -0
- package/dist/commands/conversation.files.list.js +39 -0
- package/dist/commands/conversation.files.list.js.map +1 -0
- package/dist/commands/env.d.ts +19 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +64 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/graph.search.d.ts +10 -0
- package/dist/commands/graph.search.d.ts.map +1 -0
- package/dist/commands/graph.search.js +25 -0
- package/dist/commands/graph.search.js.map +1 -0
- package/dist/commands/markdown.generate.d.ts +3 -0
- package/dist/commands/markdown.generate.d.ts.map +1 -0
- package/dist/commands/markdown.generate.js +37 -0
- package/dist/commands/markdown.generate.js.map +1 -0
- package/dist/commands/mcp.add.d.ts +13 -0
- package/dist/commands/mcp.add.d.ts.map +1 -0
- package/dist/commands/mcp.add.js +110 -0
- package/dist/commands/mcp.add.js.map +1 -0
- package/dist/commands/mcp.auth.d.ts +10 -0
- package/dist/commands/mcp.auth.d.ts.map +1 -0
- package/dist/commands/mcp.auth.js +132 -0
- package/dist/commands/mcp.auth.js.map +1 -0
- package/dist/commands/mcp.check.d.ts +10 -0
- package/dist/commands/mcp.check.d.ts.map +1 -0
- package/dist/commands/mcp.check.js +114 -0
- package/dist/commands/mcp.check.js.map +1 -0
- package/dist/commands/mcp.list.d.ts +9 -0
- package/dist/commands/mcp.list.d.ts.map +1 -0
- package/dist/commands/mcp.list.js +93 -0
- package/dist/commands/mcp.list.js.map +1 -0
- package/dist/commands/mcp.permit.d.ts +12 -0
- package/dist/commands/mcp.permit.d.ts.map +1 -0
- package/dist/commands/mcp.permit.js +117 -0
- package/dist/commands/mcp.permit.js.map +1 -0
- package/dist/commands/mcp.remove.d.ts +9 -0
- package/dist/commands/mcp.remove.d.ts.map +1 -0
- package/dist/commands/mcp.remove.js +65 -0
- package/dist/commands/mcp.remove.js.map +1 -0
- package/dist/commands/mermaid.generate.d.ts +3 -0
- package/dist/commands/mermaid.generate.d.ts.map +1 -0
- package/dist/commands/mermaid.generate.js +33 -0
- package/dist/commands/mermaid.generate.js.map +1 -0
- package/dist/commands/ontology.neighbors.d.ts +3 -0
- package/dist/commands/ontology.neighbors.d.ts.map +1 -0
- package/dist/commands/ontology.neighbors.js +34 -0
- package/dist/commands/ontology.neighbors.js.map +1 -0
- package/dist/commands/ontology.query.d.ts +3 -0
- package/dist/commands/ontology.query.d.ts.map +1 -0
- package/dist/commands/ontology.query.js +36 -0
- package/dist/commands/ontology.query.js.map +1 -0
- package/dist/commands/plugin.org.install_bulk.js +1 -1
- package/dist/commands/plugin.org.install_bulk.js.map +1 -1
- package/dist/commands/privacy.erase.d.ts.map +1 -1
- package/dist/commands/privacy.erase.js +2 -1
- package/dist/commands/privacy.erase.js.map +1 -1
- package/dist/commands/privacy.erase.test.d.ts +2 -0
- package/dist/commands/privacy.erase.test.d.ts.map +1 -0
- package/dist/commands/privacy.erase.test.js +132 -0
- package/dist/commands/privacy.erase.test.js.map +1 -0
- package/dist/commands/replay.d.ts +5 -0
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/commands/replay.js +28 -0
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/schema/schema.config.d.ts +3 -0
- package/dist/commands/schema/schema.config.d.ts.map +1 -0
- package/dist/commands/schema/schema.config.js +34 -0
- package/dist/commands/schema/schema.config.js.map +1 -0
- package/dist/commands/schema/schema.disable.d.ts +3 -0
- package/dist/commands/schema/schema.disable.d.ts.map +1 -0
- package/dist/commands/schema/schema.disable.js +22 -0
- package/dist/commands/schema/schema.disable.js.map +1 -0
- package/dist/commands/schema/schema.enable.d.ts +3 -0
- package/dist/commands/schema/schema.enable.d.ts.map +1 -0
- package/dist/commands/schema/schema.enable.js +22 -0
- package/dist/commands/schema/schema.enable.js.map +1 -0
- package/dist/commands/schema/schema.export.d.ts +3 -0
- package/dist/commands/schema/schema.export.d.ts.map +1 -0
- package/dist/commands/schema/schema.export.js +31 -0
- package/dist/commands/schema/schema.export.js.map +1 -0
- package/dist/commands/schema/schema.get.d.ts +3 -0
- package/dist/commands/schema/schema.get.d.ts.map +1 -0
- package/dist/commands/schema/schema.get.js +23 -0
- package/dist/commands/schema/schema.get.js.map +1 -0
- package/dist/commands/schema/schema.label.d.ts +5 -0
- package/dist/commands/schema/schema.label.d.ts.map +1 -0
- package/dist/commands/schema/schema.label.js +60 -0
- package/dist/commands/schema/schema.label.js.map +1 -0
- package/dist/commands/schema/schema.list.d.ts +3 -0
- package/dist/commands/schema/schema.list.d.ts.map +1 -0
- package/dist/commands/schema/schema.list.js +30 -0
- package/dist/commands/schema/schema.list.js.map +1 -0
- package/dist/commands/schema/schema.prop.d.ts +5 -0
- package/dist/commands/schema/schema.prop.d.ts.map +1 -0
- package/dist/commands/schema/schema.prop.js +72 -0
- package/dist/commands/schema/schema.prop.js.map +1 -0
- package/dist/commands/schema/schema.reconcile.d.ts +10 -0
- package/dist/commands/schema/schema.reconcile.d.ts.map +1 -0
- package/dist/commands/schema/schema.reconcile.js +65 -0
- package/dist/commands/schema/schema.reconcile.js.map +1 -0
- package/dist/commands/schema/schema.rel.d.ts +5 -0
- package/dist/commands/schema/schema.rel.d.ts.map +1 -0
- package/dist/commands/schema/schema.rel.js +65 -0
- package/dist/commands/schema/schema.rel.js.map +1 -0
- package/dist/commands/schema/schema.version.d.ts +7 -0
- package/dist/commands/schema/schema.version.d.ts.map +1 -0
- package/dist/commands/schema/schema.version.js +96 -0
- package/dist/commands/schema/schema.version.js.map +1 -0
- package/dist/commands/secret.d.ts +23 -0
- package/dist/commands/secret.d.ts.map +1 -0
- package/dist/commands/secret.js +90 -0
- package/dist/commands/secret.js.map +1 -0
- package/dist/commands/skill.create.d.ts +3 -0
- package/dist/commands/skill.create.d.ts.map +1 -0
- package/dist/commands/skill.create.js +52 -0
- package/dist/commands/skill.create.js.map +1 -0
- package/dist/commands/skill.edit.d.ts +3 -0
- package/dist/commands/skill.edit.d.ts.map +1 -0
- package/dist/commands/skill.edit.js +28 -0
- package/dist/commands/skill.edit.js.map +1 -0
- package/dist/commands/skill.enable.d.ts +3 -0
- package/dist/commands/skill.enable.d.ts.map +1 -0
- package/dist/commands/skill.enable.js +31 -0
- package/dist/commands/skill.enable.js.map +1 -0
- package/dist/commands/skill.export.d.ts +3 -0
- package/dist/commands/skill.export.d.ts.map +1 -0
- package/dist/commands/skill.export.js +25 -0
- package/dist/commands/skill.export.js.map +1 -0
- package/dist/commands/skill.metrics.read.d.ts +3 -0
- package/dist/commands/skill.metrics.read.d.ts.map +1 -0
- package/dist/commands/skill.metrics.read.js +56 -0
- package/dist/commands/skill.metrics.read.js.map +1 -0
- package/dist/commands/skill.version.activate.d.ts +3 -0
- package/dist/commands/skill.version.activate.d.ts.map +1 -0
- package/dist/commands/skill.version.activate.js +24 -0
- package/dist/commands/skill.version.activate.js.map +1 -0
- package/dist/commands/skill.version.get.d.ts +3 -0
- package/dist/commands/skill.version.get.d.ts.map +1 -0
- package/dist/commands/skill.version.get.js +43 -0
- package/dist/commands/skill.version.get.js.map +1 -0
- package/dist/commands/skill.version.list.d.ts +3 -0
- package/dist/commands/skill.version.list.d.ts.map +1 -0
- package/dist/commands/skill.version.list.js +38 -0
- package/dist/commands/skill.version.list.js.map +1 -0
- package/dist/commands/skill.version.upload.d.ts +3 -0
- package/dist/commands/skill.version.upload.d.ts.map +1 -0
- package/dist/commands/skill.version.upload.js +28 -0
- package/dist/commands/skill.version.upload.js.map +1 -0
- package/dist/commands/skill.workspace.install.d.ts +3 -0
- package/dist/commands/skill.workspace.install.d.ts.map +1 -0
- package/dist/commands/skill.workspace.install.js +52 -0
- package/dist/commands/skill.workspace.install.js.map +1 -0
- package/dist/commands.test.js +1391 -337
- package/dist/commands.test.js.map +1 -1
- package/dist/components/DevStatus.d.ts.map +1 -1
- package/dist/components/DevStatus.js +3 -2
- package/dist/components/DevStatus.js.map +1 -1
- package/dist/daemon/client.d.ts +30 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +97 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/code-graph/builder.d.ts +6 -0
- package/dist/daemon/code-graph/builder.d.ts.map +1 -0
- package/dist/daemon/code-graph/builder.js +215 -0
- package/dist/daemon/code-graph/builder.js.map +1 -0
- package/dist/daemon/code-graph/query.d.ts +29 -0
- package/dist/daemon/code-graph/query.d.ts.map +1 -0
- package/dist/daemon/code-graph/query.js +98 -0
- package/dist/daemon/code-graph/query.js.map +1 -0
- package/dist/daemon/code-graph/types.d.ts +37 -0
- package/dist/daemon/code-graph/types.d.ts.map +1 -0
- package/dist/daemon/code-graph/types.js +5 -0
- package/dist/daemon/code-graph/types.js.map +1 -0
- package/dist/daemon/code-graph/watcher.d.ts +37 -0
- package/dist/daemon/code-graph/watcher.d.ts.map +1 -0
- package/dist/daemon/code-graph/watcher.js +79 -0
- package/dist/daemon/code-graph/watcher.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +6 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +132 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/protocol.d.ts +113 -0
- package/dist/daemon/protocol.d.ts.map +1 -0
- package/dist/daemon/protocol.js +16 -0
- package/dist/daemon/protocol.js.map +1 -0
- package/dist/daemon/server.d.ts +26 -0
- package/dist/daemon/server.d.ts.map +1 -0
- package/dist/daemon/server.js +168 -0
- package/dist/daemon/server.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +262 -310
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +5 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +52 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +16 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +21 -3
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/differential-context.d.ts +46 -0
- package/dist/lib/differential-context.d.ts.map +1 -0
- package/dist/lib/differential-context.js +89 -0
- package/dist/lib/differential-context.js.map +1 -0
- package/dist/lib/resolve.d.ts +3 -0
- package/dist/lib/resolve.d.ts.map +1 -0
- package/dist/lib/resolve.js +29 -0
- package/dist/lib/resolve.js.map +1 -0
- package/dist/lib/structured-tool-io.d.ts +31 -0
- package/dist/lib/structured-tool-io.d.ts.map +1 -0
- package/dist/lib/structured-tool-io.js +56 -0
- package/dist/lib/structured-tool-io.js.map +1 -0
- package/dist/repl/__tests__/_queue_demo.test.d.ts +2 -0
- package/dist/repl/__tests__/_queue_demo.test.d.ts.map +1 -0
- package/dist/repl/__tests__/_queue_demo.test.js +40 -0
- package/dist/repl/__tests__/_queue_demo.test.js.map +1 -0
- package/dist/repl/__tests__/components.test.d.ts +2 -0
- package/dist/repl/__tests__/components.test.d.ts.map +1 -0
- package/dist/repl/__tests__/components.test.js +38 -0
- package/dist/repl/__tests__/components.test.js.map +1 -0
- package/dist/repl/__tests__/interactive.queue.test.d.ts +2 -0
- package/dist/repl/__tests__/interactive.queue.test.d.ts.map +1 -0
- package/dist/repl/__tests__/interactive.queue.test.js +124 -0
- package/dist/repl/__tests__/interactive.queue.test.js.map +1 -0
- package/dist/repl/components.d.ts +59 -0
- package/dist/repl/components.d.ts.map +1 -0
- package/dist/repl/components.js +152 -0
- package/dist/repl/components.js.map +1 -0
- package/dist/repl/interactive.d.ts +12 -0
- package/dist/repl/interactive.d.ts.map +1 -0
- package/dist/repl/interactive.js +326 -0
- package/dist/repl/interactive.js.map +1 -0
- package/dist/repl/one-shot.d.ts +9 -0
- package/dist/repl/one-shot.d.ts.map +1 -0
- package/dist/repl/one-shot.js +83 -0
- package/dist/repl/one-shot.js.map +1 -0
- package/dist/tui/__tests__/app.test.d.ts +2 -0
- package/dist/tui/__tests__/app.test.d.ts.map +1 -0
- package/dist/tui/__tests__/app.test.js +136 -0
- package/dist/tui/__tests__/app.test.js.map +1 -0
- package/dist/tui/__tests__/banner.test.d.ts +2 -0
- package/dist/tui/__tests__/banner.test.d.ts.map +1 -0
- package/dist/tui/__tests__/banner.test.js +15 -0
- package/dist/tui/__tests__/banner.test.js.map +1 -0
- package/dist/tui/__tests__/command-form.test.d.ts +2 -0
- package/dist/tui/__tests__/command-form.test.d.ts.map +1 -0
- package/dist/tui/__tests__/command-form.test.js +96 -0
- package/dist/tui/__tests__/command-form.test.js.map +1 -0
- package/dist/tui/__tests__/command-tree.test.d.ts +2 -0
- package/dist/tui/__tests__/command-tree.test.d.ts.map +1 -0
- package/dist/tui/__tests__/command-tree.test.js +55 -0
- package/dist/tui/__tests__/command-tree.test.js.map +1 -0
- package/dist/tui/__tests__/runner.test.d.ts +2 -0
- package/dist/tui/__tests__/runner.test.d.ts.map +1 -0
- package/dist/tui/__tests__/runner.test.js +38 -0
- package/dist/tui/__tests__/runner.test.js.map +1 -0
- package/dist/tui/__tests__/theme.test.d.ts +2 -0
- package/dist/tui/__tests__/theme.test.d.ts.map +1 -0
- package/dist/tui/__tests__/theme.test.js +11 -0
- package/dist/tui/__tests__/theme.test.js.map +1 -0
- package/dist/tui/agent-view/activity-feed.d.ts +3 -0
- package/dist/tui/agent-view/activity-feed.d.ts.map +1 -0
- package/dist/tui/agent-view/activity-feed.js +34 -0
- package/dist/tui/agent-view/activity-feed.js.map +1 -0
- package/dist/tui/agent-view/budget-bar.d.ts +3 -0
- package/dist/tui/agent-view/budget-bar.d.ts.map +1 -0
- package/dist/tui/agent-view/budget-bar.js +53 -0
- package/dist/tui/agent-view/budget-bar.js.map +1 -0
- package/dist/tui/agent-view/compile-panel.d.ts +3 -0
- package/dist/tui/agent-view/compile-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/compile-panel.js +34 -0
- package/dist/tui/agent-view/compile-panel.js.map +1 -0
- package/dist/tui/agent-view/index.d.ts +4 -0
- package/dist/tui/agent-view/index.d.ts.map +1 -0
- package/dist/tui/agent-view/index.js +31 -0
- package/dist/tui/agent-view/index.js.map +1 -0
- package/dist/tui/agent-view/memory-panel.d.ts +3 -0
- package/dist/tui/agent-view/memory-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/memory-panel.js +80 -0
- package/dist/tui/agent-view/memory-panel.js.map +1 -0
- package/dist/tui/agent-view/session-panel.d.ts +3 -0
- package/dist/tui/agent-view/session-panel.d.ts.map +1 -0
- package/dist/tui/agent-view/session-panel.js +44 -0
- package/dist/tui/agent-view/session-panel.js.map +1 -0
- package/dist/tui/agent-view/status-bar.d.ts +7 -0
- package/dist/tui/agent-view/status-bar.d.ts.map +1 -0
- package/dist/tui/agent-view/status-bar.js +22 -0
- package/dist/tui/agent-view/status-bar.js.map +1 -0
- package/dist/tui/app.d.ts +9 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +115 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/banner.d.ts +5 -0
- package/dist/tui/banner.d.ts.map +1 -0
- package/dist/tui/banner.js +17 -0
- package/dist/tui/banner.js.map +1 -0
- package/dist/tui/command-form.d.ts +9 -0
- package/dist/tui/command-form.d.ts.map +1 -0
- package/dist/tui/command-form.js +76 -0
- package/dist/tui/command-form.js.map +1 -0
- package/dist/tui/command-tree.d.ts +30 -0
- package/dist/tui/command-tree.d.ts.map +1 -0
- package/dist/tui/command-tree.js +43 -0
- package/dist/tui/command-tree.js.map +1 -0
- package/dist/tui/fleet-view/agent-row.d.ts +10 -0
- package/dist/tui/fleet-view/agent-row.d.ts.map +1 -0
- package/dist/tui/fleet-view/agent-row.js +80 -0
- package/dist/tui/fleet-view/agent-row.js.map +1 -0
- package/dist/tui/fleet-view/dispatch-input.d.ts +5 -0
- package/dist/tui/fleet-view/dispatch-input.d.ts.map +1 -0
- package/dist/tui/fleet-view/dispatch-input.js +36 -0
- package/dist/tui/fleet-view/dispatch-input.js.map +1 -0
- package/dist/tui/fleet-view/fleet-app.d.ts +11 -0
- package/dist/tui/fleet-view/fleet-app.d.ts.map +1 -0
- package/dist/tui/fleet-view/fleet-app.js +95 -0
- package/dist/tui/fleet-view/fleet-app.js.map +1 -0
- package/dist/tui/fleet-view/fleet-summary.d.ts +6 -0
- package/dist/tui/fleet-view/fleet-summary.d.ts.map +1 -0
- package/dist/tui/fleet-view/fleet-summary.js +19 -0
- package/dist/tui/fleet-view/fleet-summary.js.map +1 -0
- package/dist/tui/fleet-view/index.d.ts +16 -0
- package/dist/tui/fleet-view/index.d.ts.map +1 -0
- package/dist/tui/fleet-view/index.js +61 -0
- package/dist/tui/fleet-view/index.js.map +1 -0
- package/dist/tui/runner.d.ts +7 -0
- package/dist/tui/runner.d.ts.map +1 -0
- package/dist/tui/runner.js +36 -0
- package/dist/tui/runner.js.map +1 -0
- package/dist/tui/theme.d.ts +8 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +10 -0
- package/dist/tui/theme.js.map +1 -0
- package/package.json +12 -7
- package/README.html +0 -379
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
3
|
+
import { render } from "ink-testing-library";
|
|
4
|
+
import React from "react";
|
|
5
|
+
import { CommandForm } from "../command-form.js";
|
|
6
|
+
const node = {
|
|
7
|
+
name: "login",
|
|
8
|
+
description: "Authenticate",
|
|
9
|
+
path: ["auth", "login"],
|
|
10
|
+
args: [],
|
|
11
|
+
options: [
|
|
12
|
+
{ flags: "--email <e>", long: "--email", description: "Email", required: true, isBoolean: false, takesValue: true, secret: false },
|
|
13
|
+
{ flags: "--password <p>", long: "--password", description: "Password", required: true, isBoolean: false, takesValue: true, secret: true },
|
|
14
|
+
],
|
|
15
|
+
children: [],
|
|
16
|
+
runnable: true,
|
|
17
|
+
};
|
|
18
|
+
// Single-field node: one optional boolean option only.
|
|
19
|
+
// With one field, active starts at index 0 which IS the last field
|
|
20
|
+
// (0 === fields.length − 1), so pressing Enter immediately calls trySubmit()
|
|
21
|
+
// without needing any DOWN navigation (which would require React to flush async
|
|
22
|
+
// state updates before the subsequent Enter write, an unsupported pattern in
|
|
23
|
+
// ink-testing-library v4).
|
|
24
|
+
const boolOnlyNode = {
|
|
25
|
+
name: "status",
|
|
26
|
+
description: "Check status",
|
|
27
|
+
path: ["status"],
|
|
28
|
+
args: [],
|
|
29
|
+
options: [
|
|
30
|
+
{ flags: "--verbose", long: "--verbose", description: "Verbose output", required: false, isBoolean: true, takesValue: false, secret: false },
|
|
31
|
+
],
|
|
32
|
+
children: [],
|
|
33
|
+
runnable: true,
|
|
34
|
+
};
|
|
35
|
+
// Single-field node with a required text field — used by the "blocks submit"
|
|
36
|
+
// test. active=0 is already the last field, so Enter directly reaches the
|
|
37
|
+
// validation gate without any navigation that might race React's state flush.
|
|
38
|
+
const requiredSingleFieldNode = {
|
|
39
|
+
name: "init",
|
|
40
|
+
description: "Initialise workspace",
|
|
41
|
+
path: ["init"],
|
|
42
|
+
args: [],
|
|
43
|
+
options: [
|
|
44
|
+
{ flags: "--name <n>", long: "--name", description: "Workspace name", required: true, isBoolean: false, takesValue: true, secret: false },
|
|
45
|
+
],
|
|
46
|
+
children: [],
|
|
47
|
+
runnable: true,
|
|
48
|
+
};
|
|
49
|
+
const ENTER = "\r";
|
|
50
|
+
// ink 7 buffers bare ESC for 20 ms to distinguish it from an escape-sequence
|
|
51
|
+
// prefix — flush the pending-escape timer with fake timers.
|
|
52
|
+
const ESC = "\x1b";
|
|
53
|
+
afterEach(() => {
|
|
54
|
+
vi.useRealTimers();
|
|
55
|
+
});
|
|
56
|
+
describe("CommandForm", () => {
|
|
57
|
+
it("renders a field per option and masks secret fields", () => {
|
|
58
|
+
const { lastFrame } = render(_jsx(CommandForm, { node: node, onSubmit: () => { }, onCancel: () => { } }));
|
|
59
|
+
const frame = lastFrame() ?? "";
|
|
60
|
+
expect(frame).toContain("--email");
|
|
61
|
+
expect(frame).toContain("--password");
|
|
62
|
+
expect(frame.toLowerCase()).toContain("required");
|
|
63
|
+
// Secret fields must render via PasswordInput — assert the masked placeholder.
|
|
64
|
+
// A regression to TextInput would omit "•••" and this assertion would catch it.
|
|
65
|
+
expect(frame).toContain("•••");
|
|
66
|
+
});
|
|
67
|
+
it("blocks submit while a required field is empty", () => {
|
|
68
|
+
const onSubmit = vi.fn();
|
|
69
|
+
// requiredSingleFieldNode has exactly one field (--name, required text).
|
|
70
|
+
// active=0 is already the last field, so Enter directly hits the validation
|
|
71
|
+
// gate — no navigation writes that could race React's async state flush.
|
|
72
|
+
const { stdin } = render(_jsx(CommandForm, { node: requiredSingleFieldNode, onSubmit: onSubmit, onCancel: () => { } }));
|
|
73
|
+
stdin.write(ENTER); // attempt submit with the required --name field still empty
|
|
74
|
+
expect(onSubmit).not.toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
it("calls onSubmit with correctly-keyed FormValues when all requirements are satisfied", () => {
|
|
77
|
+
const onSubmit = vi.fn();
|
|
78
|
+
// boolOnlyNode has no required fields and exactly one field (--verbose,
|
|
79
|
+
// boolean, default false). active=0 === fields.length-1, so Enter
|
|
80
|
+
// immediately calls trySubmit() with no navigation required.
|
|
81
|
+
const { stdin } = render(_jsx(CommandForm, { node: boolOnlyNode, onSubmit: onSubmit, onCancel: () => { } }));
|
|
82
|
+
stdin.write(ENTER); // submit from field 0 (which is also the last field)
|
|
83
|
+
expect(onSubmit).toHaveBeenCalledTimes(1);
|
|
84
|
+
// Boolean default must be keyed as opt:<long> with value false.
|
|
85
|
+
expect(onSubmit).toHaveBeenCalledWith({ "opt:--verbose": false });
|
|
86
|
+
});
|
|
87
|
+
it("calls onCancel on escape", () => {
|
|
88
|
+
vi.useFakeTimers();
|
|
89
|
+
const onCancel = vi.fn();
|
|
90
|
+
const { stdin } = render(_jsx(CommandForm, { node: node, onSubmit: () => { }, onCancel: onCancel }));
|
|
91
|
+
stdin.write(ESC); // ESC — ink 7 parks bare \x1b in a pending-escape buffer
|
|
92
|
+
vi.advanceTimersByTime(25); // flush the 20 ms pending-escape debounce
|
|
93
|
+
expect(onCancel).toHaveBeenCalledTimes(1);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=command-form.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-form.test.js","sourceRoot":"","sources":["../../../src/tui/__tests__/command-form.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-tree.test.d.ts","sourceRoot":"","sources":["../../../src/tui/__tests__/command-tree.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { buildCommandTree } from "../command-tree.js";
|
|
4
|
+
function fixture() {
|
|
5
|
+
const program = new Command("oxagen").description("Oxagen developer CLI");
|
|
6
|
+
const auth = program.command("auth").description("Authentication");
|
|
7
|
+
auth
|
|
8
|
+
.command("login")
|
|
9
|
+
.description("Authenticate")
|
|
10
|
+
.requiredOption("--email <email>", "Email address")
|
|
11
|
+
.requiredOption("--password <password>", "Password")
|
|
12
|
+
.option("--remember", "Stay signed in")
|
|
13
|
+
.action(() => { });
|
|
14
|
+
const agent = program.command("agent").description("Agent commands");
|
|
15
|
+
const mcp = agent.command("mcp").description("MCP servers");
|
|
16
|
+
mcp
|
|
17
|
+
.command("register")
|
|
18
|
+
.description("Register an MCP server")
|
|
19
|
+
.argument("<name>", "server name")
|
|
20
|
+
.option("--auth-config <json>", "auth config")
|
|
21
|
+
.action(() => { });
|
|
22
|
+
return program;
|
|
23
|
+
}
|
|
24
|
+
describe("buildCommandTree", () => {
|
|
25
|
+
it("maps nested groups, args, options, and runnable leaves", () => {
|
|
26
|
+
const tree = buildCommandTree(fixture());
|
|
27
|
+
expect(tree.name).toBe("oxagen");
|
|
28
|
+
expect(tree.path).toEqual([]);
|
|
29
|
+
expect(tree.children.map((c) => c.name).sort()).toEqual(["agent", "auth"]);
|
|
30
|
+
const authNode = tree.children.find((c) => c.name === "auth");
|
|
31
|
+
expect(authNode).toBeDefined();
|
|
32
|
+
const login = authNode.children[0];
|
|
33
|
+
expect(login.path).toEqual(["auth", "login"]);
|
|
34
|
+
expect(login.runnable).toBe(true);
|
|
35
|
+
expect(login.options.find((o) => o.long === "--email").required).toBe(true);
|
|
36
|
+
expect(login.options.find((o) => o.long === "--remember").isBoolean).toBe(true);
|
|
37
|
+
const agentNode = tree.children.find((c) => c.name === "agent");
|
|
38
|
+
expect(agentNode).toBeDefined();
|
|
39
|
+
const mcpNode = agentNode.children.find((c) => c.name === "mcp");
|
|
40
|
+
expect(mcpNode).toBeDefined();
|
|
41
|
+
const register = mcpNode.children[0];
|
|
42
|
+
expect(register.path).toEqual(["agent", "mcp", "register"]);
|
|
43
|
+
expect(register.args[0]).toMatchObject({
|
|
44
|
+
name: "name",
|
|
45
|
+
required: true,
|
|
46
|
+
variadic: false,
|
|
47
|
+
});
|
|
48
|
+
expect(register.options.find((o) => o.long === "--auth-config").secret).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it("omits the implicit help command", () => {
|
|
51
|
+
const tree = buildCommandTree(fixture());
|
|
52
|
+
expect(tree.children.some((c) => c.name === "help")).toBe(false);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=command-tree.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-tree.test.js","sourceRoot":"","sources":["../../../src/tui/__tests__/command-tree.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.test.d.ts","sourceRoot":"","sources":["../../../src/tui/__tests__/runner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from "vitest";
|
|
2
|
+
import { assembleArgv } from "../runner.js";
|
|
3
|
+
const node = {
|
|
4
|
+
name: "login",
|
|
5
|
+
description: "Authenticate",
|
|
6
|
+
path: ["auth", "login"],
|
|
7
|
+
args: [{ name: "name", required: true, variadic: false, description: "" }],
|
|
8
|
+
options: [
|
|
9
|
+
{ flags: "--email <e>", long: "--email", description: "", required: true, isBoolean: false, takesValue: true, secret: false },
|
|
10
|
+
{ flags: "--remember", long: "--remember", description: "", required: false, isBoolean: true, takesValue: false, secret: false },
|
|
11
|
+
{ flags: "--tags <t...>", long: "--tags", description: "", required: false, isBoolean: false, takesValue: true, secret: false },
|
|
12
|
+
{ flags: "--note <n>", long: "--note", description: "", required: false, isBoolean: false, takesValue: true, secret: false },
|
|
13
|
+
],
|
|
14
|
+
children: [],
|
|
15
|
+
runnable: true,
|
|
16
|
+
};
|
|
17
|
+
describe("assembleArgv", () => {
|
|
18
|
+
it("orders positionals, includes set options, and drops empty/false ones", () => {
|
|
19
|
+
const argv = assembleArgv(node, {
|
|
20
|
+
"arg:name": "acme",
|
|
21
|
+
"opt:--email": "you@example.com",
|
|
22
|
+
"opt:--remember": true,
|
|
23
|
+
});
|
|
24
|
+
expect(argv).toEqual(["acme", "--email=you@example.com", "--remember"]);
|
|
25
|
+
});
|
|
26
|
+
it("omits boolean flags that are false and value options left blank", () => {
|
|
27
|
+
const argv = assembleArgv(node, { "arg:name": "acme", "opt:--remember": false, "opt:--email": "" });
|
|
28
|
+
expect(argv).toEqual(["acme"]);
|
|
29
|
+
});
|
|
30
|
+
it("emits option values beginning with dash as single token to prevent misparsing", () => {
|
|
31
|
+
const argv = assembleArgv(node, {
|
|
32
|
+
"arg:name": "acme",
|
|
33
|
+
"opt:--note": "-5",
|
|
34
|
+
});
|
|
35
|
+
expect(argv).toEqual(["acme", "--note=-5"]);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=runner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../../src/tui/__tests__/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,IAAI,GAAgB;IACxB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC1E,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QAC7H,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAChI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QAC/H,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;KAC7H;IACD,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE;YAC9B,UAAU,EAAE,MAAM;YAClB,aAAa,EAAE,iBAAiB;YAChC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,yBAAyB,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACpG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE;YAC9B,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.test.d.ts","sourceRoot":"","sources":["../../../src/tui/__tests__/theme.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { theme } from "../theme.js";
|
|
3
|
+
describe("theme", () => {
|
|
4
|
+
it("exposes the Oxagen brand palette and glyphs", () => {
|
|
5
|
+
expect(theme.cyan).toBe("#7CE8F4");
|
|
6
|
+
expect(theme.violet).toBe("#7C5AED");
|
|
7
|
+
expect(theme.ring).toBe("◯");
|
|
8
|
+
expect(theme.pointer).toBe("❯");
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=theme.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.test.js","sourceRoot":"","sources":["../../../src/tui/__tests__/theme.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-feed.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/activity-feed.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAmBxC,wBAAgB,YAAY,IAAI,KAAK,CAAC,YAAY,CAiCjD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Activity Feed — real-time scrolling feed of agent actions,
|
|
4
|
+
* tool calls, decisions, and memory operations.
|
|
5
|
+
*/
|
|
6
|
+
import { Box, Text } from "ink";
|
|
7
|
+
import React, { useState } from "react";
|
|
8
|
+
import { theme } from "../theme.js";
|
|
9
|
+
const TYPE_CONFIG = {
|
|
10
|
+
tool: { symbol: "⚡", color: "#60A5FA" },
|
|
11
|
+
decision: { symbol: "◆", color: "#A78BFA" },
|
|
12
|
+
memory: { symbol: "💾", color: "#34D399" },
|
|
13
|
+
compile: { symbol: "⟐", color: theme.cyan },
|
|
14
|
+
error: { symbol: "✗", color: "#EF4444" },
|
|
15
|
+
graph: { symbol: "◇", color: "#F472B6" },
|
|
16
|
+
};
|
|
17
|
+
export function ActivityFeed() {
|
|
18
|
+
const [entries] = useState([
|
|
19
|
+
{ timestamp: "15:42:08", type: "compile", message: "Context compiled", detail: "8ms · 72% cache · 12 records" },
|
|
20
|
+
{ timestamp: "15:42:09", type: "tool", message: "grep_search", detail: "'handleLogin' in src/**/*.ts → 3 matches" },
|
|
21
|
+
{ timestamp: "15:42:10", type: "memory", message: "Episodic write", detail: "tool_call: grep (success) · sal:0.45" },
|
|
22
|
+
{ timestamp: "15:42:11", type: "tool", message: "read_file", detail: "src/auth/session.ts (142 lines)" },
|
|
23
|
+
{ timestamp: "15:42:11", type: "memory", message: "Episodic write", detail: "tool_call: read (success) · sal:0.50" },
|
|
24
|
+
{ timestamp: "15:42:12", type: "graph", message: "Neo4j sync", detail: ":REMEMBERS → file:auth/session.ts" },
|
|
25
|
+
{ timestamp: "15:42:13", type: "decision", message: "Route to fix", detail: "Auth token validation missing null check" },
|
|
26
|
+
{ timestamp: "15:42:14", type: "tool", message: "str_replace", detail: "src/auth/session.ts:47 · added null guard" },
|
|
27
|
+
{ timestamp: "15:42:14", type: "memory", message: "Semantic assert", detail: "\"Session validation requires null check\" · conf:0.85" },
|
|
28
|
+
]);
|
|
29
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.dim, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { bold: true, color: "#FBBF24", children: "\u25C8 ACTIVITY" }), _jsx(Text, { dimColor: true, children: " (live feed)" })] }), entries.map((entry, i) => {
|
|
30
|
+
const cfg = TYPE_CONFIG[entry.type] ?? TYPE_CONFIG["tool"];
|
|
31
|
+
return (_jsxs(Box, { gap: 1, children: [_jsx(Text, { dimColor: true, children: entry.timestamp }), _jsx(Text, { color: cfg.color, children: cfg.symbol }), _jsx(Text, { bold: true, children: entry.message }), entry.detail && _jsx(Text, { dimColor: true, wrap: "truncate", children: entry.detail })] }, i));
|
|
32
|
+
})] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=activity-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-feed.js","sourceRoot":"","sources":["../../../src/tui/agent-view/activity-feed.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-bar.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/budget-bar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA0DxC,wBAAgB,SAAS,IAAI,KAAK,CAAC,YAAY,CAsD9C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Budget Bar — full-width token budget visualization showing allocation
|
|
4
|
+
* across system, procedural, retrieved, compressed, and working sections.
|
|
5
|
+
*/
|
|
6
|
+
import { Box, Text } from "ink";
|
|
7
|
+
import React, { useState } from "react";
|
|
8
|
+
import { theme } from "../theme.js";
|
|
9
|
+
const SECTION_COLORS = {
|
|
10
|
+
system: "#60A5FA",
|
|
11
|
+
procedural: "#FBBF24",
|
|
12
|
+
retrieved: "#34D399",
|
|
13
|
+
compressed: "#A78BFA",
|
|
14
|
+
working: "#F472B6",
|
|
15
|
+
};
|
|
16
|
+
function segmentBar(allocations, width = 50) {
|
|
17
|
+
const { system, procedural, retrieved, compressed, working, budgetTotal } = allocations;
|
|
18
|
+
const sections = [
|
|
19
|
+
{ name: "system", tokens: system, color: SECTION_COLORS["system"] },
|
|
20
|
+
{ name: "procedural", tokens: procedural, color: SECTION_COLORS["procedural"] },
|
|
21
|
+
{ name: "retrieved", tokens: retrieved, color: SECTION_COLORS["retrieved"] },
|
|
22
|
+
{ name: "compressed", tokens: compressed, color: SECTION_COLORS["compressed"] },
|
|
23
|
+
{ name: "working", tokens: working, color: SECTION_COLORS["working"] },
|
|
24
|
+
];
|
|
25
|
+
const segments = [];
|
|
26
|
+
for (const section of sections) {
|
|
27
|
+
const chars = Math.max(0, Math.round((section.tokens / budgetTotal) * width));
|
|
28
|
+
if (chars > 0) {
|
|
29
|
+
segments.push(_jsx(Text, { color: section.color, children: "█".repeat(chars) }, section.name));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Remaining budget (empty)
|
|
33
|
+
const usedChars = sections.reduce((sum, s) => sum + Math.max(0, Math.round((s.tokens / budgetTotal) * width)), 0);
|
|
34
|
+
const remaining = width - usedChars;
|
|
35
|
+
if (remaining > 0) {
|
|
36
|
+
segments.push(_jsx(Text, { dimColor: true, children: "░".repeat(remaining) }, "empty"));
|
|
37
|
+
}
|
|
38
|
+
return _jsx(Text, { children: segments });
|
|
39
|
+
}
|
|
40
|
+
export function BudgetBar() {
|
|
41
|
+
const [budget] = useState({
|
|
42
|
+
system: 1200,
|
|
43
|
+
procedural: 800,
|
|
44
|
+
retrieved: 4500,
|
|
45
|
+
compressed: 350,
|
|
46
|
+
working: 1400,
|
|
47
|
+
total: 8250,
|
|
48
|
+
budgetTotal: 12000,
|
|
49
|
+
});
|
|
50
|
+
const usagePercent = Math.round((budget.total / budget.budgetTotal) * 100);
|
|
51
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.dim, paddingX: 1, children: [_jsxs(Box, { gap: 2, marginBottom: 1, children: [_jsx(Text, { bold: true, color: theme.cyan, children: "\u25C8 TOKEN BUDGET" }), _jsxs(Text, { children: [_jsx(Text, { bold: true, children: budget.total.toLocaleString() }), _jsxs(Text, { dimColor: true, children: [" / ", budget.budgetTotal.toLocaleString(), " tokens"] })] }), _jsxs(Text, { color: usagePercent < 80 ? "#34D399" : "#FBBF24", bold: true, children: [usagePercent, "%"] })] }), _jsx(Box, { children: segmentBar(budget) }), _jsxs(Box, { gap: 2, marginTop: 1, children: [_jsxs(Text, { children: [_jsx(Text, { color: SECTION_COLORS["system"], children: "\u25A0" }), _jsxs(Text, { dimColor: true, children: [" sys:", budget.system] })] }), _jsxs(Text, { children: [_jsx(Text, { color: SECTION_COLORS["procedural"], children: "\u25A0" }), _jsxs(Text, { dimColor: true, children: [" rules:", budget.procedural] })] }), _jsxs(Text, { children: [_jsx(Text, { color: SECTION_COLORS["retrieved"], children: "\u25A0" }), _jsxs(Text, { dimColor: true, children: [" retr:", budget.retrieved] })] }), _jsxs(Text, { children: [_jsx(Text, { color: SECTION_COLORS["compressed"], children: "\u25A0" }), _jsxs(Text, { dimColor: true, children: [" comp:", budget.compressed] })] }), _jsxs(Text, { children: [_jsx(Text, { color: SECTION_COLORS["working"], children: "\u25A0" }), _jsxs(Text, { dimColor: true, children: [" work:", budget.working] })] })] })] }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=budget-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-bar.js","sourceRoot":"","sources":["../../../src/tui/agent-view/budget-bar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-panel.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/compile-panel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA+BxC,wBAAgB,YAAY,IAAI,KAAK,CAAC,YAAY,CA4FjD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Compile Panel — shows the last compile() result metrics including
|
|
4
|
+
* retrieval engine breakdown, budget utilization, and cache hit rate.
|
|
5
|
+
*/
|
|
6
|
+
import { Box, Text } from "ink";
|
|
7
|
+
import React, { useState } from "react";
|
|
8
|
+
import { theme } from "../theme.js";
|
|
9
|
+
function progressBar(value, width = 16, color) {
|
|
10
|
+
const filled = Math.round(value * width);
|
|
11
|
+
const bar = "━".repeat(filled) + "╌".repeat(width - filled);
|
|
12
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: color ?? theme.cyan, children: bar.slice(0, filled) }), _jsx(Text, { dimColor: true, children: bar.slice(filled) })] }));
|
|
13
|
+
}
|
|
14
|
+
export function CompilePanel() {
|
|
15
|
+
const [stats] = useState({
|
|
16
|
+
totalMs: 8,
|
|
17
|
+
retrievalMs: 5,
|
|
18
|
+
packingMs: 2,
|
|
19
|
+
layoutMs: 1,
|
|
20
|
+
candidatesRetrieved: 47,
|
|
21
|
+
candidatesPacked: 12,
|
|
22
|
+
candidatesEvicted: 28,
|
|
23
|
+
candidatesCompressed: 7,
|
|
24
|
+
cacheHitRate: 0.72,
|
|
25
|
+
engines: [
|
|
26
|
+
{ name: "temporal", candidates: 15, ms: 2 },
|
|
27
|
+
{ name: "graph", candidates: 8, ms: 1 },
|
|
28
|
+
{ name: "vector", candidates: 14, ms: 3 },
|
|
29
|
+
{ name: "lexical", candidates: 10, ms: 1 },
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.dim, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { bold: true, color: theme.violet, children: "\u25C8 COMPILE" }), _jsx(Text, { dimColor: true, children: " (last turn)" })] }), _jsxs(Box, { gap: 1, children: [_jsx(Text, { dimColor: true, children: "Total:" }), _jsxs(Text, { bold: true, color: stats.totalMs < 20 ? "#34D399" : "#FBBF24", children: [stats.totalMs, "ms"] }), _jsxs(Text, { dimColor: true, children: ["\u2502 R:", stats.retrievalMs, "ms P:", stats.packingMs, "ms L:", stats.layoutMs, "ms"] })] }), _jsxs(Box, { gap: 1, marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Cache:" }), progressBar(stats.cacheHitRate, 12, stats.cacheHitRate > 0.6 ? "#34D399" : "#FBBF24"), _jsxs(Text, { bold: true, children: [Math.round(stats.cacheHitRate * 100), "%"] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Candidates:" }), _jsxs(Box, { gap: 1, paddingLeft: 2, children: [_jsx(Text, { children: "Retrieved" }), _jsx(Text, { bold: true, color: theme.cyan, children: stats.candidatesRetrieved }), _jsx(Text, { dimColor: true, children: "\u2192" }), _jsx(Text, { children: "Packed" }), _jsx(Text, { bold: true, color: "#34D399", children: stats.candidatesPacked }), _jsx(Text, { dimColor: true, children: "\u2502" }), _jsx(Text, { dimColor: true, children: "Compressed" }), _jsx(Text, { children: stats.candidatesCompressed }), _jsx(Text, { dimColor: true, children: "\u2502" }), _jsx(Text, { dimColor: true, children: "Evicted" }), _jsx(Text, { color: theme.dim, children: stats.candidatesEvicted })] })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Engines:" }), stats.engines.map((e) => (_jsxs(Box, { paddingLeft: 2, gap: 1, children: [_jsx(Box, { width: 10, children: _jsx(Text, { children: e.name }) }), _jsxs(Text, { dimColor: true, children: [String(e.candidates).padStart(3), " hits"] }), _jsxs(Text, { dimColor: true, children: ["(", e.ms, "ms)"] })] }, e.name)))] })] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=compile-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-panel.js","sourceRoot":"","sources":["../../../src/tui/agent-view/compile-panel.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAepC,SAAS,WAAW,CAClB,KAAa,EACb,KAAK,GAAG,EAAE,EACV,KAAc;IAEd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IAC5D,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,YAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAQ,EAC/D,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAQ,IACpC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAe;QACrC,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,EAAE;QACvB,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,EAAE;QACrB,oBAAoB,EAAE,CAAC;QACvB,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;YAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;YACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;YACzC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;SAC3C;KACF,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,GAAG,EACtB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,+BAEvB,EACP,KAAC,IAAI,IAAC,QAAQ,mCAAoB,IAC9B,EAGN,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACT,KAAC,IAAI,IAAC,QAAQ,6BAAc,EAC5B,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aACzD,KAAK,CAAC,OAAO,UACT,EACP,MAAC,IAAI,IAAC,QAAQ,gCACP,KAAK,CAAC,WAAW,WAAO,KAAK,CAAC,SAAS,WAAO,KAAK,CAAC,QAAQ,UAC5D,IACH,EAGN,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,aACvB,KAAC,IAAI,IAAC,QAAQ,6BAAc,EAC3B,WAAW,CACV,KAAK,CAAC,YAAY,EAClB,EAAE,EACF,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACjD,EACD,MAAC,IAAI,IAAC,IAAI,mBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,SAAS,IACrD,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,QAAQ,kCAAmB,EACjC,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,aACzB,KAAC,IAAI,4BAAiB,EACtB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,IAAI,YACzB,KAAK,CAAC,mBAAmB,GACrB,EACP,KAAC,IAAI,IAAC,QAAQ,6BAAS,EACvB,KAAC,IAAI,yBAAc,EACnB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,SAAS,YACvB,KAAK,CAAC,gBAAgB,GAClB,EACP,KAAC,IAAI,IAAC,QAAQ,6BAAS,EACvB,KAAC,IAAI,IAAC,QAAQ,iCAAkB,EAChC,KAAC,IAAI,cAAE,KAAK,CAAC,oBAAoB,GAAQ,EACzC,KAAC,IAAI,IAAC,QAAQ,6BAAS,EACvB,KAAC,IAAI,IAAC,QAAQ,8BAAe,EAC7B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAG,KAAK,CAAC,iBAAiB,GAAQ,IACpD,IACF,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,QAAQ,+BAAgB,EAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACxB,MAAC,GAAG,IAAc,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aACtC,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,cAAE,CAAC,CAAC,IAAI,GAAQ,GACjB,EACN,MAAC,IAAI,IAAC,QAAQ,mBAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAC7D,MAAC,IAAI,IAAC,QAAQ,wBAAG,CAAC,CAAC,EAAE,WAAW,KALxB,CAAC,CAAC,IAAI,CAMV,CACP,CAAC,IACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,wBAAgB,SAAS,IAAI,KAAK,CAAC,YAAY,CA2C9C;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Agent View — full-screen TUI dashboard showing the Oxagen context engine in
|
|
4
|
+
* real-time. Shows memory writes, context compilation, session state,
|
|
5
|
+
* token budgets, and code graph activity.
|
|
6
|
+
*
|
|
7
|
+
* Inspired by mission-control-style developer dashboards.
|
|
8
|
+
* Launch with: `oxagen view`
|
|
9
|
+
*/
|
|
10
|
+
import { Box, Text, render } from "ink";
|
|
11
|
+
import React, { useState, useEffect } from "react";
|
|
12
|
+
import { theme } from "../theme.js";
|
|
13
|
+
import { MemoryPanel } from "./memory-panel.js";
|
|
14
|
+
import { CompilePanel } from "./compile-panel.js";
|
|
15
|
+
import { SessionPanel } from "./session-panel.js";
|
|
16
|
+
import { BudgetBar } from "./budget-bar.js";
|
|
17
|
+
import { ActivityFeed } from "./activity-feed.js";
|
|
18
|
+
import { StatusBar } from "./status-bar.js";
|
|
19
|
+
export function AgentView() {
|
|
20
|
+
const [tick, setTick] = useState(0);
|
|
21
|
+
// Refresh every second for live data
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const interval = setInterval(() => setTick((t) => t + 1), 1000);
|
|
24
|
+
return () => clearInterval(interval);
|
|
25
|
+
}, []);
|
|
26
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsxs(Text, { color: theme.cyan, bold: true, children: [theme.ring, " "] }), _jsx(Text, { color: theme.violet, bold: true, children: "OXAGEN" }), _jsx(Text, { dimColor: true, children: " \u00B7 agent memory engine \u00B7 " }), _jsx(Text, { color: theme.cyan, children: "live" })] }), _jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, gap: 1, children: [_jsx(MemoryPanel, {}), _jsx(ActivityFeed, {})] }), _jsxs(Box, { flexDirection: "column", width: 44, gap: 1, children: [_jsx(CompilePanel, {}), _jsx(SessionPanel, {})] })] }), _jsx(Box, { marginTop: 1, children: _jsx(BudgetBar, {}) }), _jsx(StatusBar, { tick: tick })] }));
|
|
27
|
+
}
|
|
28
|
+
export function launchAgentView() {
|
|
29
|
+
render(_jsx(AgentView, {}));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/agent-view/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpC,qCAAqC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aAErC,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,mBAAE,KAAK,CAAC,IAAI,SAAS,EAClD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,6BAAc,EAC7C,KAAC,IAAI,IAAC,QAAQ,8DAAqC,EACnD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,qBAAa,IAChC,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,GAAG,EAAE,CAAC,aAE7B,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,aAC7C,KAAC,WAAW,KAAG,EACf,KAAC,YAAY,KAAG,IACZ,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,aAC3C,KAAC,YAAY,KAAG,EAChB,KAAC,YAAY,KAAG,IACZ,IACF,EAGN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,SAAS,KAAG,GACT,EAGN,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,IACrB,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-panel.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/memory-panel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,CA6FhD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Memory Panel — shows recent memory writes with kind badges,
|
|
4
|
+
* salience indicators, and content previews.
|
|
5
|
+
*/
|
|
6
|
+
import { Box, Text } from "ink";
|
|
7
|
+
import React, { useState } from "react";
|
|
8
|
+
import { theme } from "../theme.js";
|
|
9
|
+
const KIND_SYMBOLS = {
|
|
10
|
+
episodic: "⚡",
|
|
11
|
+
semantic: "📘",
|
|
12
|
+
procedural: "⚙️",
|
|
13
|
+
entity: "◆",
|
|
14
|
+
edge: "─→",
|
|
15
|
+
};
|
|
16
|
+
const KIND_COLORS = {
|
|
17
|
+
episodic: "#60A5FA",
|
|
18
|
+
semantic: "#34D399",
|
|
19
|
+
procedural: "#FBBF24",
|
|
20
|
+
entity: "#A78BFA",
|
|
21
|
+
edge: "#F472B6",
|
|
22
|
+
};
|
|
23
|
+
function salienceBar(value, width = 8) {
|
|
24
|
+
const filled = Math.round(value * width);
|
|
25
|
+
return "█".repeat(filled) + "░".repeat(width - filled);
|
|
26
|
+
}
|
|
27
|
+
export function MemoryPanel() {
|
|
28
|
+
// In production, this would subscribe to the daemon's event stream.
|
|
29
|
+
// For now, show a static example that demonstrates the layout.
|
|
30
|
+
const [memories] = useState([
|
|
31
|
+
{
|
|
32
|
+
id: "a1b2c3d4",
|
|
33
|
+
kind: "episodic",
|
|
34
|
+
summary: "tool_call: grep (success)",
|
|
35
|
+
salience: 0.65,
|
|
36
|
+
age: "2s",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "e5f6g7h8",
|
|
40
|
+
kind: "semantic",
|
|
41
|
+
summary: "API uses OAuth2 for authentication",
|
|
42
|
+
salience: 0.82,
|
|
43
|
+
age: "5m",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "i9j0k1l2",
|
|
47
|
+
kind: "procedural",
|
|
48
|
+
summary: "Always validate input schemas",
|
|
49
|
+
salience: 1.0,
|
|
50
|
+
age: "2h",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "m3n4o5p6",
|
|
54
|
+
kind: "episodic",
|
|
55
|
+
summary: "decision: use knapsack packer",
|
|
56
|
+
salience: 0.55,
|
|
57
|
+
age: "12s",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "q7r8s9t0",
|
|
61
|
+
kind: "episodic",
|
|
62
|
+
summary: "tool_call: read_file (success)",
|
|
63
|
+
salience: 0.45,
|
|
64
|
+
age: "30s",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "u1v2w3x4",
|
|
68
|
+
kind: "entity",
|
|
69
|
+
summary: "function: buildTaskFrame",
|
|
70
|
+
salience: 0.4,
|
|
71
|
+
age: "1h",
|
|
72
|
+
},
|
|
73
|
+
]);
|
|
74
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.dim, paddingX: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { bold: true, color: theme.cyan, children: "\u25C8 MEMORIES" }), _jsxs(Text, { dimColor: true, children: [" (", memories.length, " recent)"] })] }), memories.map((mem) => (_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: KIND_COLORS[mem.kind], children: KIND_SYMBOLS[mem.kind] ?? "·" }), _jsx(Box, { width: 10, children: _jsx(Text, { dimColor: true, children: mem.kind.slice(0, 8).padEnd(8) }) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { wrap: "truncate", children: mem.summary }) }), _jsx(Box, { width: 10, children: _jsx(Text, { color: mem.salience >= 0.7
|
|
75
|
+
? "#34D399"
|
|
76
|
+
: mem.salience >= 0.4
|
|
77
|
+
? "#FBBF24"
|
|
78
|
+
: theme.dim, children: salienceBar(mem.salience) }) }), _jsx(Box, { width: 5, children: _jsx(Text, { dimColor: true, children: mem.age.padStart(4) }) })] }, mem.id)))] }));
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=memory-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-panel.js","sourceRoot":"","sources":["../../../src/tui/agent-view/memory-panel.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAUpC,MAAM,YAAY,GAA2B;IAC3C,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa,EAAE,KAAK,GAAG,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAgB;QACzC;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,IAAI;SACV;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,IAAI;SACV;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,GAAG;YACb,GAAG,EAAE,IAAI;SACV;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,KAAK;SACX;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,gCAAgC;YACzC,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,KAAK;SACX;QACD;YACE,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0BAA0B;YACnC,QAAQ,EAAE,GAAG;YACb,GAAG,EAAE,IAAI;SACV;KACF,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,GAAG,EACtB,QAAQ,EAAE,CAAC,aAEX,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,CAAC,IAAI,gCAErB,EACP,MAAC,IAAI,IAAC,QAAQ,yBAAI,QAAQ,CAAC,MAAM,gBAAgB,IAC7C,EAEL,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrB,MAAC,GAAG,IAAc,GAAG,EAAE,CAAC,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GACzB,EACP,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAQ,GAClD,EACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,YAAE,GAAG,CAAC,OAAO,GAAQ,GACtC,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IACH,KAAK,EACH,GAAG,CAAC,QAAQ,IAAI,GAAG;gCACjB,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG;oCACnB,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,KAAK,CAAC,GAAG,YAGhB,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,GACrB,GACH,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAQ,GACvC,KAzBE,GAAG,CAAC,EAAE,CA0BV,CACP,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-panel.d.ts","sourceRoot":"","sources":["../../../src/tui/agent-view/session-panel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgCxC,wBAAgB,YAAY,IAAI,KAAK,CAAC,YAAY,CA0EjD"}
|