@monoes/monomindcli 1.14.7 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/reengineer-squad/boss.md +113 -0
- package/.claude/agents/reengineer-squad/critic-architect.md +132 -0
- package/.claude/agents/reengineer-squad/git-manager.md +145 -0
- package/.claude/agents/reengineer-squad/idea-generator.md +95 -0
- package/.claude/agents/reengineer-squad/implementer.md +112 -0
- package/.claude/agents/reengineer-squad/integration-planner.md +112 -0
- package/.claude/agents/reengineer-squad/source-analyst.md +103 -0
- package/.claude/agents/reengineer-squad/target-analyst.md +118 -0
- package/.claude/agents/reengineer-squad/tester.md +105 -0
- package/.claude/commands/mastermind/master.md +35 -14
- package/.claude/helpers/handlers/capture-handler.cjs +155 -18
- package/.claude/helpers/monolean-activate.cjs +20 -0
- package/.claude/helpers/monolean-config.cjs +76 -0
- package/.claude/helpers/monolean-instructions.cjs +109 -0
- package/.claude/helpers/monolean-propagate.cjs +9 -0
- package/.claude/helpers/monolean-tracker.cjs +18 -0
- package/.claude/helpers/skill-registry.json +2 -2
- package/.claude/skills/agent-browser-testing/SKILL.md +301 -18
- package/.claude/skills/mastermind/runorg.md +69 -23
- package/.claude/skills/monodesign/SKILL.md +32 -1
- package/.claude/skills/monodesign/adapt.md +53 -0
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
- package/.claude/skills/monodesign/animate.md +65 -0
- package/.claude/skills/monodesign/audit.md +89 -0
- package/.claude/skills/monodesign/bolder.md +50 -0
- package/.claude/skills/monodesign/clarify.md +64 -0
- package/.claude/skills/monodesign/colorize.md +68 -0
- package/.claude/skills/monodesign/craft.md +51 -0
- package/.claude/skills/monodesign/critique.md +66 -0
- package/.claude/skills/monodesign/delight.md +47 -0
- package/.claude/skills/monodesign/distill.md +56 -0
- package/.claude/skills/monodesign/document.md +80 -0
- package/.claude/skills/monodesign/extract.md +74 -0
- package/.claude/skills/monodesign/harden.md +65 -0
- package/.claude/skills/monodesign/live.md +59 -0
- package/.claude/skills/monodesign/onboard.md +50 -0
- package/.claude/skills/monodesign/optimize.md +64 -0
- package/.claude/skills/monodesign/overdrive.md +56 -0
- package/.claude/skills/monodesign/polish.md +68 -0
- package/.claude/skills/monodesign/quieter.md +57 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +248 -76
- package/.claude/skills/monodesign/reference/codex.md +107 -0
- package/.claude/skills/monodesign/reference/craft.md +3 -0
- package/.claude/skills/monodesign/reference/hooks.md +99 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +12 -0
- package/.claude/skills/monodesign/shape.md +71 -0
- package/.claude/skills/monodesign/teach.md +69 -0
- package/.claude/skills/monodesign/typeset.md +59 -0
- package/.claude/skills/monolean/SKILL.md +118 -0
- package/.claude/skills/monolean-audit/SKILL.md +41 -0
- package/.claude/skills/monolean-debt/SKILL.md +46 -0
- package/.claude/skills/monolean-help/SKILL.md +60 -0
- package/.claude/skills/monolean-review/SKILL.md +57 -0
- package/bin/cli.js +3 -1
- package/dist/dashboard/server.js +137 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts +2 -0
- package/dist/src/__tests__/browse-adapters.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-adapters.test.js +51 -0
- package/dist/src/__tests__/browse-adapters.test.js.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts +2 -0
- package/dist/src/__tests__/browse-analyzer.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-analyzer.test.js +68 -0
- package/dist/src/__tests__/browse-analyzer.test.js.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts +2 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js +139 -0
- package/dist/src/__tests__/browse-builtin-handlers.test.js.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts +2 -0
- package/dist/src/__tests__/browse-cdp.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-cdp.test.js +169 -0
- package/dist/src/__tests__/browse-cdp.test.js.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts +2 -0
- package/dist/src/__tests__/browse-dashboard.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-dashboard.test.js +179 -0
- package/dist/src/__tests__/browse-dashboard.test.js.map +1 -0
- package/dist/src/__tests__/browse-engine.test.d.ts +2 -0
- package/dist/src/__tests__/browse-engine.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-engine.test.js +122 -0
- package/dist/src/__tests__/browse-engine.test.js.map +1 -0
- package/dist/src/__tests__/browse-expression.test.d.ts +2 -0
- package/dist/src/__tests__/browse-expression.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-expression.test.js +54 -0
- package/dist/src/__tests__/browse-expression.test.js.map +1 -0
- package/dist/src/__tests__/browse-store.test.d.ts +2 -0
- package/dist/src/__tests__/browse-store.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-store.test.js +99 -0
- package/dist/src/__tests__/browse-store.test.js.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts +2 -0
- package/dist/src/__tests__/browse-workflow-types.test.d.ts.map +1 -0
- package/dist/src/__tests__/browse-workflow-types.test.js +33 -0
- package/dist/src/__tests__/browse-workflow-types.test.js.map +1 -0
- package/dist/src/browser/action-builder/analyzer.d.ts +11 -0
- package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -0
- package/dist/src/browser/action-builder/analyzer.js +71 -0
- package/dist/src/browser/action-builder/analyzer.js.map +1 -0
- package/dist/src/browser/action-builder/types.d.ts +47 -0
- package/dist/src/browser/action-builder/types.d.ts.map +1 -0
- package/dist/src/browser/action-builder/types.js +2 -0
- package/dist/src/browser/action-builder/types.js.map +1 -0
- package/dist/src/browser/adapters/gemini.d.ts +3 -0
- package/dist/src/browser/adapters/gemini.d.ts.map +1 -0
- package/dist/src/browser/adapters/gemini.js +16 -0
- package/dist/src/browser/adapters/gemini.js.map +1 -0
- package/dist/src/browser/adapters/google.d.ts +3 -0
- package/dist/src/browser/adapters/google.d.ts.map +1 -0
- package/dist/src/browser/adapters/google.js +17 -0
- package/dist/src/browser/adapters/google.js.map +1 -0
- package/dist/src/browser/adapters/index.d.ts +19 -0
- package/dist/src/browser/adapters/index.d.ts.map +1 -0
- package/dist/src/browser/adapters/index.js +23 -0
- package/dist/src/browser/adapters/index.js.map +1 -0
- package/dist/src/browser/adapters/instagram.d.ts +3 -0
- package/dist/src/browser/adapters/instagram.d.ts.map +1 -0
- package/dist/src/browser/adapters/instagram.js +17 -0
- package/dist/src/browser/adapters/instagram.js.map +1 -0
- package/dist/src/browser/adapters/linkedin.d.ts +3 -0
- package/dist/src/browser/adapters/linkedin.d.ts.map +1 -0
- package/dist/src/browser/adapters/linkedin.js +19 -0
- package/dist/src/browser/adapters/linkedin.js.map +1 -0
- package/dist/src/browser/adapters/microsoft.d.ts +3 -0
- package/dist/src/browser/adapters/microsoft.d.ts.map +1 -0
- package/dist/src/browser/adapters/microsoft.js +16 -0
- package/dist/src/browser/adapters/microsoft.js.map +1 -0
- package/dist/src/browser/adapters/x.d.ts +3 -0
- package/dist/src/browser/adapters/x.d.ts.map +1 -0
- package/dist/src/browser/adapters/x.js +19 -0
- package/dist/src/browser/adapters/x.js.map +1 -0
- package/dist/src/browser/dashboard/api-types.d.ts +50 -0
- package/dist/src/browser/dashboard/api-types.d.ts.map +1 -0
- package/dist/src/browser/dashboard/api-types.js +14 -0
- package/dist/src/browser/dashboard/api-types.js.map +1 -0
- package/dist/src/browser/dashboard/server.d.ts +9 -0
- package/dist/src/browser/dashboard/server.d.ts.map +1 -0
- package/dist/src/browser/dashboard/server.js +62 -0
- package/dist/src/browser/dashboard/server.js.map +1 -0
- package/dist/src/browser/dashboard/ui.html +1811 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts +3 -0
- package/dist/src/browser/workflow/builtin-handlers.d.ts.map +1 -0
- package/dist/src/browser/workflow/builtin-handlers.js +343 -0
- package/dist/src/browser/workflow/builtin-handlers.js.map +1 -0
- package/dist/src/browser/workflow/engine.d.ts +15 -0
- package/dist/src/browser/workflow/engine.d.ts.map +1 -0
- package/dist/src/browser/workflow/engine.js +127 -0
- package/dist/src/browser/workflow/engine.js.map +1 -0
- package/dist/src/browser/workflow/expression.d.ts +4 -0
- package/dist/src/browser/workflow/expression.d.ts.map +1 -0
- package/dist/src/browser/workflow/expression.js +64 -0
- package/dist/src/browser/workflow/expression.js.map +1 -0
- package/dist/src/browser/workflow/store.d.ts +24 -0
- package/dist/src/browser/workflow/store.d.ts.map +1 -0
- package/dist/src/browser/workflow/store.js +145 -0
- package/dist/src/browser/workflow/store.js.map +1 -0
- package/dist/src/browser/workflow/types.d.ts +48 -0
- package/dist/src/browser/workflow/types.d.ts.map +1 -0
- package/dist/src/browser/workflow/types.js +2 -0
- package/dist/src/browser/workflow/types.js.map +1 -0
- package/dist/src/commands/browse-action.d.ts +4 -0
- package/dist/src/commands/browse-action.d.ts.map +1 -0
- package/dist/src/commands/browse-action.js +151 -0
- package/dist/src/commands/browse-action.js.map +1 -0
- package/dist/src/commands/browse-platform.d.ts +4 -0
- package/dist/src/commands/browse-platform.d.ts.map +1 -0
- package/dist/src/commands/browse-platform.js +117 -0
- package/dist/src/commands/browse-platform.js.map +1 -0
- package/dist/src/commands/browse-workflow.d.ts +4 -0
- package/dist/src/commands/browse-workflow.d.ts.map +1 -0
- package/dist/src/commands/browse-workflow.js +153 -0
- package/dist/src/commands/browse-workflow.js.map +1 -0
- package/dist/src/commands/browse.d.ts +10 -6
- package/dist/src/commands/browse.d.ts.map +1 -1
- package/dist/src/commands/browse.js +11 -2154
- package/dist/src/commands/browse.js.map +1 -1
- package/dist/src/commands/design-detect.d.ts +21 -0
- package/dist/src/commands/design-detect.d.ts.map +1 -0
- package/dist/src/commands/design-detect.js +127 -0
- package/dist/src/commands/design-detect.js.map +1 -0
- package/dist/src/commands/design-palette.d.ts +22 -0
- package/dist/src/commands/design-palette.d.ts.map +1 -0
- package/dist/src/commands/design-palette.js +539 -0
- package/dist/src/commands/design-palette.js.map +1 -0
- package/dist/src/commands/hooks-core-commands.d.ts +10 -0
- package/dist/src/commands/hooks-core-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-core-commands.js +377 -0
- package/dist/src/commands/hooks-core-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts +12 -0
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-commands.js +1217 -0
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts +42 -0
- package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -0
- package/dist/src/commands/hooks-coverage-utils.js +220 -0
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -0
- package/dist/src/commands/hooks-extended-commands.d.ts +14 -0
- package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-extended-commands.js +579 -0
- package/dist/src/commands/hooks-extended-commands.js.map +1 -0
- package/dist/src/commands/hooks-formatting.d.ts +13 -0
- package/dist/src/commands/hooks-formatting.d.ts.map +1 -0
- package/dist/src/commands/hooks-formatting.js +42 -0
- package/dist/src/commands/hooks-formatting.js.map +1 -0
- package/dist/src/commands/hooks-routing-commands.d.ts +15 -0
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -0
- package/dist/src/commands/hooks-routing-commands.js +723 -0
- package/dist/src/commands/hooks-routing-commands.js.map +1 -0
- package/dist/src/commands/hooks-workers.d.ts +9 -0
- package/dist/src/commands/hooks-workers.d.ts.map +1 -0
- package/dist/src/commands/hooks-workers.js +782 -0
- package/dist/src/commands/hooks-workers.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +8 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +179 -4103
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +1 -0
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +6 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +14 -15
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +77 -1
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +18 -8
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +39 -5
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +25 -5
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts +3 -5
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +619 -326
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +161 -0
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-embedding.js +506 -0
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +26 -0
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-intelligence.js +1328 -0
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts +27 -0
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -0
- package/dist/src/mcp-tools/hooks-routing.js +1591 -0
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +3 -38
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +5 -3393
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +24 -14
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +54 -1
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts +58 -0
- package/dist/src/memory/embedding-operations.d.ts.map +1 -0
- package/dist/src/memory/embedding-operations.js +299 -0
- package/dist/src/memory/embedding-operations.js.map +1 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +37 -3
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +130 -0
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -0
- package/dist/src/memory/hnsw-operations.js +400 -0
- package/dist/src/memory/hnsw-operations.js.map +1 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +42 -23
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +52 -8
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts +67 -0
- package/dist/src/memory/memory-crud.d.ts.map +1 -0
- package/dist/src/memory/memory-crud.js +415 -0
- package/dist/src/memory/memory-crud.js.map +1 -0
- package/dist/src/memory/memory-initializer.d.ts +9 -322
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +17 -1794
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts +30 -0
- package/dist/src/memory/memory-migrations.d.ts.map +1 -0
- package/dist/src/memory/memory-migrations.js +134 -0
- package/dist/src/memory/memory-migrations.js.map +1 -0
- package/dist/src/memory/memory-read.d.ts +78 -0
- package/dist/src/memory/memory-read.d.ts.map +1 -0
- package/dist/src/memory/memory-read.js +331 -0
- package/dist/src/memory/memory-read.js.map +1 -0
- package/dist/src/memory/memory-schema.d.ts +13 -0
- package/dist/src/memory/memory-schema.d.ts.map +1 -0
- package/dist/src/memory/memory-schema.js +167 -0
- package/dist/src/memory/memory-schema.js.map +1 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +37 -4
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +16 -6
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts +41 -0
- package/dist/src/pricing/model-pricing.d.ts.map +1 -0
- package/dist/src/pricing/model-pricing.js +61 -0
- package/dist/src/pricing/model-pricing.js.map +1 -0
- package/dist/src/ui/.monomind/capture/active-run.json +1 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.convs.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.jsonl +11 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/rigid-qa-restart-1782288201.jsonl +540 -0
- package/dist/src/ui/.monomind/orgs/system-trial-qa-threads.jsonl +3 -0
- package/dist/src/ui/.monomind/orgs/test-event-fix/runs/rigid-qa-restart-1782288201.jsonl +2 -0
- package/dist/src/ui/MODULARIZATION_PLAN.md +79 -0
- package/dist/src/ui/collector.mjs +23 -13
- package/dist/src/ui/dashboard.html +1653 -14
- package/dist/src/ui/data/known-projects.json +1 -0
- package/dist/src/ui/data/mastermind-events.jsonl +553 -0
- package/dist/src/ui/data/sessions/_index.json +1 -0
- package/dist/src/ui/data/sessions/final-sess-001.jsonl +542 -0
- package/dist/src/ui/data/unknown-events.jsonl +1 -0
- package/dist/src/ui/orgs.html +154 -10
- package/dist/src/ui/server.mjs +1162 -168
- package/dist/src/ui/sse-manager.mjs +119 -0
- package/dist/src/update/checker.js +1 -1
- package/dist/src/update/checker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/workflow/builtin-handlers.js +321 -0
- package/dist/workflow/engine.js +253 -0
- package/dist/workflow/expression.js +98 -0
- package/dist/workflow/types.js +2 -0
- package/package.json +8 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/browser/workflow/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,qBAAa,kBAAmB,SAAQ,KAAK;aACE,KAAK,CAAC,EAAE,OAAO;gBAAhD,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,OAAO,YAAA;CAI7D;AAID,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoBzE;AAgDD,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;AAED,wBAAsB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAwBxE;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;IAClD,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;CACpE,CAAC,CAAC,CAWF;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7D;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAalG"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { readFile, mkdir, writeFile } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
export class WorkflowStoreError extends Error {
|
|
5
|
+
cause;
|
|
6
|
+
constructor(message, cause) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.cause = cause;
|
|
9
|
+
this.name = 'WorkflowStoreError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
// ── JSON file operations ──────────────────────────────────────────────────────
|
|
13
|
+
export async function readWorkflow(filePath) {
|
|
14
|
+
let raw;
|
|
15
|
+
try {
|
|
16
|
+
raw = await readFile(filePath, 'utf8');
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
const code = err.code;
|
|
20
|
+
throw new WorkflowStoreError(code === 'ENOENT' ? `Workflow file not found: ${filePath}` : `Cannot read workflow file: ${filePath}`, err);
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const wf = JSON.parse(raw);
|
|
24
|
+
if (!wf.id || !Array.isArray(wf.nodes) || !Array.isArray(wf.connections)) {
|
|
25
|
+
throw new Error('Missing required fields: id, nodes, connections');
|
|
26
|
+
}
|
|
27
|
+
return wf;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
throw new WorkflowStoreError(`Invalid workflow JSON in ${filePath}: ${err.message}`, err);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// ── SQLite run history (sql.js) ───────────────────────────────────────────────
|
|
34
|
+
const DB_PATH = join(homedir(), '.monomind', 'browse.db');
|
|
35
|
+
async function getDb() {
|
|
36
|
+
const { default: initSqlJs } = await import('sql.js');
|
|
37
|
+
const SQL = await initSqlJs();
|
|
38
|
+
await mkdir(join(homedir(), '.monomind'), { recursive: true });
|
|
39
|
+
let fileBuffer;
|
|
40
|
+
try {
|
|
41
|
+
fileBuffer = await readFile(DB_PATH);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// First run — no DB yet
|
|
45
|
+
}
|
|
46
|
+
const db = fileBuffer ? new SQL.Database(fileBuffer) : new SQL.Database();
|
|
47
|
+
db.run(`CREATE TABLE IF NOT EXISTS browse_runs (
|
|
48
|
+
id TEXT PRIMARY KEY,
|
|
49
|
+
workflow_id TEXT NOT NULL,
|
|
50
|
+
workflow_name TEXT NOT NULL,
|
|
51
|
+
status TEXT NOT NULL,
|
|
52
|
+
started_at INTEGER NOT NULL,
|
|
53
|
+
completed_at INTEGER,
|
|
54
|
+
items_processed INTEGER DEFAULT 0,
|
|
55
|
+
items_total INTEGER DEFAULT 0,
|
|
56
|
+
error TEXT
|
|
57
|
+
)`);
|
|
58
|
+
db.run(`CREATE TABLE IF NOT EXISTS browse_sessions (
|
|
59
|
+
id TEXT PRIMARY KEY,
|
|
60
|
+
platform TEXT NOT NULL,
|
|
61
|
+
username TEXT NOT NULL,
|
|
62
|
+
cookies TEXT NOT NULL,
|
|
63
|
+
user_agent TEXT,
|
|
64
|
+
created_at INTEGER NOT NULL,
|
|
65
|
+
last_used_at INTEGER NOT NULL
|
|
66
|
+
)`);
|
|
67
|
+
return { db, flush: async () => {
|
|
68
|
+
const data = db.export();
|
|
69
|
+
await writeFile(DB_PATH, Buffer.from(data));
|
|
70
|
+
} };
|
|
71
|
+
}
|
|
72
|
+
export async function writeRunRecord(record) {
|
|
73
|
+
const { db, flush } = await getDb();
|
|
74
|
+
db.run(`INSERT OR REPLACE INTO browse_runs
|
|
75
|
+
(id, workflow_id, workflow_name, status, started_at, completed_at, items_processed, items_total, error)
|
|
76
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [record.id, record.workflowId, record.workflowName, record.status,
|
|
77
|
+
record.startedAt, record.completedAt ?? null, record.itemsProcessed,
|
|
78
|
+
record.itemsTotal, record.error ?? null]);
|
|
79
|
+
await flush();
|
|
80
|
+
}
|
|
81
|
+
export async function listRuns(workflowId) {
|
|
82
|
+
const { db } = await getDb();
|
|
83
|
+
const query = workflowId
|
|
84
|
+
? db.prepare(`SELECT * FROM browse_runs WHERE workflow_id = ? ORDER BY started_at DESC LIMIT 50`)
|
|
85
|
+
: db.prepare(`SELECT * FROM browse_runs ORDER BY started_at DESC LIMIT 50`);
|
|
86
|
+
const rows = [];
|
|
87
|
+
if (workflowId)
|
|
88
|
+
query.bind([workflowId]);
|
|
89
|
+
while (query.step()) {
|
|
90
|
+
const r = query.getAsObject();
|
|
91
|
+
rows.push({
|
|
92
|
+
id: r['id'],
|
|
93
|
+
workflowId: r['workflow_id'],
|
|
94
|
+
workflowName: r['workflow_name'],
|
|
95
|
+
status: r['status'],
|
|
96
|
+
startedAt: r['started_at'],
|
|
97
|
+
completedAt: r['completed_at'],
|
|
98
|
+
itemsProcessed: r['items_processed'],
|
|
99
|
+
itemsTotal: r['items_total'],
|
|
100
|
+
error: r['error'],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
query.free();
|
|
104
|
+
return rows;
|
|
105
|
+
}
|
|
106
|
+
export async function saveSession(session) {
|
|
107
|
+
const now = Date.now();
|
|
108
|
+
const { db, flush } = await getDb();
|
|
109
|
+
db.run(`INSERT OR REPLACE INTO browse_sessions
|
|
110
|
+
(id, platform, username, cookies, user_agent, created_at, last_used_at)
|
|
111
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [session.id, session.platform, session.username, session.cookies,
|
|
112
|
+
session.userAgent ?? null, now, now]);
|
|
113
|
+
await flush();
|
|
114
|
+
}
|
|
115
|
+
export async function listSessions() {
|
|
116
|
+
const { db } = await getDb();
|
|
117
|
+
const query = db.prepare(`SELECT id, platform, username, last_used_at FROM browse_sessions ORDER BY last_used_at DESC`);
|
|
118
|
+
const rows = [];
|
|
119
|
+
while (query.step()) {
|
|
120
|
+
const r = query.getAsObject();
|
|
121
|
+
rows.push({ id: r['id'], platform: r['platform'],
|
|
122
|
+
username: r['username'], lastUsedAt: r['last_used_at'] });
|
|
123
|
+
}
|
|
124
|
+
query.free();
|
|
125
|
+
return rows;
|
|
126
|
+
}
|
|
127
|
+
export async function deleteSession(id) {
|
|
128
|
+
const { db, flush } = await getDb();
|
|
129
|
+
db.run(`DELETE FROM browse_sessions WHERE id = ?`, [id]);
|
|
130
|
+
await flush();
|
|
131
|
+
}
|
|
132
|
+
export async function getSessionCookies(platform, username) {
|
|
133
|
+
const { db } = await getDb();
|
|
134
|
+
const stmt = db.prepare(`SELECT cookies FROM browse_sessions WHERE platform = ? AND username = ? LIMIT 1`);
|
|
135
|
+
stmt.bind([platform, username]);
|
|
136
|
+
if (stmt.step()) {
|
|
137
|
+
const r = stmt.getAsObject();
|
|
138
|
+
stmt.free();
|
|
139
|
+
db.run(`UPDATE browse_sessions SET last_used_at = ? WHERE platform = ? AND username = ?`, [Date.now(), platform, username]);
|
|
140
|
+
return r['cookies'];
|
|
141
|
+
}
|
|
142
|
+
stmt.free();
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/browser/workflow/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface WorkflowDef {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
nodes: NodeDef[];
|
|
5
|
+
connections: ConnectionDef[];
|
|
6
|
+
}
|
|
7
|
+
export interface NodeDef {
|
|
8
|
+
id: string;
|
|
9
|
+
type: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
config: Record<string, unknown>;
|
|
12
|
+
onError?: 'skip' | 'stop';
|
|
13
|
+
}
|
|
14
|
+
export interface ConnectionDef {
|
|
15
|
+
from: string;
|
|
16
|
+
to: string;
|
|
17
|
+
handle?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface Item {
|
|
20
|
+
data: Record<string, unknown>;
|
|
21
|
+
binary?: string;
|
|
22
|
+
}
|
|
23
|
+
export type RunStatus = 'running' | 'completed' | 'failed' | 'stopped';
|
|
24
|
+
export interface RunRecord {
|
|
25
|
+
id: string;
|
|
26
|
+
workflowId: string;
|
|
27
|
+
workflowName: string;
|
|
28
|
+
status: RunStatus;
|
|
29
|
+
startedAt: number;
|
|
30
|
+
completedAt?: number;
|
|
31
|
+
itemsProcessed: number;
|
|
32
|
+
itemsTotal: number;
|
|
33
|
+
error?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface StepEvent {
|
|
36
|
+
runId: string;
|
|
37
|
+
workflowId: string;
|
|
38
|
+
workflowName: string;
|
|
39
|
+
nodeId: string;
|
|
40
|
+
nodeName: string;
|
|
41
|
+
eventType: 'run_started' | 'step_started' | 'step_completed' | 'step_failed' | 'run_completed' | 'run_stopped';
|
|
42
|
+
itemIndex?: number;
|
|
43
|
+
itemTotal?: number;
|
|
44
|
+
durationMs?: number;
|
|
45
|
+
error?: string;
|
|
46
|
+
timestamp: number;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser/workflow/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,CAAC;IAC/G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/browser/workflow/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-action.d.ts","sourceRoot":"","sources":["../../../src/commands/browse-action.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAyI1E,eAAO,MAAM,mBAAmB,EAAE,OAajC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { readdir, readFile } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { output } from '../output.js';
|
|
4
|
+
const buildSubcommand = {
|
|
5
|
+
name: 'build',
|
|
6
|
+
description: 'AI-powered: open a URL, analyze DOM, generate an action JSON file',
|
|
7
|
+
options: [
|
|
8
|
+
{ name: 'url', short: 'u', type: 'string', description: 'URL to analyze', required: true },
|
|
9
|
+
{ name: 'task', short: 't', type: 'string', description: 'What you want the action to do', required: true },
|
|
10
|
+
{ name: 'port', type: 'number', description: 'CDP port', default: 9222 },
|
|
11
|
+
{ name: 'output', short: 'o', type: 'string', description: 'Output directory', default: '.monomind/actions' },
|
|
12
|
+
],
|
|
13
|
+
action: async (ctx) => {
|
|
14
|
+
const url = ctx.flags.url;
|
|
15
|
+
const task = ctx.flags.task;
|
|
16
|
+
const port = ctx.flags.port ?? 9222;
|
|
17
|
+
const outDir = join(ctx.cwd, ctx.flags.output ?? '.monomind/actions');
|
|
18
|
+
if (!url || !task) {
|
|
19
|
+
output.printError('--url and --task are required');
|
|
20
|
+
return { success: false, exitCode: 1 };
|
|
21
|
+
}
|
|
22
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
23
|
+
output.printError('ANTHROPIC_API_KEY is not set. Required for action build.');
|
|
24
|
+
return { success: false, exitCode: 1 };
|
|
25
|
+
}
|
|
26
|
+
const spinner = output.createSpinner({ text: `Opening ${url}...`, spinner: 'dots' });
|
|
27
|
+
spinner.start();
|
|
28
|
+
try {
|
|
29
|
+
const browser = await import('@monoes/monobrowse');
|
|
30
|
+
const cdpPort = await browser.launchBrowser({ port, headless: false });
|
|
31
|
+
const { client, sessionId } = await browser.connectToTarget(cdpPort);
|
|
32
|
+
spinner.stop('Navigated. Analyzing DOM...');
|
|
33
|
+
const { analyzeAndBuild } = await import('../browser/action-builder/analyzer.js');
|
|
34
|
+
const action = await analyzeAndBuild({ url, task, client, sessionId, outputDir: outDir });
|
|
35
|
+
spinner.succeed(`Action generated: ${action.id}`);
|
|
36
|
+
output.writeln();
|
|
37
|
+
output.printBox([
|
|
38
|
+
`ID: ${action.id}`,
|
|
39
|
+
`Platform: ${action.platform}`,
|
|
40
|
+
`Steps: ${action.steps.length}`,
|
|
41
|
+
`Params: ${action.params.join(', ')}`,
|
|
42
|
+
`Saved to: ${outDir}/${action.id.replace(/[^a-z0-9_-]/gi, '_')}.json`,
|
|
43
|
+
].join('\n'), 'Action Built');
|
|
44
|
+
client.close();
|
|
45
|
+
return { success: true, data: action };
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
spinner.fail('Action build failed');
|
|
49
|
+
output.printError(err.message);
|
|
50
|
+
return { success: false, exitCode: 1 };
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
const listSubcommand = {
|
|
55
|
+
name: 'list',
|
|
56
|
+
aliases: ['ls'],
|
|
57
|
+
description: 'List available actions (built-in + custom)',
|
|
58
|
+
action: async (ctx) => {
|
|
59
|
+
const customDir = join(ctx.cwd, '.monomind', 'actions');
|
|
60
|
+
let customFiles = [];
|
|
61
|
+
try {
|
|
62
|
+
customFiles = (await readdir(customDir)).filter(f => f.endsWith('.json'));
|
|
63
|
+
}
|
|
64
|
+
catch { }
|
|
65
|
+
const builtinActions = [
|
|
66
|
+
{ id: 'linkedin:comment_post', platform: 'linkedin', name: 'Comment on Post', source: 'built-in' },
|
|
67
|
+
{ id: 'linkedin:like_post', platform: 'linkedin', name: 'Like Post', source: 'built-in' },
|
|
68
|
+
{ id: 'linkedin:send_connection', platform: 'linkedin', name: 'Send Connection Request', source: 'built-in' },
|
|
69
|
+
{ id: 'linkedin:publish_post', platform: 'linkedin', name: 'Publish Post', source: 'built-in' },
|
|
70
|
+
{ id: 'instagram:like_post', platform: 'instagram', name: 'Like Post', source: 'built-in' },
|
|
71
|
+
{ id: 'instagram:comment_post', platform: 'instagram', name: 'Comment on Post', source: 'built-in' },
|
|
72
|
+
{ id: 'instagram:follow_user', platform: 'instagram', name: 'Follow User', source: 'built-in' },
|
|
73
|
+
{ id: 'x:like_post', platform: 'x', name: 'Like Post', source: 'built-in' },
|
|
74
|
+
{ id: 'x:reply_post', platform: 'x', name: 'Reply to Post', source: 'built-in' },
|
|
75
|
+
{ id: 'x:follow_user', platform: 'x', name: 'Follow User', source: 'built-in' },
|
|
76
|
+
{ id: 'gemini:submit_prompt', platform: 'gemini', name: 'Submit Prompt', source: 'built-in' },
|
|
77
|
+
];
|
|
78
|
+
const customActions = await Promise.all(customFiles.map(async (f) => {
|
|
79
|
+
try {
|
|
80
|
+
const raw = await readFile(join(customDir, f), 'utf8');
|
|
81
|
+
const def = JSON.parse(raw);
|
|
82
|
+
return { id: def.id, platform: def.platform ?? 'custom', name: def.name, source: 'custom' };
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
88
|
+
const all = [...builtinActions, ...customActions.filter(Boolean)];
|
|
89
|
+
output.printTable({
|
|
90
|
+
columns: [
|
|
91
|
+
{ key: 'id', header: 'Action ID', width: 30 },
|
|
92
|
+
{ key: 'platform', header: 'Platform', width: 12 },
|
|
93
|
+
{ key: 'name', header: 'Name', width: 25 },
|
|
94
|
+
{ key: 'source', header: 'Source', width: 10 },
|
|
95
|
+
],
|
|
96
|
+
data: all,
|
|
97
|
+
});
|
|
98
|
+
return { success: true };
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
const showSubcommand = {
|
|
102
|
+
name: 'show',
|
|
103
|
+
description: 'Print an action definition JSON',
|
|
104
|
+
action: async (ctx) => {
|
|
105
|
+
const actionId = ctx.args[0];
|
|
106
|
+
if (!actionId) {
|
|
107
|
+
output.printError('Action ID required');
|
|
108
|
+
return { success: false, exitCode: 1 };
|
|
109
|
+
}
|
|
110
|
+
const customDir = join(ctx.cwd, '.monomind', 'actions');
|
|
111
|
+
const filename = actionId.replace(/[^a-z0-9_-]/gi, '_') + '.json';
|
|
112
|
+
try {
|
|
113
|
+
const raw = await readFile(join(customDir, filename), 'utf8');
|
|
114
|
+
output.printJson(JSON.parse(raw));
|
|
115
|
+
return { success: true };
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
output.printError(`Action not found: ${actionId}. Check "monomind browse action list".`);
|
|
119
|
+
return { success: false, exitCode: 1 };
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
const runSubcommand = {
|
|
124
|
+
name: 'run',
|
|
125
|
+
description: 'Run a single action directly',
|
|
126
|
+
options: [
|
|
127
|
+
{ name: 'account', short: 'a', type: 'string', description: 'Platform account username' },
|
|
128
|
+
{ name: 'params', short: 'p', type: 'array', description: 'Params as key=value pairs' },
|
|
129
|
+
{ name: 'port', type: 'number', description: 'CDP port', default: 9222 },
|
|
130
|
+
],
|
|
131
|
+
action: async (ctx) => {
|
|
132
|
+
output.printInfo('Direct action run is coming soon. Use workflow run to execute actions.');
|
|
133
|
+
return { success: true };
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
export const browseActionCommand = {
|
|
137
|
+
name: 'action',
|
|
138
|
+
description: 'Manage and run browser actions',
|
|
139
|
+
subcommands: [buildSubcommand, runSubcommand, listSubcommand, showSubcommand],
|
|
140
|
+
action: async () => {
|
|
141
|
+
output.writeln(output.bold('browse action — usage:'));
|
|
142
|
+
output.printList([
|
|
143
|
+
'monomind browse action build --url <url> --task "description"',
|
|
144
|
+
'monomind browse action list',
|
|
145
|
+
'monomind browse action show <action-id>',
|
|
146
|
+
]);
|
|
147
|
+
return { success: true };
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
export default browseActionCommand;
|
|
151
|
+
//# sourceMappingURL=browse-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-action.js","sourceRoot":"","sources":["../../../src/commands/browse-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-platform.d.ts","sourceRoot":"","sources":["../../../src/commands/browse-platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAmH1E,eAAO,MAAM,qBAAqB,EAAE,OAcnC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { output } from '../output.js';
|
|
2
|
+
const SUPPORTED_PLATFORMS = ['linkedin', 'instagram', 'x', 'gemini'];
|
|
3
|
+
const connectSubcommand = {
|
|
4
|
+
name: 'connect',
|
|
5
|
+
description: 'Open browser, log in to a platform, save session',
|
|
6
|
+
options: [
|
|
7
|
+
{ name: 'port', type: 'number', description: 'CDP port', default: 9222 },
|
|
8
|
+
],
|
|
9
|
+
action: async (ctx) => {
|
|
10
|
+
const platform = ctx.args[0];
|
|
11
|
+
if (!platform || !SUPPORTED_PLATFORMS.includes(platform)) {
|
|
12
|
+
output.printError(`Platform required: ${SUPPORTED_PLATFORMS.join(', ')}`);
|
|
13
|
+
return { success: false, exitCode: 1 };
|
|
14
|
+
}
|
|
15
|
+
const { getAdapter } = await import('../browser/adapters/index.js');
|
|
16
|
+
const { saveSession } = await import('../browser/workflow/store.js');
|
|
17
|
+
const browser = await import('@monoes/monobrowse');
|
|
18
|
+
const adapter = getAdapter(platform);
|
|
19
|
+
const port = ctx.flags.port ?? 9222;
|
|
20
|
+
output.printInfo(`Opening browser → navigating to ${adapter.loginURL()}`);
|
|
21
|
+
output.printInfo('Please log in. Detection is automatic — checking every 2s...');
|
|
22
|
+
const cdpPort = await browser.launchBrowser({ port, headless: false });
|
|
23
|
+
const { client, sessionId } = await browser.connectToTarget(cdpPort);
|
|
24
|
+
const cdpClient = client;
|
|
25
|
+
await cdpClient.send('Page.navigate', { url: adapter.loginURL() }, sessionId);
|
|
26
|
+
const page = {
|
|
27
|
+
client: cdpClient, sessionId,
|
|
28
|
+
async evaluate(fn) {
|
|
29
|
+
const result = await cdpClient.send('Runtime.evaluate', { expression: fn, returnByValue: true }, sessionId);
|
|
30
|
+
return result.result.value;
|
|
31
|
+
},
|
|
32
|
+
async url() {
|
|
33
|
+
const result = await cdpClient.send('Runtime.evaluate', { expression: 'window.location.href', returnByValue: true }, sessionId);
|
|
34
|
+
return result.result.value;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
// Poll for login
|
|
38
|
+
let loggedIn = false;
|
|
39
|
+
for (let i = 0; i < 30; i++) {
|
|
40
|
+
await new Promise(r => setTimeout(r, 2000));
|
|
41
|
+
loggedIn = await adapter.isLoggedIn(page).catch(() => false);
|
|
42
|
+
if (loggedIn)
|
|
43
|
+
break;
|
|
44
|
+
process.stdout.write('.');
|
|
45
|
+
}
|
|
46
|
+
process.stdout.write('\n');
|
|
47
|
+
if (!loggedIn) {
|
|
48
|
+
output.printError('Login not detected after 60s. Please try again.');
|
|
49
|
+
client.close();
|
|
50
|
+
return { success: false, exitCode: 1 };
|
|
51
|
+
}
|
|
52
|
+
const username = await adapter.extractUsername(page).catch(() => 'unknown');
|
|
53
|
+
const cookieResult = await cdpClient.send('Network.getAllCookies', {}, sessionId);
|
|
54
|
+
const cookies = JSON.stringify(cookieResult.cookies);
|
|
55
|
+
const sessionId_ = `${platform}:${username}`;
|
|
56
|
+
await saveSession({ id: sessionId_, platform, username, cookies });
|
|
57
|
+
output.printSuccess(`Connected ${platform} as ${username} (session saved)`);
|
|
58
|
+
cdpClient.close();
|
|
59
|
+
return { success: true };
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
const listSubcommand = {
|
|
63
|
+
name: 'list',
|
|
64
|
+
aliases: ['ls'],
|
|
65
|
+
description: 'List connected platform accounts',
|
|
66
|
+
action: async () => {
|
|
67
|
+
const { listSessions } = await import('../browser/workflow/store.js');
|
|
68
|
+
const sessions = await listSessions();
|
|
69
|
+
if (sessions.length === 0) {
|
|
70
|
+
output.printInfo('No connected accounts. Use: monomind browse platform connect <platform>');
|
|
71
|
+
return { success: true };
|
|
72
|
+
}
|
|
73
|
+
output.printTable({
|
|
74
|
+
columns: [
|
|
75
|
+
{ key: 'platform', header: 'Platform', width: 12 },
|
|
76
|
+
{ key: 'username', header: 'Username', width: 25 },
|
|
77
|
+
{ key: 'lastUsedAt', header: 'Last Used', width: 20,
|
|
78
|
+
format: (v) => new Date(v).toLocaleString() },
|
|
79
|
+
{ key: 'id', header: 'Session ID', width: 30 },
|
|
80
|
+
],
|
|
81
|
+
data: sessions,
|
|
82
|
+
});
|
|
83
|
+
return { success: true };
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
const disconnectSubcommand = {
|
|
87
|
+
name: 'disconnect',
|
|
88
|
+
description: 'Remove a saved platform session',
|
|
89
|
+
action: async (ctx) => {
|
|
90
|
+
const sessionId = ctx.args[0];
|
|
91
|
+
if (!sessionId) {
|
|
92
|
+
output.printError('Session ID required. Use "monomind browse platform list" to see IDs.');
|
|
93
|
+
return { success: false, exitCode: 1 };
|
|
94
|
+
}
|
|
95
|
+
const { deleteSession } = await import('../browser/workflow/store.js');
|
|
96
|
+
await deleteSession(sessionId);
|
|
97
|
+
output.printSuccess(`Session removed: ${sessionId}`);
|
|
98
|
+
return { success: true };
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
export const browsePlatformCommand = {
|
|
102
|
+
name: 'platform',
|
|
103
|
+
description: 'Manage platform connections (linkedin, instagram, x, gemini)',
|
|
104
|
+
subcommands: [connectSubcommand, listSubcommand, disconnectSubcommand],
|
|
105
|
+
action: async () => {
|
|
106
|
+
output.writeln(output.bold('browse platform — usage:'));
|
|
107
|
+
output.printList([
|
|
108
|
+
'monomind browse platform connect <platform>',
|
|
109
|
+
'monomind browse platform list',
|
|
110
|
+
'monomind browse platform disconnect <session-id>',
|
|
111
|
+
]);
|
|
112
|
+
output.writeln(`\nPlatforms: ${SUPPORTED_PLATFORMS.join(', ')}`);
|
|
113
|
+
return { success: true };
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
export default browsePlatformCommand;
|
|
117
|
+
//# sourceMappingURL=browse-platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-platform.js","sourceRoot":"","sources":["../../../src/commands/browse-platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browse-workflow.d.ts","sourceRoot":"","sources":["../../../src/commands/browse-workflow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAqI1E,eAAO,MAAM,qBAAqB,EAAE,OAcnC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|