@murphai/murph 0.1.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/CHANGELOG.md +2009 -0
- package/LICENSE +674 -0
- package/README.md +97 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/assistant/automation/run-loop.d.ts +21 -0
- package/dist/assistant/automation/run-loop.d.ts.map +1 -0
- package/dist/assistant/automation/run-loop.js +31 -0
- package/dist/assistant/automation/run-loop.js.map +1 -0
- package/dist/assistant/automation.d.ts +10 -0
- package/dist/assistant/automation.d.ts.map +1 -0
- package/dist/assistant/automation.js +5 -0
- package/dist/assistant/automation.js.map +1 -0
- package/dist/assistant/cron.d.ts +19 -0
- package/dist/assistant/cron.d.ts.map +1 -0
- package/dist/assistant/cron.js +59 -0
- package/dist/assistant/cron.js.map +1 -0
- package/dist/assistant/doctor-security.d.ts +15 -0
- package/dist/assistant/doctor-security.d.ts.map +1 -0
- package/dist/assistant/doctor-security.js +172 -0
- package/dist/assistant/doctor-security.js.map +1 -0
- package/dist/assistant/doctor.d.ts +5 -0
- package/dist/assistant/doctor.d.ts.map +1 -0
- package/dist/assistant/doctor.js +527 -0
- package/dist/assistant/doctor.js.map +1 -0
- package/dist/assistant/outbox.d.ts +19 -0
- package/dist/assistant/outbox.d.ts.map +1 -0
- package/dist/assistant/outbox.js +28 -0
- package/dist/assistant/outbox.js.map +1 -0
- package/dist/assistant/provider-catalog.d.ts +61 -0
- package/dist/assistant/provider-catalog.d.ts.map +1 -0
- package/dist/assistant/provider-catalog.js +205 -0
- package/dist/assistant/provider-catalog.js.map +1 -0
- package/dist/assistant/service.d.ts +85 -0
- package/dist/assistant/service.d.ts.map +1 -0
- package/dist/assistant/service.js +26 -0
- package/dist/assistant/service.js.map +1 -0
- package/dist/assistant/status.d.ts +9 -0
- package/dist/assistant/status.d.ts.map +1 -0
- package/dist/assistant/status.js +16 -0
- package/dist/assistant/status.js.map +1 -0
- package/dist/assistant/stop.d.ts +20 -0
- package/dist/assistant/stop.d.ts.map +1 -0
- package/dist/assistant/stop.js +142 -0
- package/dist/assistant/stop.js.map +1 -0
- package/dist/assistant/store.d.ts +6 -0
- package/dist/assistant/store.d.ts.map +1 -0
- package/dist/assistant/store.js +21 -0
- package/dist/assistant/store.js.map +1 -0
- package/dist/assistant/ui/ink.d.ts +247 -0
- package/dist/assistant/ui/ink.d.ts.map +1 -0
- package/dist/assistant/ui/ink.js +2417 -0
- package/dist/assistant/ui/ink.js.map +1 -0
- package/dist/assistant/ui/theme.d.ts +64 -0
- package/dist/assistant/ui/theme.d.ts.map +1 -0
- package/dist/assistant/ui/theme.js +180 -0
- package/dist/assistant/ui/theme.js.map +1 -0
- package/dist/assistant/ui/view-model.d.ts +89 -0
- package/dist/assistant/ui/view-model.d.ts.map +1 -0
- package/dist/assistant/ui/view-model.js +298 -0
- package/dist/assistant/ui/view-model.js.map +1 -0
- package/dist/assistant-chat-ink.d.ts +2 -0
- package/dist/assistant-chat-ink.d.ts.map +1 -0
- package/dist/assistant-chat-ink.js +2 -0
- package/dist/assistant-chat-ink.js.map +1 -0
- package/dist/assistant-daemon-client.d.ts +81 -0
- package/dist/assistant-daemon-client.d.ts.map +1 -0
- package/dist/assistant-daemon-client.js +473 -0
- package/dist/assistant-daemon-client.js.map +1 -0
- package/dist/assistant-runtime.d.ts +25 -0
- package/dist/assistant-runtime.d.ts.map +1 -0
- package/dist/assistant-runtime.js +17 -0
- package/dist/assistant-runtime.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +7 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli-entry.d.ts +10 -0
- package/dist/cli-entry.d.ts.map +1 -0
- package/dist/cli-entry.js +127 -0
- package/dist/cli-entry.js.map +1 -0
- package/dist/commands/assistant.d.ts +5 -0
- package/dist/commands/assistant.d.ts.map +1 -0
- package/dist/commands/assistant.js +1663 -0
- package/dist/commands/assistant.js.map +1 -0
- package/dist/commands/audit-command-helpers.d.ts +15 -0
- package/dist/commands/audit-command-helpers.d.ts.map +1 -0
- package/dist/commands/audit-command-helpers.js +24 -0
- package/dist/commands/audit-command-helpers.js.map +1 -0
- package/dist/commands/audit.d.ts +4 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +107 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/device.d.ts +4 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +177 -0
- package/dist/commands/device.js.map +1 -0
- package/dist/commands/document.d.ts +4 -0
- package/dist/commands/document.d.ts.map +1 -0
- package/dist/commands/document.js +117 -0
- package/dist/commands/document.js.map +1 -0
- package/dist/commands/event.d.ts +4 -0
- package/dist/commands/event.d.ts.map +1 -0
- package/dist/commands/event.js +136 -0
- package/dist/commands/event.js.map +1 -0
- package/dist/commands/experiment.d.ts +4 -0
- package/dist/commands/experiment.d.ts.map +1 -0
- package/dist/commands/experiment.js +140 -0
- package/dist/commands/experiment.js.map +1 -0
- package/dist/commands/export-intake-read-helpers.d.ts +150 -0
- package/dist/commands/export-intake-read-helpers.d.ts.map +1 -0
- package/dist/commands/export-intake-read-helpers.js +328 -0
- package/dist/commands/export-intake-read-helpers.js.map +1 -0
- package/dist/commands/export.d.ts +4 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +179 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/food.d.ts +4 -0
- package/dist/commands/food.d.ts.map +1 -0
- package/dist/commands/food.js +190 -0
- package/dist/commands/food.js.map +1 -0
- package/dist/commands/health-command-factory.d.ts +230 -0
- package/dist/commands/health-command-factory.d.ts.map +1 -0
- package/dist/commands/health-command-factory.js +551 -0
- package/dist/commands/health-command-factory.js.map +1 -0
- package/dist/commands/health-entity-command-registry.d.ts +27 -0
- package/dist/commands/health-entity-command-registry.d.ts.map +1 -0
- package/dist/commands/health-entity-command-registry.js +84 -0
- package/dist/commands/health-entity-command-registry.js.map +1 -0
- package/dist/commands/inbox.d.ts +5 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +841 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/intake.d.ts +4 -0
- package/dist/commands/intake.d.ts.map +1 -0
- package/dist/commands/intake.js +175 -0
- package/dist/commands/intake.js.map +1 -0
- package/dist/commands/intervention.d.ts +4 -0
- package/dist/commands/intervention.d.ts.map +1 -0
- package/dist/commands/intervention.js +122 -0
- package/dist/commands/intervention.js.map +1 -0
- package/dist/commands/journal.d.ts +12 -0
- package/dist/commands/journal.d.ts.map +1 -0
- package/dist/commands/journal.js +186 -0
- package/dist/commands/journal.js.map +1 -0
- package/dist/commands/meal.d.ts +4 -0
- package/dist/commands/meal.d.ts.map +1 -0
- package/dist/commands/meal.js +123 -0
- package/dist/commands/meal.js.map +1 -0
- package/dist/commands/profile.d.ts +4 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +62 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/protocol.d.ts +4 -0
- package/dist/commands/protocol.d.ts.map +1 -0
- package/dist/commands/protocol.js +79 -0
- package/dist/commands/protocol.js.map +1 -0
- package/dist/commands/provider.d.ts +4 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +115 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/read.d.ts +4 -0
- package/dist/commands/read.d.ts.map +1 -0
- package/dist/commands/read.js +55 -0
- package/dist/commands/read.js.map +1 -0
- package/dist/commands/recipe.d.ts +4 -0
- package/dist/commands/recipe.d.ts.map +1 -0
- package/dist/commands/recipe.js +116 -0
- package/dist/commands/recipe.js.map +1 -0
- package/dist/commands/record-mutation-command-helpers.d.ts +196 -0
- package/dist/commands/record-mutation-command-helpers.d.ts.map +1 -0
- package/dist/commands/record-mutation-command-helpers.js +150 -0
- package/dist/commands/record-mutation-command-helpers.js.map +1 -0
- package/dist/commands/research.d.ts +3 -0
- package/dist/commands/research.d.ts.map +1 -0
- package/dist/commands/research.js +104 -0
- package/dist/commands/research.js.map +1 -0
- package/dist/commands/sample-batch-command-helpers.d.ts +24 -0
- package/dist/commands/sample-batch-command-helpers.d.ts.map +1 -0
- package/dist/commands/sample-batch-command-helpers.js +99 -0
- package/dist/commands/sample-batch-command-helpers.js.map +1 -0
- package/dist/commands/sample-import-command-helpers.d.ts +24 -0
- package/dist/commands/sample-import-command-helpers.d.ts.map +1 -0
- package/dist/commands/sample-import-command-helpers.js +49 -0
- package/dist/commands/sample-import-command-helpers.js.map +1 -0
- package/dist/commands/sample-query-command-helpers.d.ts +11 -0
- package/dist/commands/sample-query-command-helpers.d.ts.map +1 -0
- package/dist/commands/sample-query-command-helpers.js +26 -0
- package/dist/commands/sample-query-command-helpers.js.map +1 -0
- package/dist/commands/samples.d.ts +4 -0
- package/dist/commands/samples.d.ts.map +1 -0
- package/dist/commands/samples.js +261 -0
- package/dist/commands/samples.js.map +1 -0
- package/dist/commands/search.d.ts +4 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +295 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/supplement.d.ts +4 -0
- package/dist/commands/supplement.d.ts.map +1 -0
- package/dist/commands/supplement.js +338 -0
- package/dist/commands/supplement.js.map +1 -0
- package/dist/commands/vault.d.ts +4 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +164 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/commands/workout.d.ts +4 -0
- package/dist/commands/workout.d.ts.map +1 -0
- package/dist/commands/workout.js +284 -0
- package/dist/commands/workout.js.map +1 -0
- package/dist/incur.generated.d.ts +2164 -0
- package/dist/incur.generated.d.ts.map +1 -0
- package/dist/incur.generated.js +2 -0
- package/dist/incur.generated.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/research-cli-contracts.d.ts +22 -0
- package/dist/research-cli-contracts.d.ts.map +1 -0
- package/dist/research-cli-contracts.js +18 -0
- package/dist/research-cli-contracts.js.map +1 -0
- package/dist/research-runtime.d.ts +79 -0
- package/dist/research-runtime.d.ts.map +1 -0
- package/dist/research-runtime.js +351 -0
- package/dist/research-runtime.js.map +1 -0
- package/dist/run-terminal-logging.d.ts +12 -0
- package/dist/run-terminal-logging.d.ts.map +1 -0
- package/dist/run-terminal-logging.js +323 -0
- package/dist/run-terminal-logging.js.map +1 -0
- package/dist/setup-agentmail.d.ts +30 -0
- package/dist/setup-agentmail.d.ts.map +1 -0
- package/dist/setup-agentmail.js +136 -0
- package/dist/setup-agentmail.js.map +1 -0
- package/dist/setup-assistant-account.d.ts +29 -0
- package/dist/setup-assistant-account.d.ts.map +1 -0
- package/dist/setup-assistant-account.js +443 -0
- package/dist/setup-assistant-account.js.map +1 -0
- package/dist/setup-assistant.d.ts +34 -0
- package/dist/setup-assistant.d.ts.map +1 -0
- package/dist/setup-assistant.js +355 -0
- package/dist/setup-assistant.js.map +1 -0
- package/dist/setup-cli.d.ts +72 -0
- package/dist/setup-cli.d.ts.map +1 -0
- package/dist/setup-cli.js +387 -0
- package/dist/setup-cli.js.map +1 -0
- package/dist/setup-services/channels.d.ts +19 -0
- package/dist/setup-services/channels.d.ts.map +1 -0
- package/dist/setup-services/channels.js +721 -0
- package/dist/setup-services/channels.js.map +1 -0
- package/dist/setup-services/process.d.ts +18 -0
- package/dist/setup-services/process.d.ts.map +1 -0
- package/dist/setup-services/process.js +98 -0
- package/dist/setup-services/process.js.map +1 -0
- package/dist/setup-services/scheduled-updates.d.ts +9 -0
- package/dist/setup-services/scheduled-updates.d.ts.map +1 -0
- package/dist/setup-services/scheduled-updates.js +64 -0
- package/dist/setup-services/scheduled-updates.js.map +1 -0
- package/dist/setup-services/shell.d.ts +18 -0
- package/dist/setup-services/shell.d.ts.map +1 -0
- package/dist/setup-services/shell.js +447 -0
- package/dist/setup-services/shell.js.map +1 -0
- package/dist/setup-services/steps.d.ts +39 -0
- package/dist/setup-services/steps.d.ts.map +1 -0
- package/dist/setup-services/steps.js +86 -0
- package/dist/setup-services/steps.js.map +1 -0
- package/dist/setup-services/toolchain.d.ts +46 -0
- package/dist/setup-services/toolchain.d.ts.map +1 -0
- package/dist/setup-services/toolchain.js +232 -0
- package/dist/setup-services/toolchain.js.map +1 -0
- package/dist/setup-services.d.ts +44 -0
- package/dist/setup-services.d.ts.map +1 -0
- package/dist/setup-services.js +739 -0
- package/dist/setup-services.js.map +1 -0
- package/dist/setup-wizard.d.ts +101 -0
- package/dist/setup-wizard.d.ts.map +1 -0
- package/dist/setup-wizard.js +1458 -0
- package/dist/setup-wizard.js.map +1 -0
- package/dist/usecases/intervention.d.ts +63 -0
- package/dist/usecases/intervention.d.ts.map +1 -0
- package/dist/usecases/intervention.js +205 -0
- package/dist/usecases/intervention.js.map +1 -0
- package/dist/usecases/text-duration.d.ts +4 -0
- package/dist/usecases/text-duration.d.ts.map +1 -0
- package/dist/usecases/text-duration.js +63 -0
- package/dist/usecases/text-duration.js.map +1 -0
- package/dist/usecases/workout-format.d.ts +139 -0
- package/dist/usecases/workout-format.d.ts.map +1 -0
- package/dist/usecases/workout-format.js +445 -0
- package/dist/usecases/workout-format.js.map +1 -0
- package/dist/usecases/workout.d.ts +94 -0
- package/dist/usecases/workout.d.ts.map +1 -0
- package/dist/usecases/workout.js +411 -0
- package/dist/usecases/workout.js.map +1 -0
- package/dist/vault-cli-command-manifest.d.ts +562 -0
- package/dist/vault-cli-command-manifest.d.ts.map +1 -0
- package/dist/vault-cli-command-manifest.js +759 -0
- package/dist/vault-cli-command-manifest.js.map +1 -0
- package/dist/vault-cli.d.ts +6 -0
- package/dist/vault-cli.d.ts.map +1 -0
- package/dist/vault-cli.js +38 -0
- package/dist/vault-cli.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type RunAssistantAutomationInput } from '@murphai/assistant-core/assistant-automation';
|
|
2
|
+
export * from '@murphai/assistant-core/assistant-automation';
|
|
3
|
+
export declare function runAssistantAutomation(input: RunAssistantAutomationInput): Promise<{
|
|
4
|
+
vault: string;
|
|
5
|
+
startedAt: string;
|
|
6
|
+
stoppedAt: string;
|
|
7
|
+
reason: "error" | "completed" | "signal";
|
|
8
|
+
daemonStarted: boolean;
|
|
9
|
+
scans: number;
|
|
10
|
+
considered: number;
|
|
11
|
+
routed: number;
|
|
12
|
+
noAction: number;
|
|
13
|
+
skipped: number;
|
|
14
|
+
failed: number;
|
|
15
|
+
replyConsidered: number;
|
|
16
|
+
replied: number;
|
|
17
|
+
replySkipped: number;
|
|
18
|
+
replyFailed: number;
|
|
19
|
+
lastError: string | null;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=run-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../../../src/assistant/automation/run-loop.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,8CAA8C,CAAA;AAErD,cAAc,8CAA8C,CAAA;AAE5D,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B;;;;;;;;;;;;;;;;;GA+BnC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { maybeRunAssistantAutomationViaDaemon } from '../../assistant-daemon-client.js';
|
|
2
|
+
import { runAssistantAutomation as runAssistantAutomationLocal, } from '@murphai/assistant-core/assistant-automation';
|
|
3
|
+
export * from '@murphai/assistant-core/assistant-automation';
|
|
4
|
+
export async function runAssistantAutomation(input) {
|
|
5
|
+
const canUseDaemonClient = input.executionContext === undefined &&
|
|
6
|
+
input.inboxServices === undefined &&
|
|
7
|
+
input.onEvent === undefined &&
|
|
8
|
+
input.onInboxEvent === undefined &&
|
|
9
|
+
input.signal === undefined &&
|
|
10
|
+
input.vaultServices === undefined;
|
|
11
|
+
if (canUseDaemonClient) {
|
|
12
|
+
const remote = await maybeRunAssistantAutomationViaDaemon({
|
|
13
|
+
allowSelfAuthored: input.allowSelfAuthored,
|
|
14
|
+
deliveryDispatchMode: input.deliveryDispatchMode,
|
|
15
|
+
drainOutbox: input.drainOutbox,
|
|
16
|
+
maxPerScan: input.maxPerScan,
|
|
17
|
+
modelSpec: input.modelSpec,
|
|
18
|
+
once: input.once,
|
|
19
|
+
requestId: input.requestId ?? null,
|
|
20
|
+
scanIntervalMs: input.scanIntervalMs,
|
|
21
|
+
sessionMaxAgeMs: input.sessionMaxAgeMs ?? null,
|
|
22
|
+
startDaemon: input.startDaemon,
|
|
23
|
+
vault: input.vault,
|
|
24
|
+
});
|
|
25
|
+
if (remote) {
|
|
26
|
+
return remote;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return runAssistantAutomationLocal(input);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=run-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-loop.js","sourceRoot":"","sources":["../../../src/assistant/automation/run-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAA;AACvF,OAAO,EACL,sBAAsB,IAAI,2BAA2B,GAEtD,MAAM,8CAA8C,CAAA;AAErD,cAAc,8CAA8C,CAAA;AAE5D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC;IAElC,MAAM,kBAAkB,GACtB,KAAK,CAAC,gBAAgB,KAAK,SAAS;QACpC,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,KAAK,CAAC,OAAO,KAAK,SAAS;QAC3B,KAAK,CAAC,YAAY,KAAK,SAAS;QAChC,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,KAAK,CAAC,aAAa,KAAK,SAAS,CAAA;IACnC,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,oCAAoC,CACvD;YACE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;YAC9C,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CACF,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI facade over the assistant-core automation surface.
|
|
3
|
+
* The CLI keeps the daemon-aware run loop locally while delegating the rest.
|
|
4
|
+
*/
|
|
5
|
+
export type { AssistantAutoReplyScanResult, AssistantAutomationScanResult, AssistantInboxScanResult, AssistantRunEvent, } from '@murphai/assistant-core/assistant-automation';
|
|
6
|
+
export { runAssistantAutomation, type RunAssistantAutomationInput, } from './automation/run-loop.js';
|
|
7
|
+
export { scanAssistantAutomationOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
8
|
+
export { scanAssistantAutoReplyOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
9
|
+
export { scanAssistantInboxOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
10
|
+
//# sourceMappingURL=automation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/assistant/automation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,2BAA2B,GAC5B,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,0BAA0B,GAC3B,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,sBAAsB,GACvB,MAAM,8CAA8C,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { runAssistantAutomation, } from './automation/run-loop.js';
|
|
2
|
+
export { scanAssistantAutomationOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
3
|
+
export { scanAssistantAutoReplyOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
4
|
+
export { scanAssistantInboxOnce, } from '@murphai/assistant-core/assistant-automation';
|
|
5
|
+
//# sourceMappingURL=automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation.js","sourceRoot":"","sources":["../../src/assistant/automation.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,sBAAsB,GAEvB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,2BAA2B,GAC5B,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,0BAA0B,GAC3B,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACL,sBAAsB,GACvB,MAAM,8CAA8C,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getAssistantCronStatus as getAssistantCronStatusLocal, processDueAssistantCronJobsLocal, setAssistantCronJobTarget as setAssistantCronJobTargetLocal } from '@murphai/assistant-core/assistant-cron';
|
|
2
|
+
import type { AssistantCronJob, AssistantCronRunRecord, AssistantCronTargetSnapshot } from '@murphai/assistant-core/assistant-cli-contracts';
|
|
3
|
+
export * from '@murphai/assistant-core/assistant-cron';
|
|
4
|
+
export type { AssistantCronJob, AssistantCronRunRecord, AssistantCronTargetSnapshot, } from '@murphai/assistant-core/assistant-cli-contracts';
|
|
5
|
+
export declare function listAssistantCronJobs(vault: string): Promise<AssistantCronJob[]>;
|
|
6
|
+
export declare function getAssistantCronJob(vault: string, job: string): Promise<AssistantCronJob>;
|
|
7
|
+
export declare function getAssistantCronJobTarget(vault: string, job: string): Promise<AssistantCronTargetSnapshot>;
|
|
8
|
+
export declare function setAssistantCronJobTarget(input: Parameters<typeof setAssistantCronJobTargetLocal>[0]): Promise<Awaited<ReturnType<typeof setAssistantCronJobTargetLocal>>>;
|
|
9
|
+
export declare function getAssistantCronStatus(vault: string): Promise<Awaited<ReturnType<typeof getAssistantCronStatusLocal>>>;
|
|
10
|
+
export declare function listAssistantCronRuns(input: {
|
|
11
|
+
job: string;
|
|
12
|
+
limit?: number;
|
|
13
|
+
vault: string;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
jobId: string;
|
|
16
|
+
runs: AssistantCronRunRecord[];
|
|
17
|
+
}>;
|
|
18
|
+
export declare function processDueAssistantCronJobs(input: Parameters<typeof processDueAssistantCronJobsLocal>[0]): Promise<Awaited<ReturnType<typeof processDueAssistantCronJobsLocal>>>;
|
|
19
|
+
//# sourceMappingURL=cron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/assistant/cron.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,sBAAsB,IAAI,2BAA2B,EAGrD,gCAAgC,EAChC,yBAAyB,IAAI,8BAA8B,EAC5D,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,iDAAiD,CAAA;AAExD,cAAc,wCAAwC,CAAA;AACtD,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,iDAAiD,CAAA;AAExD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAO7B;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,2BAA2B,CAAC,CAUtC;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC,CAAC,CAOrE;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAOlE;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,OAAO,CAAC;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,sBAAsB,EAAE,CAAA;CAC/B,CAAC,CAOD;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAAC,GAC5D,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAOvE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { maybeGetAssistantCronJobViaDaemon, maybeGetAssistantCronTargetViaDaemon, maybeGetAssistantCronStatusViaDaemon, maybeListAssistantCronJobsViaDaemon, maybeListAssistantCronRunsViaDaemon, maybeProcessDueAssistantCronViaDaemon, maybeSetAssistantCronTargetViaDaemon, } from '../assistant-daemon-client.js';
|
|
2
|
+
import { getAssistantCronJob as getAssistantCronJobLocal, getAssistantCronJobTarget as getAssistantCronJobTargetLocal, getAssistantCronStatus as getAssistantCronStatusLocal, listAssistantCronJobs as listAssistantCronJobsLocal, listAssistantCronRuns as listAssistantCronRunsLocal, processDueAssistantCronJobsLocal, setAssistantCronJobTarget as setAssistantCronJobTargetLocal, } from '@murphai/assistant-core/assistant-cron';
|
|
3
|
+
export * from '@murphai/assistant-core/assistant-cron';
|
|
4
|
+
export async function listAssistantCronJobs(vault) {
|
|
5
|
+
const remote = await maybeListAssistantCronJobsViaDaemon({ vault });
|
|
6
|
+
if (remote !== null) {
|
|
7
|
+
return remote;
|
|
8
|
+
}
|
|
9
|
+
return listAssistantCronJobsLocal(vault);
|
|
10
|
+
}
|
|
11
|
+
export async function getAssistantCronJob(vault, job) {
|
|
12
|
+
const remote = await maybeGetAssistantCronJobViaDaemon({
|
|
13
|
+
job,
|
|
14
|
+
vault,
|
|
15
|
+
});
|
|
16
|
+
if (remote) {
|
|
17
|
+
return remote;
|
|
18
|
+
}
|
|
19
|
+
return getAssistantCronJobLocal(vault, job);
|
|
20
|
+
}
|
|
21
|
+
export async function getAssistantCronJobTarget(vault, job) {
|
|
22
|
+
const remote = await maybeGetAssistantCronTargetViaDaemon({
|
|
23
|
+
job,
|
|
24
|
+
vault,
|
|
25
|
+
});
|
|
26
|
+
if (remote) {
|
|
27
|
+
return remote;
|
|
28
|
+
}
|
|
29
|
+
return getAssistantCronJobTargetLocal(vault, job);
|
|
30
|
+
}
|
|
31
|
+
export async function setAssistantCronJobTarget(input) {
|
|
32
|
+
const remote = await maybeSetAssistantCronTargetViaDaemon(input);
|
|
33
|
+
if (remote) {
|
|
34
|
+
return remote;
|
|
35
|
+
}
|
|
36
|
+
return setAssistantCronJobTargetLocal(input);
|
|
37
|
+
}
|
|
38
|
+
export async function getAssistantCronStatus(vault) {
|
|
39
|
+
const remote = await maybeGetAssistantCronStatusViaDaemon({ vault });
|
|
40
|
+
if (remote) {
|
|
41
|
+
return remote;
|
|
42
|
+
}
|
|
43
|
+
return getAssistantCronStatusLocal(vault);
|
|
44
|
+
}
|
|
45
|
+
export async function listAssistantCronRuns(input) {
|
|
46
|
+
const remote = await maybeListAssistantCronRunsViaDaemon(input);
|
|
47
|
+
if (remote !== null) {
|
|
48
|
+
return remote;
|
|
49
|
+
}
|
|
50
|
+
return listAssistantCronRunsLocal(input);
|
|
51
|
+
}
|
|
52
|
+
export async function processDueAssistantCronJobs(input) {
|
|
53
|
+
const remote = await maybeProcessDueAssistantCronViaDaemon(input);
|
|
54
|
+
if (remote) {
|
|
55
|
+
return remote;
|
|
56
|
+
}
|
|
57
|
+
return processDueAssistantCronJobsLocal(input);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=cron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/assistant/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,oCAAoC,EACpC,mCAAmC,EACnC,mCAAmC,EACnC,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,mBAAmB,IAAI,wBAAwB,EAC/C,yBAAyB,IAAI,8BAA8B,EAC3D,sBAAsB,IAAI,2BAA2B,EACrD,qBAAqB,IAAI,0BAA0B,EACnD,qBAAqB,IAAI,0BAA0B,EACnD,gCAAgC,EAChC,yBAAyB,IAAI,8BAA8B,GAC5D,MAAM,wCAAwC,CAAA;AAO/C,cAAc,wCAAwC,CAAA;AAOtD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACnE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAa,EACb,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC;QACrD,GAAG;QACH,KAAK;KACN,CAAC,CAAA;IACF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAa,EACb,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC;QACxD,GAAG;QACH,KAAK;KACN,CAAC,CAAA;IACF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA2D;IAE3D,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,KAAK,CAAC,CAAA;IAChE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,8BAA8B,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IACpE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAI3C;IAIC,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,KAAK,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAA6D;IAE7D,MAAM,MAAM,GAAG,MAAM,qCAAqC,CAAC,KAAK,CAAC,CAAA;IACjE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,gCAAgC,CAAC,KAAK,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AssistantStatePaths, AssistantStatePermissionAudit } from '@murphai/runtime-state/node';
|
|
2
|
+
export interface AssistantStateSecrecyAudit {
|
|
3
|
+
malformedSessionSecretSidecars: number;
|
|
4
|
+
orphanSessionSecretSidecars: number;
|
|
5
|
+
permissionAudit: AssistantStatePermissionAudit;
|
|
6
|
+
repairedSessionFiles: number;
|
|
7
|
+
sessionFilesScanned: number;
|
|
8
|
+
sessionInlineSecretFiles: number;
|
|
9
|
+
sessionInlineSecretHeaders: number;
|
|
10
|
+
sessionSecretSidecarFiles: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function inspectAndRepairAssistantStateSecrecy(paths: AssistantStatePaths, input?: {
|
|
13
|
+
repair?: boolean;
|
|
14
|
+
}): Promise<AssistantStateSecrecyAudit>;
|
|
15
|
+
//# sourceMappingURL=doctor-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-security.d.ts","sourceRoot":"","sources":["../../src/assistant/doctor-security.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,6BAA6B,CAAA;AAsBpC,MAAM,WAAW,0BAA0B;IACzC,8BAA8B,EAAE,MAAM,CAAA;IACtC,2BAA2B,EAAE,MAAM,CAAA;IACnC,eAAe,EAAE,6BAA6B,CAAA;IAC9C,oBAAoB,EAAE,MAAM,CAAA;IAC5B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,wBAAwB,EAAE,MAAM,CAAA;IAChC,0BAA0B,EAAE,MAAM,CAAA;IAClC,yBAAyB,EAAE,MAAM,CAAA;CAClC;AAED,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,mBAAmB,EAC1B,KAAK,GAAE;IACL,MAAM,CAAC,EAAE,OAAO,CAAA;CACZ,GACL,OAAO,CAAC,0BAA0B,CAAC,CA+BrC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { access, readdir, readFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { assistantSessionSchema, assistantSessionSecretsSchema, parseAssistantSessionRecord, } from '@murphai/assistant-core/assistant-cli-contracts';
|
|
4
|
+
import { normalizeAssistantSessionSnapshot } from '@murphai/assistant-core/assistant-provider';
|
|
5
|
+
import { mergeAssistantHeaders } from '@murphai/assistant-core/assistant-runtime';
|
|
6
|
+
import { auditAssistantStatePermissions, isMissingFileError, writeJsonFileAtomic, } from '@murphai/assistant-core/assistant-runtime';
|
|
7
|
+
import { extractAssistantSessionSecretsForPersistence, persistAssistantSessionSecrets, readAssistantSessionSecrets, } from '@murphai/assistant-core/assistant-state';
|
|
8
|
+
import { resolveAssistantSessionPath } from '@murphai/assistant-core/assistant-state';
|
|
9
|
+
export async function inspectAndRepairAssistantStateSecrecy(paths, input = {}) {
|
|
10
|
+
const repair = input.repair === true;
|
|
11
|
+
let repairedSessionFiles = 0;
|
|
12
|
+
if (repair) {
|
|
13
|
+
repairedSessionFiles = await repairLegacyAssistantSessionSecrets(paths);
|
|
14
|
+
}
|
|
15
|
+
const [permissionAudit, sessionInlineSecrets, sessionSecretSidecars,] = await Promise.all([
|
|
16
|
+
auditAssistantStatePermissions({
|
|
17
|
+
repair,
|
|
18
|
+
rootPath: paths.assistantStateRoot,
|
|
19
|
+
}),
|
|
20
|
+
scanAssistantSessionInlineSecrets(paths),
|
|
21
|
+
auditAssistantSessionSecretSidecars(paths),
|
|
22
|
+
]);
|
|
23
|
+
return {
|
|
24
|
+
malformedSessionSecretSidecars: sessionSecretSidecars.malformedSidecars,
|
|
25
|
+
orphanSessionSecretSidecars: sessionSecretSidecars.orphanSidecars,
|
|
26
|
+
permissionAudit,
|
|
27
|
+
repairedSessionFiles,
|
|
28
|
+
sessionFilesScanned: sessionInlineSecrets.filesScanned,
|
|
29
|
+
sessionInlineSecretFiles: sessionInlineSecrets.inlineSecretFiles,
|
|
30
|
+
sessionInlineSecretHeaders: sessionInlineSecrets.inlineSecretHeaders,
|
|
31
|
+
sessionSecretSidecarFiles: sessionSecretSidecars.filesScanned,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function repairLegacyAssistantSessionSecrets(paths) {
|
|
35
|
+
let repairedFiles = 0;
|
|
36
|
+
for (const fileName of await readDirectoryFiles(paths.sessionsDirectory)) {
|
|
37
|
+
if (!fileName.endsWith('.json')) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const sessionPath = path.join(paths.sessionsDirectory, fileName);
|
|
41
|
+
try {
|
|
42
|
+
const raw = await readFile(sessionPath, 'utf8');
|
|
43
|
+
const session = normalizeAssistantSessionSnapshot(parseAssistantSessionRecord(JSON.parse(raw)));
|
|
44
|
+
const extracted = extractAssistantSessionSecretsForPersistence(session);
|
|
45
|
+
if (extracted.migratedHeaderNames.length === 0) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const existingSecrets = await readAssistantSessionSecrets({
|
|
49
|
+
paths,
|
|
50
|
+
sessionId: session.sessionId,
|
|
51
|
+
});
|
|
52
|
+
const mergedSecrets = mergeAssistantSessionSecretsForRepair({
|
|
53
|
+
existingSecrets,
|
|
54
|
+
extractedSecrets: extracted.secrets,
|
|
55
|
+
session,
|
|
56
|
+
});
|
|
57
|
+
const persistedSession = assistantSessionSchema.parse(normalizeAssistantSessionSnapshot(extracted.persisted));
|
|
58
|
+
await persistAssistantSessionSecrets({
|
|
59
|
+
paths,
|
|
60
|
+
secrets: mergedSecrets,
|
|
61
|
+
sessionId: session.sessionId,
|
|
62
|
+
});
|
|
63
|
+
await writeJsonFileAtomic(sessionPath, persistedSession);
|
|
64
|
+
repairedFiles += 1;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Let the main doctor parse checks surface malformed primary records.
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return repairedFiles;
|
|
71
|
+
}
|
|
72
|
+
async function scanAssistantSessionInlineSecrets(paths) {
|
|
73
|
+
let filesScanned = 0;
|
|
74
|
+
let inlineSecretFiles = 0;
|
|
75
|
+
let inlineSecretHeaders = 0;
|
|
76
|
+
for (const fileName of await readDirectoryFiles(paths.sessionsDirectory)) {
|
|
77
|
+
if (!fileName.endsWith('.json')) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
const raw = await readFile(path.join(paths.sessionsDirectory, fileName), 'utf8');
|
|
82
|
+
const session = parseAssistantSessionRecord(JSON.parse(raw));
|
|
83
|
+
const extracted = extractAssistantSessionSecretsForPersistence(session);
|
|
84
|
+
filesScanned += 1;
|
|
85
|
+
if (extracted.migratedHeaderNames.length > 0) {
|
|
86
|
+
inlineSecretFiles += 1;
|
|
87
|
+
inlineSecretHeaders += extracted.migratedHeaderNames.length;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Main doctor checks already report malformed session files.
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
filesScanned,
|
|
96
|
+
inlineSecretFiles,
|
|
97
|
+
inlineSecretHeaders,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
async function auditAssistantSessionSecretSidecars(paths) {
|
|
101
|
+
let filesScanned = 0;
|
|
102
|
+
let malformedSidecars = 0;
|
|
103
|
+
let orphanSidecars = 0;
|
|
104
|
+
for (const fileName of await readDirectoryFiles(paths.sessionSecretsDirectory)) {
|
|
105
|
+
if (!fileName.endsWith('.json')) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
filesScanned += 1;
|
|
109
|
+
const secretPath = path.join(paths.sessionSecretsDirectory, fileName);
|
|
110
|
+
try {
|
|
111
|
+
const raw = await readFile(secretPath, 'utf8');
|
|
112
|
+
const sidecar = assistantSessionSecretsSchema.parse(JSON.parse(raw));
|
|
113
|
+
const expectedSessionId = fileName.replace(/\.json$/u, '');
|
|
114
|
+
if (sidecar.sessionId !== expectedSessionId) {
|
|
115
|
+
malformedSidecars += 1;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (!(await pathExists(resolveAssistantSessionPath(paths, sidecar.sessionId)))) {
|
|
119
|
+
orphanSidecars += 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
malformedSidecars += 1;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
filesScanned,
|
|
128
|
+
malformedSidecars,
|
|
129
|
+
orphanSidecars,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
function mergeAssistantSessionSecretsForRepair(input) {
|
|
133
|
+
const providerHeaders = mergeAssistantHeaders(input.existingSecrets?.providerHeaders, input.extractedSecrets?.providerHeaders);
|
|
134
|
+
const providerBindingHeaders = mergeAssistantHeaders(input.existingSecrets?.providerBindingHeaders, input.extractedSecrets?.providerBindingHeaders);
|
|
135
|
+
if (!providerHeaders && !providerBindingHeaders) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return assistantSessionSecretsSchema.parse({
|
|
139
|
+
schema: 'murph.assistant-session-secrets.v1',
|
|
140
|
+
sessionId: input.session.sessionId,
|
|
141
|
+
updatedAt: input.session.updatedAt,
|
|
142
|
+
providerHeaders,
|
|
143
|
+
providerBindingHeaders,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function pathExists(filePath) {
|
|
147
|
+
try {
|
|
148
|
+
await access(filePath);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (isMissingFileError(error)) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async function readDirectoryFiles(directory) {
|
|
159
|
+
try {
|
|
160
|
+
const entries = await readdir(directory, {
|
|
161
|
+
withFileTypes: true,
|
|
162
|
+
});
|
|
163
|
+
return entries.filter((entry) => entry.isFile()).map((entry) => entry.name);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (isMissingFileError(error)) {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=doctor-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-security.js","sourceRoot":"","sources":["../../src/assistant/doctor-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/assistant/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,EAeL,KAAK,qBAAqB,EAG3B,MAAM,iDAAiD,CAAA;AAgBxD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE;IACL,MAAM,CAAC,EAAE,OAAO,CAAA;CACZ,GACL,OAAO,CAAC,qBAAqB,CAAC,CAUhC"}
|