@jack200714/mafw 4.5.1 → 4.8.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 +5 -2
- package/bin/mafw.js +16 -14
- package/gateway/dist/index.js +52 -38
- package/gateway/dist/media/media-plugin-loader.js +0 -12
- package/gateway/dist/plugins/hub.js +153 -19
- package/gateway/dist/routes/plugins.js +15 -5
- package/gateway/dist/runtime/event-broadcast.js +33 -0
- package/gateway/dist/runtime/loader.js +23 -13
- package/gateway/dist/usage/builtin-plugins/gateway.js +25 -3
- package/gateway/dist/usage/plugin-loader.js +0 -11
- package/gateway/package.json +2 -2
- package/package.json +1 -7
- package/packages/tui/dist/cli.js +8 -3
- package/.opencode/mafw/.backup-v61/parametric/base-skill-manifest.yaml +0 -2
- package/.opencode/mafw/STATUS.md +0 -6
- package/.opencode/mafw/ledger.md +0 -20
- package/.opencode/mafw/memory/.harmonic_index.json +0 -28
- package/.opencode/mafw/memory/.review_queue.json +0 -1
- package/.opencode/mafw/memory/tier3/parametric.json +0 -13
- package/.opencode/mafw/memory/tier3/test-goal.json +0 -19
- package/.opencode/mafw/memory-index.json +0 -6
- package/.opencode/mafw/parametric/base-skill-manifest.yaml +0 -2
- package/.opencode/mafw/waves.json +0 -4
- package/.opencode/opencode.json +0 -3
- package/.opencode/plugins/mafw-plugin.ts +0 -8
- package/.opencode/skills/banner-design/SKILL.md +0 -196
- package/.opencode/skills/banner-design/references/banner-sizes-and-styles.md +0 -118
- package/.opencode/skills/brand/SKILL.md +0 -97
- package/.opencode/skills/brand/references/approval-checklist.md +0 -169
- package/.opencode/skills/brand/references/asset-organization.md +0 -157
- package/.opencode/skills/brand/references/brand-guideline-template.md +0 -140
- package/.opencode/skills/brand/references/color-palette-management.md +0 -186
- package/.opencode/skills/brand/references/consistency-checklist.md +0 -94
- package/.opencode/skills/brand/references/logo-usage-rules.md +0 -185
- package/.opencode/skills/brand/references/messaging-framework.md +0 -85
- package/.opencode/skills/brand/references/typography-specifications.md +0 -214
- package/.opencode/skills/brand/references/update.md +0 -118
- package/.opencode/skills/brand/references/visual-identity.md +0 -96
- package/.opencode/skills/brand/references/voice-framework.md +0 -88
- package/.opencode/skills/brand/scripts/extract-colors.cjs +0 -341
- package/.opencode/skills/brand/scripts/inject-brand-context.cjs +0 -349
- package/.opencode/skills/brand/scripts/sync-brand-to-tokens.cjs +0 -248
- package/.opencode/skills/brand/scripts/tests/test_sync_brand_to_tokens.py +0 -52
- package/.opencode/skills/brand/scripts/validate-asset.cjs +0 -387
- package/.opencode/skills/brand/templates/brand-guidelines-starter.md +0 -275
- package/.opencode/skills/design/SKILL.md +0 -313
- package/.opencode/skills/design/data/cip/deliverables.csv +0 -51
- package/.opencode/skills/design/data/cip/industries.csv +0 -21
- package/.opencode/skills/design/data/cip/mockup-contexts.csv +0 -21
- package/.opencode/skills/design/data/cip/styles.csv +0 -21
- package/.opencode/skills/design/data/icon/styles.csv +0 -16
- package/.opencode/skills/design/data/logo/colors.csv +0 -56
- package/.opencode/skills/design/data/logo/industries.csv +0 -56
- package/.opencode/skills/design/data/logo/styles.csv +0 -56
- package/.opencode/skills/design/references/banner-sizes-and-styles.md +0 -118
- package/.opencode/skills/design/references/cip-deliverable-guide.md +0 -95
- package/.opencode/skills/design/references/cip-design.md +0 -121
- package/.opencode/skills/design/references/cip-prompt-engineering.md +0 -84
- package/.opencode/skills/design/references/cip-style-guide.md +0 -68
- package/.opencode/skills/design/references/design-routing.md +0 -207
- package/.opencode/skills/design/references/icon-design.md +0 -122
- package/.opencode/skills/design/references/logo-color-psychology.md +0 -101
- package/.opencode/skills/design/references/logo-design.md +0 -92
- package/.opencode/skills/design/references/logo-prompt-engineering.md +0 -158
- package/.opencode/skills/design/references/logo-style-guide.md +0 -109
- package/.opencode/skills/design/references/slides-copywriting-formulas.md +0 -84
- package/.opencode/skills/design/references/slides-create.md +0 -4
- package/.opencode/skills/design/references/slides-html-template.md +0 -295
- package/.opencode/skills/design/references/slides-layout-patterns.md +0 -137
- package/.opencode/skills/design/references/slides-strategies.md +0 -94
- package/.opencode/skills/design/references/slides.md +0 -42
- package/.opencode/skills/design/references/social-photos-design.md +0 -329
- package/.opencode/skills/design/scripts/cip/core.py +0 -215
- package/.opencode/skills/design/scripts/cip/generate.py +0 -484
- package/.opencode/skills/design/scripts/cip/render-html.py +0 -424
- package/.opencode/skills/design/scripts/cip/search.py +0 -127
- package/.opencode/skills/design/scripts/icon/generate.py +0 -487
- package/.opencode/skills/design/scripts/logo/core.py +0 -175
- package/.opencode/skills/design/scripts/logo/generate.py +0 -362
- package/.opencode/skills/design/scripts/logo/search.py +0 -114
- package/.opencode/skills/design-system/SKILL.md +0 -244
- package/.opencode/skills/design-system/data/slide-backgrounds.csv +0 -11
- package/.opencode/skills/design-system/data/slide-charts.csv +0 -26
- package/.opencode/skills/design-system/data/slide-color-logic.csv +0 -14
- package/.opencode/skills/design-system/data/slide-copy.csv +0 -26
- package/.opencode/skills/design-system/data/slide-layout-logic.csv +0 -16
- package/.opencode/skills/design-system/data/slide-layouts.csv +0 -26
- package/.opencode/skills/design-system/data/slide-strategies.csv +0 -16
- package/.opencode/skills/design-system/data/slide-typography.csv +0 -15
- package/.opencode/skills/design-system/references/component-specs.md +0 -236
- package/.opencode/skills/design-system/references/component-tokens.md +0 -214
- package/.opencode/skills/design-system/references/primitive-tokens.md +0 -203
- package/.opencode/skills/design-system/references/semantic-tokens.md +0 -215
- package/.opencode/skills/design-system/references/states-and-variants.md +0 -241
- package/.opencode/skills/design-system/references/tailwind-integration.md +0 -251
- package/.opencode/skills/design-system/references/token-architecture.md +0 -224
- package/.opencode/skills/design-system/scripts/embed-tokens.cjs +0 -99
- package/.opencode/skills/design-system/scripts/fetch-background.py +0 -317
- package/.opencode/skills/design-system/scripts/generate-slide.py +0 -770
- package/.opencode/skills/design-system/scripts/generate-tokens.cjs +0 -205
- package/.opencode/skills/design-system/scripts/html-token-validator.py +0 -327
- package/.opencode/skills/design-system/scripts/search-slides.py +0 -218
- package/.opencode/skills/design-system/scripts/slide-token-validator.py +0 -35
- package/.opencode/skills/design-system/scripts/slide_search_core.py +0 -453
- package/.opencode/skills/design-system/scripts/tests/test_validate_tokens.py +0 -48
- package/.opencode/skills/design-system/scripts/validate-tokens.cjs +0 -246
- package/.opencode/skills/design-system/templates/design-tokens-starter.json +0 -143
- package/.opencode/skills/frontend-design/LICENSE.txt +0 -21
- package/.opencode/skills/frontend-design/SKILL.md +0 -115
- package/.opencode/skills/mafw-automation-interview/SKILL.md +0 -43
- package/.opencode/skills/mafw-cli-scanner/SKILL.md +0 -37
- package/.opencode/skills/mafw-compression-verifier/SKILL.md +0 -52
- package/.opencode/skills/mafw-desktop-inspector/SKILL.md +0 -170
- package/.opencode/skills/mafw-execute/SKILL.md +0 -62
- package/.opencode/skills/mafw-gateway-restart/SKILL.md +0 -87
- package/.opencode/skills/mafw-github-scanner/SKILL.md +0 -38
- package/.opencode/skills/mafw-goal/SKILL.md +0 -76
- package/.opencode/skills/mafw-interview/SKILL.md +0 -68
- package/.opencode/skills/mafw-memory-extractor/SKILL.md +0 -65
- package/.opencode/skills/mafw-plan/SKILL.md +0 -58
- package/.opencode/skills/mafw-review/SKILL.md +0 -85
- package/.opencode/skills/runtime-plugin-authoring/SKILL.md +0 -791
- package/.opencode/skills/slides/SKILL.md +0 -40
- package/.opencode/skills/slides/references/copywriting-formulas.md +0 -84
- package/.opencode/skills/slides/references/create.md +0 -4
- package/.opencode/skills/slides/references/html-template.md +0 -295
- package/.opencode/skills/slides/references/layout-patterns.md +0 -137
- package/.opencode/skills/slides/references/slide-strategies.md +0 -94
- package/.opencode/skills/ui-styling/LICENSE.txt +0 -202
- package/.opencode/skills/ui-styling/SKILL.md +0 -324
- package/.opencode/skills/ui-styling/references/canvas-design-system.md +0 -320
- package/.opencode/skills/ui-styling/references/shadcn-accessibility.md +0 -471
- package/.opencode/skills/ui-styling/references/shadcn-components.md +0 -424
- package/.opencode/skills/ui-styling/references/shadcn-theming.md +0 -373
- package/.opencode/skills/ui-styling/references/tailwind-customization.md +0 -483
- package/.opencode/skills/ui-styling/references/tailwind-responsive.md +0 -382
- package/.opencode/skills/ui-styling/references/tailwind-utilities.md +0 -455
- package/.opencode/skills/ui-styling/scripts/requirements.txt +0 -17
- package/.opencode/skills/ui-styling/scripts/shadcn_add.py +0 -308
- package/.opencode/skills/ui-styling/scripts/tailwind_config_gen.py +0 -473
- package/.opencode/skills/ui-styling/scripts/tests/coverage-ui.json +0 -1
- package/.opencode/skills/ui-styling/scripts/tests/requirements.txt +0 -3
- package/.opencode/skills/ui-styling/scripts/tests/test_shadcn_add.py +0 -266
- package/.opencode/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +0 -394
- package/.opencode/skills/ui-ux-pro-max/SKILL.md +0 -388
- package/.opencode/skills/ui-ux-pro-max/data/app-interface.csv +0 -31
- package/.opencode/skills/ui-ux-pro-max/data/charts.csv +0 -26
- package/.opencode/skills/ui-ux-pro-max/data/colors.csv +0 -193
- package/.opencode/skills/ui-ux-pro-max/data/google-fonts.csv +0 -1924
- package/.opencode/skills/ui-ux-pro-max/data/icons.csv +0 -106
- package/.opencode/skills/ui-ux-pro-max/data/landing.csv +0 -35
- package/.opencode/skills/ui-ux-pro-max/data/motion.csv +0 -17
- package/.opencode/skills/ui-ux-pro-max/data/products.csv +0 -193
- package/.opencode/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
- package/.opencode/skills/ui-ux-pro-max/data/stacks/angular.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/avalonia.csv +0 -57
- package/.opencode/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
- package/.opencode/skills/ui-ux-pro-max/data/stacks/javafx.csv +0 -76
- package/.opencode/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/laravel.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -71
- package/.opencode/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
- package/.opencode/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
- package/.opencode/skills/ui-ux-pro-max/data/stacks/react.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
- package/.opencode/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
- package/.opencode/skills/ui-ux-pro-max/data/stacks/threejs.csv +0 -54
- package/.opencode/skills/ui-ux-pro-max/data/stacks/uno.csv +0 -60
- package/.opencode/skills/ui-ux-pro-max/data/stacks/uwp.csv +0 -56
- package/.opencode/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -50
- package/.opencode/skills/ui-ux-pro-max/data/stacks/winui.csv +0 -60
- package/.opencode/skills/ui-ux-pro-max/data/stacks/wpf.csv +0 -57
- package/.opencode/skills/ui-ux-pro-max/data/styles.csv +0 -85
- package/.opencode/skills/ui-ux-pro-max/data/typography.csv +0 -75
- package/.opencode/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -162
- package/.opencode/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
- package/.opencode/skills/ui-ux-pro-max/scripts/core.py +0 -464
- package/.opencode/skills/ui-ux-pro-max/scripts/design_system.py +0 -1479
- package/.opencode/skills/ui-ux-pro-max/scripts/search.py +0 -162
- package/.opencode/skills/ui-ux-pro-max/scripts/tests/test_core.py +0 -134
- package/.opencode/skills/ui-ux-pro-max/scripts/tests/test_design_system_mode.py +0 -159
- package/.opencode/skills/ui-ux-pro-max/scripts/validate_data.py +0 -114
- package/dist/hooks/bash-python-guide.d.ts +0 -4
- package/dist/hooks/bash-python-guide.d.ts.map +0 -1
- package/dist/hooks/bash-python-guide.js +0 -67
- package/dist/hooks/bash-python-guide.js.map +0 -1
- package/dist/hooks/handoff.d.ts +0 -9
- package/dist/hooks/handoff.d.ts.map +0 -1
- package/dist/hooks/handoff.js +0 -8
- package/dist/hooks/handoff.js.map +0 -1
- package/dist/hooks/hook-manager.d.ts +0 -32
- package/dist/hooks/hook-manager.d.ts.map +0 -1
- package/dist/hooks/hook-manager.js +0 -91
- package/dist/hooks/hook-manager.js.map +0 -1
- package/dist/hooks/llm-after.d.ts +0 -8
- package/dist/hooks/llm-after.d.ts.map +0 -1
- package/dist/hooks/llm-after.js +0 -8
- package/dist/hooks/llm-after.js.map +0 -1
- package/dist/hooks/media-ingest.d.ts +0 -43
- package/dist/hooks/media-ingest.d.ts.map +0 -1
- package/dist/hooks/media-ingest.js +0 -269
- package/dist/hooks/media-ingest.js.map +0 -1
- package/dist/hooks/memory-guide.d.ts +0 -3
- package/dist/hooks/memory-guide.d.ts.map +0 -1
- package/dist/hooks/memory-guide.js +0 -47
- package/dist/hooks/memory-guide.js.map +0 -1
- package/dist/hooks/observation-capture.d.ts +0 -17
- package/dist/hooks/observation-capture.d.ts.map +0 -1
- package/dist/hooks/observation-capture.js +0 -20
- package/dist/hooks/observation-capture.js.map +0 -1
- package/dist/hooks/session-compacting.d.ts +0 -6
- package/dist/hooks/session-compacting.d.ts.map +0 -1
- package/dist/hooks/session-compacting.js +0 -6
- package/dist/hooks/session-compacting.js.map +0 -1
- package/dist/hooks/session-ending.d.ts +0 -20
- package/dist/hooks/session-ending.d.ts.map +0 -1
- package/dist/hooks/session-ending.js +0 -113
- package/dist/hooks/session-ending.js.map +0 -1
- package/dist/hooks/session-recall.d.ts +0 -2
- package/dist/hooks/session-recall.d.ts.map +0 -1
- package/dist/hooks/session-recall.js +0 -103
- package/dist/hooks/session-recall.js.map +0 -1
- package/dist/hooks/session-start.d.ts +0 -9
- package/dist/hooks/session-start.d.ts.map +0 -1
- package/dist/hooks/session-start.js +0 -42
- package/dist/hooks/session-start.js.map +0 -1
- package/dist/hooks/tool-before.d.ts +0 -10
- package/dist/hooks/tool-before.d.ts.map +0 -1
- package/dist/hooks/tool-before.js +0 -6
- package/dist/hooks/tool-before.js.map +0 -1
- package/dist/hooks/tool-executed.d.ts +0 -19
- package/dist/hooks/tool-executed.d.ts.map +0 -1
- package/dist/hooks/tool-executed.js +0 -12
- package/dist/hooks/tool-executed.js.map +0 -1
- package/dist/hooks/user-profile.d.ts +0 -2
- package/dist/hooks/user-profile.d.ts.map +0 -1
- package/dist/hooks/user-profile.js +0 -30
- package/dist/hooks/user-profile.js.map +0 -1
- package/dist/hooks/user-prompt.d.ts +0 -9
- package/dist/hooks/user-prompt.d.ts.map +0 -1
- package/dist/hooks/user-prompt.js +0 -8
- package/dist/hooks/user-prompt.js.map +0 -1
- package/dist/hooks/voice-guide.d.ts +0 -8
- package/dist/hooks/voice-guide.d.ts.map +0 -1
- package/dist/hooks/voice-guide.js +0 -101
- package/dist/hooks/voice-guide.js.map +0 -1
- package/dist/plugin.d.ts +0 -55
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -342
- package/dist/plugin.js.map +0 -1
- package/dist/tools/add-memory.d.ts +0 -17
- package/dist/tools/add-memory.d.ts.map +0 -1
- package/dist/tools/add-memory.js +0 -60
- package/dist/tools/add-memory.js.map +0 -1
- package/dist/tools/media-ask.d.ts +0 -14
- package/dist/tools/media-ask.d.ts.map +0 -1
- package/dist/tools/media-ask.js +0 -224
- package/dist/tools/media-ask.js.map +0 -1
- package/dist/tools/media-speak.d.ts +0 -16
- package/dist/tools/media-speak.d.ts.map +0 -1
- package/dist/tools/media-speak.js +0 -78
- package/dist/tools/media-speak.js.map +0 -1
- package/dist/tools/media-upload.d.ts +0 -14
- package/dist/tools/media-upload.d.ts.map +0 -1
- package/dist/tools/media-upload.js +0 -155
- package/dist/tools/media-upload.js.map +0 -1
- package/dist/tools/python-exec.d.ts +0 -13
- package/dist/tools/python-exec.d.ts.map +0 -1
- package/dist/tools/python-exec.js +0 -99
- package/dist/tools/python-exec.js.map +0 -1
- package/dist/tools/python-restart.d.ts +0 -11
- package/dist/tools/python-restart.d.ts.map +0 -1
- package/dist/tools/python-restart.js +0 -33
- package/dist/tools/python-restart.js.map +0 -1
- package/dist/utils/circuit-breaker.d.ts +0 -23
- package/dist/utils/circuit-breaker.d.ts.map +0 -1
- package/dist/utils/circuit-breaker.js +0 -75
- package/dist/utils/circuit-breaker.js.map +0 -1
- package/dist/utils/config-loader.d.ts +0 -20
- package/dist/utils/config-loader.d.ts.map +0 -1
- package/dist/utils/config-loader.js +0 -194
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/fallback.d.ts +0 -7
- package/dist/utils/fallback.d.ts.map +0 -1
- package/dist/utils/fallback.js +0 -20
- package/dist/utils/fallback.js.map +0 -1
- package/dist/utils/git.d.ts +0 -24
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -71
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/github.d.ts +0 -37
- package/dist/utils/github.d.ts.map +0 -1
- package/dist/utils/github.js +0 -53
- package/dist/utils/github.js.map +0 -1
- package/dist/utils/global-path.d.ts +0 -2
- package/dist/utils/global-path.d.ts.map +0 -1
- package/dist/utils/global-path.js +0 -32
- package/dist/utils/global-path.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -6
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -69
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/obs-capture.d.ts +0 -7
- package/dist/utils/obs-capture.d.ts.map +0 -1
- package/dist/utils/obs-capture.js +0 -49
- package/dist/utils/obs-capture.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -11
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -45
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/self-wiring.d.ts +0 -13
- package/dist/utils/self-wiring.d.ts.map +0 -1
- package/dist/utils/self-wiring.js +0 -86
- package/dist/utils/self-wiring.js.map +0 -1
- package/dist/utils/state.d.ts +0 -106
- package/dist/utils/state.d.ts.map +0 -1
- package/dist/utils/state.js +0 -166
- package/dist/utils/state.js.map +0 -1
- package/dist/utils/status.d.ts +0 -47
- package/dist/utils/status.d.ts.map +0 -1
- package/dist/utils/status.js +0 -147
- package/dist/utils/status.js.map +0 -1
- package/dist/utils/ttl-map.d.ts +0 -17
- package/dist/utils/ttl-map.d.ts.map +0 -1
- package/dist/utils/ttl-map.js +0 -67
- package/dist/utils/ttl-map.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-exec.js","sourceRoot":"","sources":["../../src/tools/python-exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export interface PythonRestartTool {
|
|
3
|
-
description: string;
|
|
4
|
-
args: Record<string, z.ZodTypeAny>;
|
|
5
|
-
execute: (args: Record<string, never>, ctx: {
|
|
6
|
-
sessionID: string;
|
|
7
|
-
abort: AbortSignal;
|
|
8
|
-
}) => Promise<unknown>;
|
|
9
|
-
}
|
|
10
|
-
export declare const pythonRestartTool: PythonRestartTool;
|
|
11
|
-
//# sourceMappingURL=python-restart.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-restart.d.ts","sourceRoot":"","sources":["../../src/tools/python-restart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5G;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAsB/B,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pythonRestartTool = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* mafw_python_restart — 重启会话的持久 Python 内核(变量/导入丢失)。
|
|
6
|
-
* 用于内核卡死(busy 不响应)或需要干净状态时。
|
|
7
|
-
*/
|
|
8
|
-
const GATEWAY_PORT = process.env.MAFW_SERVER_API_PORT || process.env.MAFW_GATEWAY_PORT || '3000';
|
|
9
|
-
const RESTART_URL = `http://127.0.0.1:${GATEWAY_PORT}/api/python/restart`;
|
|
10
|
-
exports.pythonRestartTool = {
|
|
11
|
-
description: '重启会话的持久 Python 内核。仅在内核卡死(执行长时间无响应/中断后仍 busy)或需要干净状态时使用;' +
|
|
12
|
-
'重启后所有变量、导入、数据都会丢失,需要重新定义。',
|
|
13
|
-
args: {},
|
|
14
|
-
async execute(_args, ctx) {
|
|
15
|
-
try {
|
|
16
|
-
const res = await fetch(RESTART_URL, {
|
|
17
|
-
method: 'POST',
|
|
18
|
-
headers: { 'Content-Type': 'application/json' },
|
|
19
|
-
body: JSON.stringify({ sessionID: ctx.sessionID }),
|
|
20
|
-
signal: AbortSignal.any([ctx.abort, AbortSignal.timeout(60_000)]),
|
|
21
|
-
});
|
|
22
|
-
if (!res.ok) {
|
|
23
|
-
const body = await res.json().catch(() => ({}));
|
|
24
|
-
return { title: '内核重启失败', output: `内核请求失败:${body?.error || res.status}`, metadata: {} };
|
|
25
|
-
}
|
|
26
|
-
return { title: '内核已重启', output: '会话 Python 内核已重启,变量/导入已清空,可重新定义。', metadata: {} };
|
|
27
|
-
}
|
|
28
|
-
catch (err) {
|
|
29
|
-
return { title: '内核重启失败', output: `内核调用失败:${err.message}`, metadata: {} };
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=python-restart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"python-restart.js","sourceRoot":"","sources":["../../src/tools/python-restart.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AAEH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;AACjG,MAAM,WAAW,GAAG,oBAAoB,YAAY,qBAAqB,CAAC;AAQ7D,QAAA,iBAAiB,GAAsB;IAClD,WAAW,EACT,yDAAyD;QACzD,2BAA2B;IAC7B,IAAI,EAAE,EAAE;IACR,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClD,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;aAClE,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAQ,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC1F,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAW,GAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACvF,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export declare class CircuitBreakerOpenError extends Error {
|
|
2
|
-
constructor(message?: string);
|
|
3
|
-
}
|
|
4
|
-
export declare class CircuitBreaker {
|
|
5
|
-
private state;
|
|
6
|
-
private failureCount;
|
|
7
|
-
private successCount;
|
|
8
|
-
private lastFailureTime?;
|
|
9
|
-
private threshold;
|
|
10
|
-
private timeout;
|
|
11
|
-
private halfOpenMaxCalls;
|
|
12
|
-
constructor(config?: {
|
|
13
|
-
threshold?: number;
|
|
14
|
-
timeout?: number;
|
|
15
|
-
halfOpenMaxCalls?: number;
|
|
16
|
-
});
|
|
17
|
-
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
18
|
-
private onSuccess;
|
|
19
|
-
private onFailure;
|
|
20
|
-
getState(): string;
|
|
21
|
-
reset(): void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE;IAMlF,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBlD,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,SAAS;IAUjB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,IAAI;CAMd"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CircuitBreaker = exports.CircuitBreakerOpenError = void 0;
|
|
4
|
-
class CircuitBreakerOpenError extends Error {
|
|
5
|
-
constructor(message) {
|
|
6
|
-
super(message || 'Circuit breaker is OPEN');
|
|
7
|
-
this.name = 'CircuitBreakerOpenError';
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
|
|
11
|
-
class CircuitBreaker {
|
|
12
|
-
state = 'CLOSED';
|
|
13
|
-
failureCount = 0;
|
|
14
|
-
successCount = 0;
|
|
15
|
-
lastFailureTime;
|
|
16
|
-
threshold;
|
|
17
|
-
timeout;
|
|
18
|
-
halfOpenMaxCalls;
|
|
19
|
-
constructor(config) {
|
|
20
|
-
this.threshold = config?.threshold ?? 5;
|
|
21
|
-
this.timeout = config?.timeout ?? 60000;
|
|
22
|
-
this.halfOpenMaxCalls = config?.halfOpenMaxCalls ?? 3;
|
|
23
|
-
}
|
|
24
|
-
async execute(fn) {
|
|
25
|
-
if (this.state === 'OPEN') {
|
|
26
|
-
if (this.lastFailureTime && Date.now() - this.lastFailureTime >= this.timeout) {
|
|
27
|
-
this.state = 'HALF_OPEN';
|
|
28
|
-
this.successCount = 0;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
throw new CircuitBreakerOpenError();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
try {
|
|
35
|
-
const result = await fn();
|
|
36
|
-
this.onSuccess();
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
this.onFailure();
|
|
41
|
-
throw error;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
onSuccess() {
|
|
45
|
-
this.failureCount = 0;
|
|
46
|
-
if (this.state === 'HALF_OPEN') {
|
|
47
|
-
this.successCount++;
|
|
48
|
-
if (this.successCount >= this.halfOpenMaxCalls) {
|
|
49
|
-
this.state = 'CLOSED';
|
|
50
|
-
this.successCount = 0;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
onFailure() {
|
|
55
|
-
this.failureCount++;
|
|
56
|
-
this.lastFailureTime = Date.now();
|
|
57
|
-
if (this.state === 'HALF_OPEN') {
|
|
58
|
-
this.state = 'OPEN';
|
|
59
|
-
}
|
|
60
|
-
else if (this.failureCount >= this.threshold) {
|
|
61
|
-
this.state = 'OPEN';
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
getState() {
|
|
65
|
-
return this.state;
|
|
66
|
-
}
|
|
67
|
-
reset() {
|
|
68
|
-
this.state = 'CLOSED';
|
|
69
|
-
this.failureCount = 0;
|
|
70
|
-
this.successCount = 0;
|
|
71
|
-
this.lastFailureTime = undefined;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.CircuitBreaker = CircuitBreaker;
|
|
75
|
-
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC;AAED,MAAa,cAAc;IACjB,KAAK,GAAoC,QAAQ,CAAC;IAClD,YAAY,GAAG,CAAC,CAAC;IACjB,YAAY,GAAG,CAAC,CAAC;IACjB,eAAe,CAAU;IACzB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,gBAAgB,CAAS;IAEjC,YAAY,MAA4E;QACtF,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9E,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;gBACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,uBAAuB,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACnC,CAAC;CACF;AAlED,wCAkEC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { MAFWConfig } from '../types/config';
|
|
2
|
-
export declare class ConfigLoader {
|
|
3
|
-
private static instance;
|
|
4
|
-
private config;
|
|
5
|
-
private static readonly ENV_MAP;
|
|
6
|
-
private static readonly DEFAULT_CONFIG;
|
|
7
|
-
private constructor();
|
|
8
|
-
static getInstance(projectDir?: string): ConfigLoader;
|
|
9
|
-
static reset(): void;
|
|
10
|
-
private loadConfig;
|
|
11
|
-
private readJsonFile;
|
|
12
|
-
private applyEnvVars;
|
|
13
|
-
private parseEnvValue;
|
|
14
|
-
private setNestedValue;
|
|
15
|
-
private deepMerge;
|
|
16
|
-
get(key?: string): any;
|
|
17
|
-
getAll(): MAFWConfig;
|
|
18
|
-
static deepMerge(target: any, source: any): any;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAM7B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CA2CpC;IAEF,OAAO;IAIP,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY;IAOrD,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,SAAS;IAajB,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG;IAWtB,MAAM,IAAI,UAAU;IAIpB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG;CAYhD"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ConfigLoader = void 0;
|
|
27
|
-
const fs = __importStar(require("fs"));
|
|
28
|
-
const path = __importStar(require("path"));
|
|
29
|
-
class ConfigLoader {
|
|
30
|
-
static instance;
|
|
31
|
-
config;
|
|
32
|
-
static ENV_MAP = {
|
|
33
|
-
MAFW_RETRIEVAL_MODE: 'retrieval.mode',
|
|
34
|
-
MAFW_TOKEN_BUDGET: 'retrieval.tokenBudget',
|
|
35
|
-
MAFW_STORAGE_BACKEND: 'storage.backend',
|
|
36
|
-
MAFW_DASHBOARD_PORT: 'dashboard.port',
|
|
37
|
-
MAFW_LOG_LEVEL: 'logging.level',
|
|
38
|
-
};
|
|
39
|
-
static DEFAULT_CONFIG = {
|
|
40
|
-
version: '5.0',
|
|
41
|
-
storage: {
|
|
42
|
-
backend: 'file',
|
|
43
|
-
},
|
|
44
|
-
retrieval: {
|
|
45
|
-
enabled: true,
|
|
46
|
-
mode: 'hybrid',
|
|
47
|
-
bm25: { k1: 1.2, b: 0.75, topK: 20 },
|
|
48
|
-
vector: { model: 'Xenova/all-MiniLM-L6-v2', dimensions: 384, topK: 20 },
|
|
49
|
-
rrf: { k: 60 },
|
|
50
|
-
diversification: { enabled: true, maxPerLoop: 3 },
|
|
51
|
-
tokenBudget: 2000,
|
|
52
|
-
},
|
|
53
|
-
memory: {
|
|
54
|
-
energy: {
|
|
55
|
-
decayRatePerDay: 0.01,
|
|
56
|
-
cleanupThreshold: 0.3,
|
|
57
|
-
criticalThreshold: 0.8,
|
|
58
|
-
},
|
|
59
|
-
maxMemoriesPerTier: 1000,
|
|
60
|
-
mergeSimilarityThreshold: 0.85,
|
|
61
|
-
},
|
|
62
|
-
hooks: {
|
|
63
|
-
enabled: [],
|
|
64
|
-
failBehavior: 'continue',
|
|
65
|
-
timeout: 5000,
|
|
66
|
-
},
|
|
67
|
-
concurrency: {
|
|
68
|
-
maxParallelWaves: 3,
|
|
69
|
-
lockTimeout: 300000,
|
|
70
|
-
stateSyncInterval: 1000,
|
|
71
|
-
},
|
|
72
|
-
dashboard: {
|
|
73
|
-
enabled: true,
|
|
74
|
-
port: 3111,
|
|
75
|
-
refreshInterval: 5000,
|
|
76
|
-
},
|
|
77
|
-
logging: {
|
|
78
|
-
level: 'info',
|
|
79
|
-
maxFiles: 5,
|
|
80
|
-
maxSize: '10m',
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
constructor(projectDir) {
|
|
84
|
-
this.config = this.loadConfig(projectDir);
|
|
85
|
-
}
|
|
86
|
-
static getInstance(projectDir) {
|
|
87
|
-
if (!ConfigLoader.instance) {
|
|
88
|
-
ConfigLoader.instance = new ConfigLoader(projectDir);
|
|
89
|
-
}
|
|
90
|
-
return ConfigLoader.instance;
|
|
91
|
-
}
|
|
92
|
-
static reset() {
|
|
93
|
-
ConfigLoader.instance = undefined;
|
|
94
|
-
}
|
|
95
|
-
loadConfig(projectDir) {
|
|
96
|
-
let config = this.deepMerge({}, ConfigLoader.DEFAULT_CONFIG);
|
|
97
|
-
const homeDir = process.env.HOME || process.env.USERPROFILE;
|
|
98
|
-
if (homeDir) {
|
|
99
|
-
const globalPath = path.join(homeDir, '.mafw', 'config.json');
|
|
100
|
-
config = this.deepMerge(config, this.readJsonFile(globalPath));
|
|
101
|
-
}
|
|
102
|
-
if (projectDir) {
|
|
103
|
-
const projectConfigPath = path.join(projectDir, '.mafw', 'config.json');
|
|
104
|
-
config = this.deepMerge(config, this.readJsonFile(projectConfigPath));
|
|
105
|
-
}
|
|
106
|
-
config = this.applyEnvVars(config);
|
|
107
|
-
return config;
|
|
108
|
-
}
|
|
109
|
-
readJsonFile(filePath) {
|
|
110
|
-
try {
|
|
111
|
-
if (fs.existsSync(filePath)) {
|
|
112
|
-
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch {
|
|
116
|
-
// ignore corrupt or unreadable files
|
|
117
|
-
}
|
|
118
|
-
return {};
|
|
119
|
-
}
|
|
120
|
-
applyEnvVars(config) {
|
|
121
|
-
const result = this.deepMerge({}, config);
|
|
122
|
-
for (const [envKey, configPath] of Object.entries(ConfigLoader.ENV_MAP)) {
|
|
123
|
-
const envValue = process.env[envKey];
|
|
124
|
-
if (envValue !== undefined) {
|
|
125
|
-
this.setNestedValue(result, configPath, this.parseEnvValue(envValue));
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return result;
|
|
129
|
-
}
|
|
130
|
-
parseEnvValue(value) {
|
|
131
|
-
if (value === 'true')
|
|
132
|
-
return true;
|
|
133
|
-
if (value === 'false')
|
|
134
|
-
return false;
|
|
135
|
-
const num = Number(value);
|
|
136
|
-
if (!isNaN(num) && value.trim() !== '')
|
|
137
|
-
return num;
|
|
138
|
-
return value;
|
|
139
|
-
}
|
|
140
|
-
setNestedValue(obj, path, value) {
|
|
141
|
-
const keys = path.split('.');
|
|
142
|
-
let current = obj;
|
|
143
|
-
for (let i = 0; i < keys.length - 1; i++) {
|
|
144
|
-
if (!(keys[i] in current)) {
|
|
145
|
-
current[keys[i]] = {};
|
|
146
|
-
}
|
|
147
|
-
current = current[keys[i]];
|
|
148
|
-
}
|
|
149
|
-
current[keys[keys.length - 1]] = value;
|
|
150
|
-
}
|
|
151
|
-
deepMerge(target, source) {
|
|
152
|
-
const result = { ...target };
|
|
153
|
-
for (const key of Object.keys(source)) {
|
|
154
|
-
const srcVal = source[key];
|
|
155
|
-
if (srcVal !== null && typeof srcVal === 'object' && !Array.isArray(srcVal)) {
|
|
156
|
-
result[key] = this.deepMerge(result[key] || {}, srcVal);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
result[key] = srcVal;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return result;
|
|
163
|
-
}
|
|
164
|
-
get(key) {
|
|
165
|
-
if (!key)
|
|
166
|
-
return this.config;
|
|
167
|
-
const keys = key.split('.');
|
|
168
|
-
let current = this.config;
|
|
169
|
-
for (const k of keys) {
|
|
170
|
-
if (current === undefined || current === null)
|
|
171
|
-
return undefined;
|
|
172
|
-
current = current[k];
|
|
173
|
-
}
|
|
174
|
-
return current;
|
|
175
|
-
}
|
|
176
|
-
getAll() {
|
|
177
|
-
return this.config;
|
|
178
|
-
}
|
|
179
|
-
static deepMerge(target, source) {
|
|
180
|
-
const result = { ...target };
|
|
181
|
-
for (const key of Object.keys(source)) {
|
|
182
|
-
const srcVal = source[key];
|
|
183
|
-
if (srcVal !== null && typeof srcVal === 'object' && !Array.isArray(srcVal)) {
|
|
184
|
-
result[key] = ConfigLoader.deepMerge(result[key] || {}, srcVal);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
result[key] = srcVal;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return result;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
exports.ConfigLoader = ConfigLoader;
|
|
194
|
-
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fallback.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../src/utils/fallback.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,CAaZ"}
|
package/dist/utils/fallback.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeWithFallback = executeWithFallback;
|
|
4
|
-
async function executeWithFallback(strategy) {
|
|
5
|
-
try {
|
|
6
|
-
return await strategy.primary();
|
|
7
|
-
}
|
|
8
|
-
catch {
|
|
9
|
-
try {
|
|
10
|
-
return await strategy.fallback();
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
if (strategy.degrade) {
|
|
14
|
-
return await strategy.degrade();
|
|
15
|
-
}
|
|
16
|
-
throw new Error('All strategies failed');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=fallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/utils/fallback.ts"],"names":[],"mappings":";;AAMA,kDAeC;AAfM,KAAK,UAAU,mBAAmB,CACvC,QAA6B;IAE7B,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/utils/git.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Utils — 常用 Git 操作封装
|
|
3
|
-
*/
|
|
4
|
-
export declare class GitUtils {
|
|
5
|
-
private git;
|
|
6
|
-
constructor(projectDir?: string);
|
|
7
|
-
createBranch(branchName: string, base?: string): Promise<void>;
|
|
8
|
-
checkout(branch: string): Promise<void>;
|
|
9
|
-
merge(branchName: string, message: string): Promise<void>;
|
|
10
|
-
abortMerge(): Promise<void>;
|
|
11
|
-
getBranches(): Promise<string[]>;
|
|
12
|
-
commit(files: string[], message: string): Promise<void>;
|
|
13
|
-
stash(): Promise<void>;
|
|
14
|
-
listWorktrees(): Promise<Array<{
|
|
15
|
-
path: string;
|
|
16
|
-
branch: string;
|
|
17
|
-
head: string;
|
|
18
|
-
}>>;
|
|
19
|
-
pruneWorktrees(): Promise<void>;
|
|
20
|
-
hasLocalChanges(): Promise<boolean>;
|
|
21
|
-
fetch(): Promise<void>;
|
|
22
|
-
push(branch?: string): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=git.d.ts.map
|
package/dist/utils/git.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,GAAG,CAAM;gBAEL,UAAU,GAAE,MAAY;IAI9B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKhC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAa/E,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAKnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO3C"}
|
package/dist/utils/git.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GitUtils = void 0;
|
|
7
|
-
const simple_git_1 = __importDefault(require("simple-git"));
|
|
8
|
-
/**
|
|
9
|
-
* Git Utils — 常用 Git 操作封装
|
|
10
|
-
*/
|
|
11
|
-
class GitUtils {
|
|
12
|
-
git;
|
|
13
|
-
constructor(projectDir = '.') {
|
|
14
|
-
this.git = (0, simple_git_1.default)(projectDir);
|
|
15
|
-
}
|
|
16
|
-
async createBranch(branchName, base = 'main') {
|
|
17
|
-
await this.git.checkoutBranch(branchName, base);
|
|
18
|
-
}
|
|
19
|
-
async checkout(branch) {
|
|
20
|
-
await this.git.checkout(branch);
|
|
21
|
-
}
|
|
22
|
-
async merge(branchName, message) {
|
|
23
|
-
await this.git.merge([branchName, '--no-ff', '-m', message]);
|
|
24
|
-
}
|
|
25
|
-
async abortMerge() {
|
|
26
|
-
await this.git.merge(['--abort']);
|
|
27
|
-
}
|
|
28
|
-
async getBranches() {
|
|
29
|
-
const result = await this.git.branchLocal();
|
|
30
|
-
return result.all;
|
|
31
|
-
}
|
|
32
|
-
async commit(files, message) {
|
|
33
|
-
await this.git.add(files);
|
|
34
|
-
await this.git.commit(message);
|
|
35
|
-
}
|
|
36
|
-
async stash() {
|
|
37
|
-
await this.git.stash(['push', '-m', 'MAFW auto-stash']);
|
|
38
|
-
}
|
|
39
|
-
async listWorktrees() {
|
|
40
|
-
const output = await this.git.raw(['worktree', 'list']);
|
|
41
|
-
const lines = output.trim().split('\n').filter(Boolean);
|
|
42
|
-
return lines.map(line => {
|
|
43
|
-
const parts = line.split(/\s+/);
|
|
44
|
-
return {
|
|
45
|
-
path: parts[0],
|
|
46
|
-
branch: (parts[1] || '').replace(/\[|\]/g, ''),
|
|
47
|
-
head: parts[2] || '',
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
async pruneWorktrees() {
|
|
52
|
-
await this.git.raw(['worktree', 'prune']);
|
|
53
|
-
}
|
|
54
|
-
async hasLocalChanges() {
|
|
55
|
-
const status = await this.git.status();
|
|
56
|
-
return status.files.length > 0;
|
|
57
|
-
}
|
|
58
|
-
async fetch() {
|
|
59
|
-
await this.git.fetch();
|
|
60
|
-
}
|
|
61
|
-
async push(branch) {
|
|
62
|
-
if (branch) {
|
|
63
|
-
await this.git.push('origin', branch);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
await this.git.push();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.GitUtils = GitUtils;
|
|
71
|
-
//# sourceMappingURL=git.js.map
|
package/dist/utils/git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AAEnC;;GAEG;AACH,MAAa,QAAQ;IACX,GAAG,CAAM;IAEjB,YAAY,aAAqB,GAAG;QAClC,IAAI,CAAC,GAAG,GAAG,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,IAAI,GAAG,MAAM;QAClD,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,OAAe;QAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAe,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe,EAAE,OAAe;QAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9C,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;aACrB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAtED,4BAsEC"}
|
package/dist/utils/github.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub Connector — PR + CI 检查
|
|
3
|
-
*
|
|
4
|
-
* 职责:
|
|
5
|
-
* 1. Goal 完成后创建 GitHub PR
|
|
6
|
-
* 2. 检查 CI 状态
|
|
7
|
-
* 3. 合并通过 CI 的 PR
|
|
8
|
-
*/
|
|
9
|
-
export interface GitHubConfig {
|
|
10
|
-
token: string;
|
|
11
|
-
owner: string;
|
|
12
|
-
repo: string;
|
|
13
|
-
baseBranch?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare class GitHubConnector {
|
|
16
|
-
private config;
|
|
17
|
-
private api;
|
|
18
|
-
constructor(config: GitHubConfig);
|
|
19
|
-
/**
|
|
20
|
-
* 创建 Pull Request
|
|
21
|
-
*/
|
|
22
|
-
createPR(branch: string, title: string, body: string): Promise<{
|
|
23
|
-
number: number;
|
|
24
|
-
url: string;
|
|
25
|
-
}>;
|
|
26
|
-
/**
|
|
27
|
-
* 检查 CI 状态
|
|
28
|
-
*/
|
|
29
|
-
checkCI(prNumber: number): Promise<{
|
|
30
|
-
status: 'pending' | 'success' | 'failure' | 'error';
|
|
31
|
-
}>;
|
|
32
|
-
/**
|
|
33
|
-
* 合并 PR
|
|
34
|
-
*/
|
|
35
|
-
mergePR(prNumber: number): Promise<void>;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=github.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAM;gBAEL,MAAM,EAAE,YAAY;IAWhC;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAarG;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC;IAUjG;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM/C"}
|
package/dist/utils/github.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GitHubConnector = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
class GitHubConnector {
|
|
9
|
-
config;
|
|
10
|
-
api;
|
|
11
|
-
constructor(config) {
|
|
12
|
-
this.config = { baseBranch: 'main', ...config };
|
|
13
|
-
this.api = axios_1.default.create({
|
|
14
|
-
baseURL: 'https://api.github.com',
|
|
15
|
-
headers: {
|
|
16
|
-
Authorization: `token ${config.token}`,
|
|
17
|
-
Accept: 'application/vnd.github.v3+json'
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 创建 Pull Request
|
|
23
|
-
*/
|
|
24
|
-
async createPR(branch, title, body) {
|
|
25
|
-
const res = await this.api.post(`/repos/${this.config.owner}/${this.config.repo}/pulls`, {
|
|
26
|
-
title,
|
|
27
|
-
head: branch,
|
|
28
|
-
base: this.config.baseBranch,
|
|
29
|
-
body
|
|
30
|
-
});
|
|
31
|
-
return { number: res.data.number, url: res.data.html_url };
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* 检查 CI 状态
|
|
35
|
-
*/
|
|
36
|
-
async checkCI(prNumber) {
|
|
37
|
-
const res = await this.api.get(`/repos/${this.config.owner}/${this.config.repo}/pulls/${prNumber}`);
|
|
38
|
-
const state = res.data.mergeable_state;
|
|
39
|
-
if (state === 'clean')
|
|
40
|
-
return { status: 'success' };
|
|
41
|
-
if (state === 'blocked' || state === 'dirty')
|
|
42
|
-
return { status: 'failure' };
|
|
43
|
-
return { status: 'pending' };
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* 合并 PR
|
|
47
|
-
*/
|
|
48
|
-
async mergePR(prNumber) {
|
|
49
|
-
await this.api.put(`/repos/${this.config.owner}/${this.config.repo}/pulls/${prNumber}/merge`, { merge_method: 'squash' });
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.GitHubConnector = GitHubConnector;
|
|
53
|
-
//# sourceMappingURL=github.js.map
|
package/dist/utils/github.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAiB1B,MAAa,eAAe;IAClB,MAAM,CAAe;IACrB,GAAG,CAAM;IAEjB,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,MAAM,CAAC,KAAK,EAAE;gBACtC,MAAM,EAAE,gCAAgC;aACzC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAa,EAAE,IAAY;QACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,EACvD;YACE,KAAK;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC5B,IAAI;SACL,CACF,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAC5B,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,QAAQ,EAAE,CACpE,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QACvC,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC3E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAChB,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,QAAQ,QAAQ,EACzE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAC3B,CAAC;IACJ,CAAC;CACF;AArDD,0CAqDC"}
|